GridView 의 BestFitColumns() 는 데이터 길이에 따라 컬럼 너비를 자동으로 조절해 준다.

하지만 데이터가 많은 경우 컬럼 길이 계산을 위해 시간을 많이 소비해서

실제 화면에 보여지는데 시간이 걸린다.

이때 아래처럼 BestFitMaxRowCount 값을 설정하게되면 

데이터 전체가 아닌 특정 Row 까지의 데이터만 가지고 처리를 하게되어

화면에 보여지는데 걸리는 시간을 줄일 수 있다.


this.gridControl.DataSource = testDatas;

this.gridView.OptionsView.BestFitMaxRowCount = 100;

this.gridView.BestFitColumns();


XtraGrid 에 데이터 바인딩을 하면 처음 Row 를 선택하고 있는데

이를 선택하지 않는 상태로 변경하기 위해서는


데이터 바인딩을 하고

this.gridContro.DataSource = testDatas;


아래처럼 GridView 의 FocusInvalidRow() 를 호출해 주면된다.

this.gridView.FocusInvalidRow();

 
KCP 가입완료 후에는 아임포트관리자페이지 에서 KCP에서 발급받으신 실 상점정보로 PG설정후 KCP측으로 카드사 심사 진행 부탁 드립니다. 
  
[NHN KCP 테스트모드 - 일반결제 PG설정방법]
 
