레이블이 galaxy인 게시물을 표시합니다. 모든 게시물 표시
레이블이 galaxy인 게시물을 표시합니다. 모든 게시물 표시

2020년 1월 22일 수요일

Galaxy Watch용 Tizen xamarin app에서 Entry에 의한 화면 깨짐 발생 시

Galaxy Watch app을 Xamarin.forms를 이용해서 C#으로 만들 수 있음.
https://samsung.github.io/Tizen.CircularUI/guide/Quickstart.html
기존에는 어려운 EFL 기반 app이나 web app을 만들어야 했는데 이제는 C#으로도 개발할 수 있음.

암튼 Watch 용 app을 하나 만들어 보는 중에
입력을 위한 Page가 필요하여 Entry를 추가하게 되었음.

하지만 페이지에서 Entry를 선택하면 Virtual Keyboard가 떠서
Page layout 밀려 올라가 이상하게 보이는 현상이 발생했다.

관련하여 다른 옵션이 없는지 확인 중 Tizen에서 제공하는 CircularUI가 있고
그 중에 PopupEntry를 제공하는 것을 확인하였음.

https://samsung.github.io/Tizen.CircularUI/guide/PopupEntry.html

Popup Entry는 일반적으로 Galaxy Watch app에서 사용되는
전체화면을 가리는 popup으로 입력창과 키보드가 떠서
기존 Page layout에는 영향을 주지 않고 입력할 수 있게 해준다.





참고로 안드로이드에서는 다음과 같이 처리하고 있음.
https://www.milestre.nl/blog/blogitem/milestre-blog/2019/01/08/to-avoid-soft-keyboard-overlap

//To avoid soft keyboard statusbar overlap            Xamarin.Forms.Application.Current.On().UseWindowSoftInputModeAdjust(WindowSoftInputModeAdjust.Resize);

2017년 11월 10일 금요일

iOS, Samsung IAP, Unity Overview

iOS IAP


https://developer.apple.com/in-app-purchase/

IAP 대상
 : Content, Subscriptions, New features, Services.

IAP 아이템 종류
Consumable
 : app에서 사용되는 아이템들이 해당되고 구입해서 한번 소비하면 삭제되어 재구매 가능.

Non-Consumable
 : app에서 소비되지 않거나 premium feature 같은 것이 해당되고 구입하면 만료없이 사용 가능.

Auto-Renewable Subscriptions
 : 서비스나 업데이트된 콘텐츠를 주기적으로 구입하는 상황이 해당 됨. (cloud storage 매달 사용, 주간 magazine 배달 받음)
  사용자가 주기적인 구입을 취소하지 않는 한 지정된 기한마다 자동 결재 됨.

Non-Renewing Subscriptions
 : 사용자가 서비스나 콘텐츠를 지정된 기간동안만 사용 가능하고 자동으로 subscription이 갱신되지 않는다.

[Preparing]
- Paid Application Agreement 작성 & banking, tax 정보 입력
- Xcode를 사용하여 app에서 IAP service를 사용하도록 함.
- iTunes Connect에서 상품명, 가격, 설명 등을 작성하여 관리한다.

[Designing and Building]
- IAP store design
- IAP 구현

https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction.html#//apple_ref/doc/uid/TP40008267









[Testing]
- Apple sandbox에서 IAP를 영향 없이 테스트 할 수 있음.
- TestFlight를 사용하여 테스터들을 대상으로 IAP을 테스트하고 feedback을 받을 수 있음.


*실제 구현 관련 포스팅
http://korea-developer.tistory.com/entry/iOS-IAPInApp-Purchase

-----------------------------------------------------------------------------------------------

Samsung IAP


Mobile


http://developer.samsung.com/iap
http://developer.samsung.com/html/techdoc/HowToStart_SamsungInAppPurchaseSDK_v3.0.0_KR.pdf



- Samsung In-App Purchase SDK 3.0.1 이상에서는 Android 6.0(Mashmallow) 이상에서 사용 가능
- 그외 버전에서는 Android 4.0 이상에서 사용 가능한것으로 보임
- Payment 방식 :  90개국에서 Credit Card, Phone bill, PayPal 가능
- 삼성 (Galaxy) Device만 지원
- Samsung Gear에서도 Tizen SDK + Extension SDK를 사용해서 IAP 사용가능
- IAP v2.0 : Consumable item, Non-Consumable items, Non-Recurring subscription items.
  IAP v3.0 : Auto-Recurring subscriptions item.
  IAP v5.0 : Item, Subscription으로 정리, Non-Recurring subscription 제거됨.

[API]

Android API : http://developer.samsung.com/iap/guide
Server Side API? : http://developer.samsung.com/iap/developer-api