1. 아임포트관리페이지( https://admin.iamport.kr) 회원가입(로그인) 후 > 시스템 설정 > PG설정(일반결제 및 정기결제) > PG사 "NHN KCP(엔에이치엔한국사이버결제)" 선택하시고,
    테스트모드 [ON] 상태에서 [전체저장] 버튼을 클릭 해 주세요. 

  <설정 화면 예시>   

2. 아임포트 웹훅(Notification URL) 설정방법(자체 개발시) 

    - 아임포트 Webhook을 사용함으로써 아임포트 서버에 저장된 데이터를 서버에 동기화하고 네트워크 불안정성을 보완할 수 있습니다.
    - 설정 방법 : 웹훅 설정 매뉴얼 https://docs.iamport.kr/tech/webhook 링크 내용 참고하시어
                         아임포트관리자페이지 > 시스템설정 > 웹훅(Notification) 설정 메뉴에서 "웹훅(Notification) 발송 공통 URL" 항목에 설정 해 줍니다. 
  <설정 화면 예시>  
  

 

3. 결제 연동(API개발시) 
 - 결제연동 매뉴얼(통합) : https://docs.iamport.kr/ 
 - 일반 인증결제 연동 매뉴얼 : https://docs.iamport.kr/implementation/payment
 - API 문서 : https://api.iamport.kr/   
 - 참고 : 워드프레스 플러그인으로 이용중이신 경우 https://docs.iamport.kr/wordpress/introduction 참고하시기 바랍니다.




 
[NHN KCP 테스트모드 - 정기결제 PG설정방법]  

 1. 아임포트관리페이지( https://admin.iamport.kr)  > 시스템 설정 > PG설정(일반결제 및 정기결제) >  PG사 "NHN KCP 빌링결제 (엔에이치엔한국사이버결제)" 선택하고 테스트모드 [ON] 상태에서 [전체저장] 버튼을 클릭 해 주세요.  
 
 - 참고 : 일반인증결제와 정기결제 모두 이용하시는 경우 기본PG 아래 탭 "+PG사추가"를 클릭하시어 추가PG로 설정 하시기 바랍니다.
             (동일PG사를 이용하셔도 아임포트에 PG설정을 2개 이상하게 되므로 아임포트 복수PG서비스로 적용되어 비용(부가세포함 11만원/최초 1회) 발생되니 이용에 참고 부탁 드립니다.
 - 복수PG이용시 속성 사용 방법 : https://docs.iamport.kr/tech/pg-parameter
 - KCP 테스트용 빌링(정기)결제 사이트코드 : BA001
 
<설정 화면 예시>

 
2. 아임포트 웹훅(Notification URL) 설정방법(자체 개발시)
 - 일반인증결제 방법 과 동일하게 설정 해 주시면 됩니다.

3. 결제 연동
 - 빌링키 발급을 위한 결제창 호출은 일반결제시와 동일하나 customer_uid파라메터만 하나 추가된다고 이해하시면 됩니다.  
 
 - API 문서 : https://api.iamport.kr/
 - 참고 : 워드프레스 플러그인으로 이용중이신 경우 https://docs.iamport.kr/wordpress/woocommerce-subscription 참고하시기 바랍니다.  


select trim(regexp_substr('a,b,c','[^,]+',1,LEVEL)) item_id,

trim(regexp_substr('1,2,3','[^,]+',1,LEVEL)) item_value

from dual

connect by level < 4


결과>

 item_id

 item_value

 a

 1

 b

 2

 c

 3



1. 다른사람을대할때는 그사람으로부터 대접받고자 하는대로 대접해야한다

2. 사물은 관리하는것이지만 사람은 리드하는 것

3. 조직으로부터원하는것
존중받는것,조직의발전에기여하는것,자신의가치를 인정받는것,

4. 다른사람을 리드할자격이있는사람들은 바로 스스로 의문을 가지고 변화를 시도하는 용감한 정신을 가진자들입니다

5. 현명한 사람은 자신이 세상에 적응하지만 어리석은사람은 세상이 자신에게 적응하도록 고집을 부린다

6. 리더십이란 공동의 이익을 위해 설정된 목표를 향해 매진할수있도록 사람들에게 영향력을 발휘하는기술

7. 타인을 사랑하기로, 타인에게 영향을 미치기로 결정했다면, 인내와 친절,존중,이타주의,용서,정직,헌신,이 모든 덕목이 요구되는것


'Life' 카테고리의 다른 글

서번트리더십  (0) 2020.05.04
꾸뻬씨의행복여행  (0) 2020.05.04
하담이 작품  (0) 2019.08.17
iOS 개발자 프로그램 갱신...  (0) 2019.07.30
하담아 ...  (0) 2019.06.18
[Life] 연말정산-원천징수영수증  (0) 2019.05.12

배움 1: 행복의 첫번째 비밀은 자신을 다름 사람과 비교하지 않는 것이다.
배움 2: 행복은 때때로 뜻밖에 찾아온다.
배움 3: 많은 사람들은 자신의 행복이 오직 미래에만 있다고 생각한다.
배움 4: 많은 사람들은 더 큰 부자가 되고, 더 중유한 사람이 되는 것이 행복이라고 생각한다.
배움 5: 행복은 알려지지 않은 아름다운 산속을 걷는 것이다.
배움 6: 행복을 목표로 여기는 것은 잘못된 생각이다.
배움 7: 행복은 좋아하는 사람과 함께 있는 것이다.
배움 8: 불행은 사랑하는 사람과 헤어지는 것이다.
배움 9: 행복은 자기 가족에게 아무것도 부족한 것이 없음을 아는 것이다.
배움 10: 행복은 자신이 좋아하는 일을 하는 것이다.
배움 11: 행복은 집과 채소밭을 갖는 것이다.
배움 12: 좋지 않은 사람에 의해 통치되는 나라에서는 행복한 삶을 살기가 더욱 어렵다.
배움 13: 행복은 자신이 다른 사람들에게 쓸모가 있다고 느끼는 것이다.
배움 14: 행복이란 있는 그대로의 모습으로 사랑받는 것이다.
배움 15: 행복은 살아 있음을 느끼는 것이다.
배움 16: 행복은 살아 있음을 축하하는 파티를 여는 것이다.
배움 17: 행복은 사랑하는 사람의 행복을 생각하는 것이다.
배움 18: 태양과 바다, 이것은 모든 사람들에게 행복을 가져다 준다.
배움 19: 행복은 다른 사람의 의견을 너무 중요하게 생각하지 않는 것이다.
배움 20: 행복은 사물을 바라보는 방식에 달려 있다.
배움 21: 행복의 가장 큰 적은 경쟁심이다.
배움 22: 여성은 남성보다 다른 사람의 행복에 대해서 더 배려할 줄 안다.
배움 23: 행복은 다른 사람의 행복에 관심을 갖는 것이다.

'Life' 카테고리의 다른 글

서번트리더십  (0) 2020.05.04
꾸뻬씨의행복여행  (0) 2020.05.04
하담이 작품  (0) 2019.08.17
iOS 개발자 프로그램 갱신...  (0) 2019.07.30
하담아 ...  (0) 2019.06.18
[Life] 연말정산-원천징수영수증  (0) 2019.05.12

WebView 를 쓰게되면 iOS 배포시 에서 아래와 같은 메일이 온다.

(Renderer 를 사용할때 WkWebViewRenderer 을 사용해도 마찬가지)

Dear Developer,

We identified one or more issues with a recent delivery for your app, "***" 1.0.0 (12). Your delivery was successful, but you may wish to correct the following issues in your next delivery:

ITMS-90809: Deprecated API Usage - Apple will no longer accept submissions of new apps that use UIWebView as of April 30, 2020 and app updates that use UIWebView as of December 2020. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).

After you’ve corrected the issues, you can upload a new binary to App Store Connect.

Best regards,

The App Store Team


우선 이내용이 있다고해서 배포가 안되는건 아니다.

App Store 에 배포는 가능하지만 거슬린다면 아래처럼 진행하면 된다


iOS 프로젝트 속성 > iOS 빌드에서 링커동작을 'Link All' 로 선택하고

추가  mtouch 인수에 '--optimize=experimental-xforms-product-type

값을 넣고 배포하면 문제가 해결된다.




참고

https://devblogs.microsoft.com/xamarin/uiwebview-deprecation-xamarin-forms/

https://docs.microsoft.com/ko-kr/xamarin/xamarin-forms/user-interface/webview?tabs=windows#uiwebview-deprecation-and-app-store-rejection-itms-90809

1. POPUP – RG.PLUGINS.POPUP
A lot of times when developing your applications, you are required to create a kind of popup as a message box or confirmation dialog. The best plugin I have seen and used over time is the Rg.Plugins.Popup.

This plugin is a cross platform plugin that allows you to open pages as popup in your Android, iOS and UWP projects.

Before you can use this plugin, you have to do some initialization in each platform you are targeting. This initialization must come before the initialization of Xamarin.Forms.

To see how to implement this plugin, click here.

2. ESSENTIALS – XAMARIN.ESSENTIALS
There are basic and essential implementations that are required for your application to work seamlessly such as checking for connectivity, getting device information, geolocation and lots more.

The folks at Microsoft have made all these possible in a single plugin called Xamarin Essentials. You get this plugin by default every time you create a new project.

For example, see how easy it is to get geolocation from the device with few lines of code. The only extra step is to set the permission required for the features you are implementing.

try
{
var location = await Geolocation.GetLastKnownLocationAsync();
if (location != null)
{
Console.WriteLine($"Latitude: {location.Latitude}, Longitude: {location.Longitude}, Altitude: {location.Altitude}");
}
}
catch (Exception ex)
{
// Unable to get location
}
view rawgeolocation.cs hosted with ❤ by GitHub

To see how implement geolocation and use it with a map, click here.

3. MODEL-VIEW-VIEWMODEL – MVVM HELPER
The Model-View-ViewModel (MVVM) pattern helps to cleanly separate the business and presentation logic of an application from its user interface (UI).

Maintaining a clean separation between application logic and the UI helps to address numerous development issues and sometimes implementing this pattern can prove difficult and mundane for both new and experience developers.

MVVM Helpers make the implementation of MVVM pattern easy and less time consuming so that you can focus more on the business logic.

An example of the helper I commonly use is the is the SetPropery & GetProperty helpers which takes away the stress of implementing INotifyPropertyChanged.

Check out this video here detailing how to implement MVVM Helpers.

4. IMAGE LOADING – FFIMAGELOADING
FFImageLoading is a cross platform image library for loading images quickly and easily. It supports image file formats such as GIF, SVG and WebP.

One interesting feature of this plugin is caching. If you have multiple image controls that are using the same image source, the plugin will load the source image once and use the cached version for the rest thereby reducing data consumption of the app.

You can perform some fade-in animations with your images and also apply transformations such as crop, blur, grayscale, round corner, flip and rotation.

5. MONETIZATION – IN-APP BILLING PLUGIN
Often times you need to integrate monetization into your mobile apps in order to generate revenue. This is usually by introducing in-app purchases in form of remove ads feature, buying in-game currency or upgrading to the Pro version of the app.

The In-App Billing Plugin supports three types of in-app purchase. Consumables, Non-Consumables and Subscriptions.
 Consumables can be described as any one-time service within the app. For example, in-game currency or extra health.
• Non-Consumables are items that can only be purchased once such as removing ads, books, game levels, and additional app functionality
• Subscriptions are auto-renewable payments which can be monthly or yearly and non-renewable subscription that expires after a set amount of time.

6. CRASH REPORT – APP CENTER
App Center contains a lot of features to help you with your mobile app development. The two major features I have used over the years are App Center Crashes and App Center Analytics.

App Center Crashes will automatically generate a crash log every time your app crashes. Collecting crashes work for apps in beta and live apps.

To implement crash reporting and analytics, you need app secrets which you can get by registering on App Center Website. Note that if you are targeting more than one platform, you will need to create the application for each platform to get app secrets for each platform.

In order to use App Center Plugin, you have to install the plugin into your projects and then proceed to your App.xaml.cs to initialize the plugin by supplying the app secret for each platform.
You can start tracking errors like this within your code.

7. CACHING – MONKEY CACHE
Monkey Cache provides easy ways to cache any data structure for a specific amount of time. For example, you are making a web request and you get some response back from the server, you want the ability to cache this data in case you go offline, but also you need it to expire after a certain number of minutes or hours. Monkey Cache provides you with these capabilities.

To set up Monkey Cache, first, select an implementation of Monkey Cache that you would like (LiteDB, SQLite, or FileStore). Install the specific NuGet for that implementation, which will also install the base MonkeyCache library.

You will require to set a custom Application ID for your application so that the Cache engine can uniquely identify your application.

8. AUDIO & VIDEO – MEDIA MANAGER PLUGIN
Media content is the future of content and there is a need to put this into consideration when developing mobile applications.

MediaManager Plugin is a cross platform Xamarin plugin that simplifies access to the device’s native media functions and make it easy for your user to interact with audio and video in your mobile apps.

The features include native playback of media files from both local and remote sources, notifications, media controls and playback status. It also allows you to add multiple media items for sequential playback.

This plugin requires initialization in each of the platform you are targeting.

9. ANIMATION – XAMARIN.FORMS.LOTTIE
Lottie is a cross platform library, which allows you to run animations within your applications.

These animations are defined in a JSON file containing all the details of colors, shapes and transforms. You need Adobe After Effects in order to create these JSON files, however, there are lots of free lottie animation out there that are shared by designers.

To get started, first install the Nuget package to your projects and then initialize it in your respective projects. In order to show an animation, you need to put the After Effects JSON file in your Assets (Android) or Resources (iOS) folder and then load it into the animation view.

10. GRADIENT & CURVED LAYOUT – PANCAKE VIEW
App designs usually contain views with gradients, borders, rounded corners and shadows. Developers implementing these designs in Xamarin Forms require layouts that support these specifications.

Pancake View is a plugin that supports gradients, borders, rounded corners and shadows. Implementing Pancake View is very simple and straightforward. First, install the plugin in your projects and then tell your XAML page where it can find the Pancake View by adding the namespace to your XAML code.

You can now call the Pancake View Control and add properties the suits the design you are working with.

11. CONTENT ANIMATION – SHARED TRANSITION ANIMATION
Animation has a way of spicing up the user experience of your mobile application. Micro-interactions, transitions, and in-app animations are usually used to explain the logic of an app to a user and improve the overall app usability.

Shared Transition Plugin allows you to implement shared element transitions by connecting common elements from one page to another. A shared element transition determines how elements that are present in two pages transition between them.

12. FILE PICKER
Your application may require the use of file from the user’s device for viewing, editing and other file operations.

File Picker Plugin is a simple cross platform plugin that allows you to pick files and work with them. You can select any file type or set the allowed type in order to limit the files that can be selected.

13. FINGERPRINT AUTHENTICATION – FINGERPRINT PLUGIN
Fingerprint authentication provide applications with an alternative to the conventional username and password method used for user authentication and makes it possible for your application to implement security that is less intrusive.

A fingerprint must already be enrolled with the device for the user to be authenticated successfully.

Xamarin Fingerprint Plugin is a cross platform plugin that allows you to authenticate users with the enrolled fingerprint on their devices. To start using the plugin, you must initialize and request the necessary permissions in all the platforms you are targeting.

14. CHARTS – MICROCHARTS PLUGIN
Chart in mobile applications is a great way to present a clear overview of numerical data and show the relationship of such data. Microcharts is a selection of common charts that are easy to use, visually pleasing, and provides ready-to-use charts in your Xamarin Forms Applications.

There is a wide range of charts included in Microcharts Plugin for you to choose from such as the Bar Chart, Pie Chart, Line Chart, Point Chart and others. You can select the chart that best fit your data within your application.

BONUS: MATHEMATICS – CSHARP MATH
Has there ever been a need to display mathematical formulae in your application but cannot find any tool to help you? CSharp Math is what you are looking for. This is a library that allows you to display mathematical expressions within your mobile applications.

It makes use of LaTeX engine to convert plain text into high-quality mathematical expression for display on your mobile app screen.

It works perfectly in both XAML and C# code.

15. GRAPHICS – SKIASHARP PLUGIN
Many apps require special controls that are not part of the native kit and to achieve this, there is a need to render 2D graphics directly and natively on the app.

SkiaSharp is a cross platform library that allows to directly draw on the UI canvas and makes it possible to create complete custom controls. It is a 2D graphics library that provides a rich API to basically draw fancy things on the UI canvas.

Questions of the Day.
1. What other nuget packages do you use that are not mentioned? Let me know in the comments below.
2. Which of these nuget package would you like me to implement in a future video? Let me know in the comments below.

출처 : https://devcrux.com/blog/15-nuget-packages-for-xamarin-forms-and-net/

iOS 프로젝트를 정리하고 재 빌드하면 된다. 끝.

도대체 왜 이런건지 알수가 없네..;;

윈도우에서 작업하던 소스를 갑사에서 mac 에서 소스를 열어서 테스트 하는데
이미지 탭한 경우 이벤트 발생이 안되는 현상 발생되었다

일단 결론부터 말하면 원인은 4월2일 xCode 11.4 로 업데이트 되었는데 
이전에 배포되었던 Xamarin.iOS 13.16 버전이 문제가 있어 이미지 탭한 경우 
탭 이벤트가 발생안되는 현상이었다.

[아래 링크 참고 (모든 탭 이벤트 먹통됨)]

언제인지 모르겠으나 이후 MS 에서 문제점을 알고 버그 픽스 버전을 출시예정이라고 한다.
(현시점 2주안에 해결해 준다고 하는데.....)

Xamarin.iOS 이전 버전을 설치하여 해결가능하다고 하여 아래링크의 pkg 를 받아 설치해보았다.

설치하고 정상동작 되는 걸 확인.


윈도우에서 개발을 하여 테스트를 하고 있었는데 
윈도우에서 비쥬얼 스튜디오를 이용해 작업하는경우 mac 연결 시
자동으로 Xamain.iOS 버전을 13.16.0.11 을 설치했었는데 그땐 에뮬 동작이 제대로 동작된다.;
하지만 iOS 에서 솔루션 열면 또 안되는.. 머 이런 .

하필 갑한테 보여주는날.. ㅜㅠ

결론 
이전버전으로 돌리거나 
좀 기다렸다가 최신으로 업데이트 받으면 된다.


* 추가

mac 에서는 preview 버전 13.18 을 설치하면 정상 동작 된다고 한다.

+ Recent posts