Gear

http://developer.samsung.com/gear/distribute/iap


- Mobile(Galaxy)와 연동되어 동작하는 것으로 보임.
- Gear에서 사용할 수 있는 API는 상품 목록, 구매, 구입 목록 확인만 있음.

[Gear API]
 . Web : http://img-developer.samsung.com/onlinedocs/gear/web_device/webapis/iap.html
 . Native(C) : http://img-developer.samsung.com/onlinedocs/gear/native/group__CAPI__IAP__GALAXYAPPS__FRAMEWORK.html

[Programming Guide]
 . Web : http://img-developer.samsung.com/onlinedocs/gear/Extension_PG_Web/html/prog_guide/inapp_ww.htm
 . Native(C) : http://img-developer.samsung.com/onlinedocs/gear/Extension_PG_Native/html/prog_guide/inapp_wn.htm


TV


http://developer.samsung.com/tv/tizen-net-tv-preview/guides/samsung-checkout



- Samsung Checkout 을 통해 Samsung TV 상에서 구매 가능.
- 3-step checkout ???
 : 사용자가 구매 수단 등록 (mobile, web)
 : 구매 아이템 정보 확인
 : Remote control로 숫자를 입력하여 구매 진행

- 환경
. TV: Samsung Smart TV, 2015 or later model (excluding Evolution Kit)
. Payment method: Credit or debit card, PayPal, or carrier billing (in Korea)
. Security: Tizen SecureIME, 2nd-screen card registration (mobile or PC)
. Account: Samsung Account (for sharing account and payment information with Galaxy phones)

- 사전 절차
: TV Sellor Office에 app 등록, DPI portal에 Billing 정보 등록 및 코딩
 (DPI(Digital Product Inventory) security key와 service를 사용하여 Purchase 가능

- 주요 기능
: 아이템 목록 확인, 아이템 구매, 구매 목록 확인, 구매 확인, 구매 복구, 구독 취소

[Billing 사용을 위한 Precondition]
- NuGet packages
 : Tizen.TV
 : Tizen.TV.Service.Billing
 : Tizen.TV.Service.Sso

- Privileges
<tizen:privilege name="http://developer.samsung.com/privilege/sso.partner"/>
<tizen:privilege name="http://developer.samsung.com/privilege/productinfo"/>
<tizen:privilege name="http://tizen.org/privilege/appmanager.launch"/>
<tizen:privilege name="http://developer.samsung.com/privilege/billing"/>

- 기타 환경 설정
a. Retrieve the User ID:
using Tizen.TV.Service.Sso;
string loginUid = Sso.GetLoginUid(); //get UID value from TV
b. Retrieve the country code:
using Tizen.TV;
string country = Environment.SmartHubConfig.Country;
c. Retrieve the server type:
using Tizen.TV;
int serverType = Environment.SmartHubConfig.ServerType;
d. Set the service environment:
// Use dummy payment for development
BillingRequestServerType servertype = BillingRequestServerType.Dummy;

// When submitting to Samsung Apps TV, use Sandbox or Live environment depending on the TV environment.
if(serverType == 0) {  // Operating zone
  BillingRequestServerType servertype = BillingRequestServerType.Prd;
} else { // Staging zone
  BillingRequestServerType servertype = BillingRequestServerType.Dev;
}
string securityKey = "**********"; // YOUR SECURITY KEY ISSUED BY DPI PORTA

Sample : https://github.com/SamsungDForum/Xamarin.Billing


-----------------------------------------------------------------------------------------------

Unity IAP 


https://docs.unity3d.com/Manual/UnityIAPSettingUp.html



- 지원 Store (뭐 그냥 다 된다고 보면 된다.)
: Apple App Store, Mac App Store, Google Play Store, Windows Store, Amazon Appstore, Galaxy Store, Tizen Store, CloudMoolah MOO Store

- Product Types
: Consumable, Non Consumable, Subscription (별도로 구분하고 있지는 않는 듯)

- 주요 기능
: IAP 아이템 목록 추가/확인, 아이템 구입,
  구매 목록 복구, 구매 확인, 구매 검증, Store 확장 기능

- Store Extensions
https://docs.unity3d.com/Manual/UnityIAPStoreExtensions.html
: Cross Platform purchase flow에서 처리할 수 없는
 Store의 unique한 process를 처리하도록 만든 Interface.

/// <summary> /// Called when Unity IAP is ready to make purchases. /// </summary> public void OnInitialized (IStoreController controller, IExtensionProvider extensions) { extensions.GetExtension<IAppleExtensions> ().RefreshAppReceipt (result => { if (result) { // Refresh finished successfully. } else { // Refresh failed. } }); }