Filter
-
Content Type
-
Category
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Recommendations
Filter
success story design, galaxy watch, marketplace
blogthis year at sdc18 the first-ever best of 2018 samsung galaxy apps awards winners were announced! the awards recognize the top publishers who have stood out amongst the galaxy apps store’s boutique of expertly curated apps. to kick-off our ‘best of 2018’ series, we spoke with zhu guangxu, this year’s winner for best themes designer to get some insights on how he creates themes that stand out from the crowd. how did you get into designing themes? i graduated from college with a major in electrical engineering, but during my sophomore year, i inadvertently came across theme stores. out of curiosity, i did some research on themes, and taught myself how to make them. i created some themes which made it to the online store. many people liked them, and that’s when i realized creating themes could be more than a hobby. how would you describe your approach to design? a good theme takes time to create and perfect before it is ready to be used on a smartphone. my inspiration comes from the world around me, examining every little detail, which is far more complicated than a theme. that is the soul and essence of designers. what is your process for designing themes? i start with the wallpaper, and base the logos on that design to match the colours, paying close attention to the details. what is the most important thing to consider when designing themes? when it comes to theme design, the user’s first impression is everything. overall style and general likability of a theme are the main things i consider during theme design. watch zhu guangxu’s acceptance speech for the best of 2018 theme designer award. what is the biggest technical challenge you faced as a themes designer? when designing themes, i would start off by trying to create the best design possible, and then would often would run into technical issues with the smartphone operating systems. however, thanks to a strong team, i was able to work around those issues to still create the quality theme designs i had in mind. what design element do you think all good themes have in common? themes come in all kinds of styles, from super cool, to classic minimalist, to purely beautiful. because themes are so diverse, it’s hard to pinpoint a specific design element that makes them stand out. but no matter the theme style, you can always tell when a lot of work has gone into creating the wallpaper and logos, a trademark of a quality theme. how do you keep your theme designs fresh and relevant? i pay close attention to the smartphone industry, specifically market trends and consumer insights. i’ll often create and design interfaces based on what consumers are currently excited about. what advice do you have for designers who are starting out to have a successful themes business? keep working on new themes and promoting high quality free themes. this will help you build a loyal following who will be looking out for your next designs. how has samsung helped your business? i became a samsung designer about six months ago and it’s been a great resource in my themes development. working with samsung gives me access to monthly reports that help me get a sense of what themes are popular with consumers, to help inform my future designs. so far things are going well, and i look forward to more ways to collaborate with samsung in the future. thanks to zhu guangxu for sharing his advice on theme design. be sure to follow us on @samsung_dev for more interviews with the best of 2018 winners coming out in the next couple of weeks. for now, you can find out more about the program in our samsung best of 2018 winners announced post.
Zhu Guangxu
events mobile, game
blogin april, samsung galaxy gamedev went to croatia for reboot develop blue. we sent two technical staff and an account manager for a whole host of activities, and i’ll admit that we looked at the event (which is new to us) as a rather speculative attempt to connect with game developers. after all, reboot previously had no technical track and has only been running for a handful of years; maybe it would turn out to be a non-event. but reboot managed to exceed all our expectations. we had approximately 60 seriously-interesting and highly-competent game developers in our sessions. alon or bach, who heads our vulkan standards effort, did a great job in a talk on advanced vulkan programming techniques, which are used in croteam’s serious engine for mobile. alon then went on to host a panel discussion on the merits of vulkan. this panel featured some lively and informative input from karlo jež from croteam, christian forfang from arm, and graham wihlidal from ea’s seed group. quiz time! watch the above video of alon presenting at reboot, then answer the following multiple-choice questions (scroll to the end of the blog the answers). 1. what is the most significant performance gain you can reasonably expect to see when you completely fix some badly-chosen pipeline barriers in a trivial vulkan app? a. 25% b. 50% c. 100% d. nothing, there’s no such thing as a badly-chosen pipeline barrier. 2. in general, what’s the preferred draw order for opaque geometry in vulkan? a. left to right b. right to left c. top to bottom d. bottom to top e. front to back f. back to front g. some other order that isn’t listed here. 3. in terms of texture formats, why is a “tiled” buffer generally preferred to a “linear” buffer? a. samsung’s tiling architectures store tiled buffers on chip. b. reducing power consumption is more important for mobile devices than protecting bandwidth. c. there’s a bug in the driver. d. ha! it’s a trick question! tiling isn’t preferred. e. texture fetches cooperate better with the cache that way. 4. to make sure you were paying attention -- and for two special bonus points -- what animal did alon reference in his talk, and why? on the account management side, david pither spent most of his meal and coffee breaks over the three days having enlightening conversations with both developers and publishers who might benefit from collaborating with samsung’s galaxy gamedev group. it was business networking at its best, and we came back with a long list of action items which has kept david busy for weeks. david also set up conversations with folks that we regularly work with like sega, croteam, and ea. it’s always good to keep in touch with the big boys of gaming. we now know more about their technology and publishing roadmaps, which means we now know more about how we can help. my trip home was a bit of a disappointment. getting home roughly 15 hours late isn’t high on my list of “fun ways to start a holiday,” but it certainly won’t stop me (and more importantly) samsung from going back next year. in fact, my enthusiasm levels for the reboot events are so high that we plan to attend the reboot develop red event in banff in october. and of course, we’ll be back in croatia next spring. hopefully, we’ll see you there as well! reboot blue, and reboot red – they’re both firmly in our calendar from here on. soon we’re going reboot purple. we’re adding a lot more technical info over the coming months, so make sure you revisit the blog soon to learn more about vulkan. in the meantime, to keep you going: a gentle intro: vulkan-tutorial.com/introduction a set of beginner's guides: khronos.org/blog/beginners-guide-to-vulkan getting in deep: khronos.org/developers/library/2019-vulkanised-is-back (.pdf format) youtube.com/user/khronosgroup (videos) jet set vulkan : reflecting on the move to vulkan quiz answers 1: c 2: e 3: e 4: a hedgehog – because alon’s fellow speaker’s name is “karlo jež” and jež is croatian for hedgehog!
Richard Huddy
Develop Samsung Pay
doc3 1 android sdk 3 1 1 introduction the samsung pay sdk allows android-based partner apps—such as merchant apps and issuer banking apps—to securely integrate features of integration wallet, enabling in-app payments, push provisioning, and more the following major operations are supported in-app payment - gives customers the option of paying for products and services with samsung wallet push provisioning - allows customers add a bank card to samsung wallet from the issuer app by providing the required card details to integrate your partner application with the samsung pay sdk, the following components are included your sdk download samsungpay jar - contains classes and interfaces of the samsung pay sdk which need to be integrated to partner apps javadoc - provides descriptions of the apis included in the samsung pay sdk, along with sample code showing how to use them sample merchant app and sample issuer app showing how samsung pay apis can be coded in a finished android project all major operations of samsung pay sdk are implemented for demonstration purposes 3 1 2 samsung pay sdk architecture the following diagram shows a high-level architecture revealing the general interactions between the samsung pay sdk and a partner app viewed at this level, the partner apps leverage the samsung pay sdk to perform the operations shown ― push provisioning and opening favorite cards for issuers; online payments for merchants ― with samsung pay the key components involved are partner app - merchant- or issuer-developed app for making online/offline payments and provisioning payment cards through samsung wallet samsung pay sdk - sdk integrated into the partner app for direct communication with samsung wallet samsung wallet app - wallet app that the samsung pay sdk communicates with financial network - comprises the payment gateways, acquirers, card associations, and issuers that participate in transaction processing under agreement with the merchant the main classes comprising the samsung pay sdk include samsungpay – used by the partner app to get the samsung pay sdk information and the status of samsung wallet app on the device paymentmanager – provides payment/transaction functionality cardmanager – manages card list get, add, update functionality watchmanager – manages all functions related to samsung pay watch cardinfolistener – interface for requestcardinfo result from samsung wallet customsheettransactioninfolistener – interface for transaction success/failure callbacks from samsung wallet 3 1 3 uses cases in-app payment the most common in-app online payment use case take the following form merchant app presents user with the option of making payment with samsung wallet upon the user selecting the samsung pay option, the merchant app calls the apis included in the samsung pay sdk to initiate a transaction with samsung wallet app samsung wallet app responds with the tokenized payment information necessary to complete the transaction merchant app forwards this payment information to the designated payment gateway pg , either directly through the merchant's web server, or indirectly via the samsung-pg interface server for normal transaction processing app-to-app push provisioning the push provisioning use case ― adding payment cards to samsung wallet from the card issuer’s app ― typically takes this form the user logs into the issuer app the issuer app checks if samsung wallet is activated on the device and ready to use if it is in the ready status, the issuer app displays an add button for cards not currently registered/enrolled with the samsung wallet app if the add card option is selected, the issuer app calls an api to push the proper payload data to samsung wallet while the card is being provisioned, samsung wallet stays in background 3 1 4 setting up sdk development environment the importance of maintaining a good development environment cannot be overstated for integrating the samsung pay sdk with your partner app, the following prerequisites and recommendations help ensure a successful sdk implementation system requirements the samsung pay sdk is designed exclusively for samsung mobile devices supporting samsung pay and running android lollipop 5 1 android api level 22 or later versions of the android os the sdk’s in-app payments functionality requires android 6 0 m android api level 23 or later versions of the android os note as of sdk version 1 5, if the device runs android lollipop 5 1 android api level 22 or an earlier version, the getsamsungpaystatus api method returns a spay_not supported status code merchant apps still using samsung pay sdk 1 4 or earlier not recommended must check the android version running their app use the following snippet to determine the os version running on a device and whether or not to display the samsung pay button in your partner app import android os build; // in-app payment supported on android m or above // check android version of the device if build version sdk_int < build version_codes m { //hide samsung pay button} service registration to develop a samsung pay sdk service, merchants and issuers need to register for an account with samsung pay developers in order to create the appropriate service type for their applications here are some helpful links inside the portal become a member https //pay samsung com/developers/tour/memberguide create services https //pay samsung com/developers/tour/svcguide register apps https //pay samsung com/developers/tour/appsguide manage services and apps https //pay samsung com/developers/tour/svcnappsguide add samsung pay sdk to your project be sure to do the following before attempting to use the sdk if not already part of your environment, download and install an ide android studio is recommended download the samsung pay sdk the sdk package has the following directory structure folder contents docs javadoc – api reference documentation libs samsungpay jar sdk java archive file – contains the samsung pay apis to be used by your partner app samples sample apps configure your ide to integrate the samsung pay sdk with your partner app a add samsungpay jar to the libs folder of your android project b go to gradle scripts > build gradle and enter the following dependency dependencies { compile files 'libs/samsungpay jar' } c import the sdk package into your code import com samsung android sdk samsungpay v2; d proguard rules - if your app s have any issue with proguard, the following rules are recommended to enter in debug mode dontwarn com samsung android sdk samsungpay ** -keep class com samsung android sdk ** { *; } -keep interface com samsung android sdk ** { *; } -keepresourcexmlelements manifest/application/meta-data@name=spay_sdk_api_level -keepresourcexmlelements manifest/application/meta-data@name=debug_mode -keepresourcexmlelements manifest/application/meta-data@name=spay_debug_api_key dontwarn com samsung android sdk samsungpay ** -keep class com samsung android sdk ** { *; } -keep interface com samsung android sdk ** { *; } -keepresourcexmlelements manifest/application/meta-data@name=spay_sdk_api_level -keepresourcexmlelements manifest/application/meta-data@name=debug_mode -keepresourcexmlelements manifest/application/meta-data@name=spay_debug_api_key e when dexguard is employed, the following additional rules apply -keepresourcexmlelements manifest/application/meta-data@name=spay_sdk_api_level android r os targetsdkversion 30 informationfrom android r os if the target sdk version is 30 , you must include the following <queries> element in the androidmanifest <?xml version="1 0" encoding="utf-8"?> <manifest xmlns android="http //schemas android com/apk/res/android" xmlns tools="http //schemas android com/tools" package="xxx xxx xxx xxx"> <queries> <package android name="com samsung android spay" /> <package android name="com samsung android samsungpay gear" /> </queries> 3 1 5 configuring api level api level attributes as of sdk version 1 4, enhanced version control management has been introduced to improve backward compatibility and handle api dependency from country and service type for example, if a partner integrates the latest sdk―for instance, api level 2 22―but continues to use apis based in level 1 4, the partner app remains compatible with samsung wallet apps supporting api level 1 4 without the necessity of upgrading the samsung pay app the chief characteristics and properties of the api level include every api starting from version 1 4 has an api level assigned based on the sdk version number in which it is introduced the sdk’s javadoc reference can be filtered by api level so you can determine the minimum api level you need to configure in the metadata section of your app’s androidmanifest file the earliest possible version is 1 4 this lets you use the api level defined in your androidmanifest without having to trigger an upgrade of the samsung wallet app on the user’s device implement the following usage in your androidmanifest <application <meta-data android name="spay_sdk_api_level" android value="2 22" /> // most recent sdk version is recommended to leverage the latest apis but it need to be set to 2 17 for russia </application> partner app verification in partner verification process samsung pay sdk verify your registered app, version in samsung pay portal and service it also determines device and app compatibility your app needs to verify the presence of the samsung wallet app on the device, its status, and whether or not its version is sufficient to support your implementation of the sdk 3 1 6 common terminology terminology description aavs automatic add value service aidl android interface definition language for communication merchant a business entity engaged in retail e-commerce that provides an online checkout service for purchasing its products and/or services to registered end users issuer financial institution empowered to issue credit and/or debit payment cards to qualified consumers and businesses payment gateway pg e-commerce app service provider equipped to authorize credit card payments for e-businesses, online retailers, bricks and clicks, or traditional brick and mortar payment token secure method for payment ensuring that a cardholder’s information is not exploited by unauthorized parties samsung pay samsung’s proprietary mobile wallet app and payment system samsung pay service the server and service components of samsung pay samsung pay watch samsung pay app on samsung galaxy watches to support payment system eligibility check a query by third-party apps to check whether or not samsung pay is supported/activated/ready-to-use on a samsung device mst magnetic secure transmission tui trusted user interface 3 1 7 api common flow once setup is complete, you’re ready to add the sdk code within your partner app for calling the sdk’s apis and receiving callbacks when a partner app calls one of the sdk’s apis, the following interaction flow is processed to check whether the caller is authenticated and authorized before responding to the request the steps of the interaction are enumerated below step 1 the partner app calls a samsung pay sdk api the partner app initiates a call to the samsung pay sdk this could be to request in-app payment push provisioning status checks, etc step 2 sdk validates the preconditions the sdk performs initial checks before proceeding is samsung wallet installed on the device? is the integrity of the samsung pay system intact e g , no tampering or missing files ? step 3 sdk initiates communication with samsung wallet if preconditions are met, the sdk uses aidl android interface definition language to securely open a communication channel with the samsung wallet app step 4 samsung wallet app status validation samsung wallet app checks has the samsung pay setup been completed on the device? does the app require a mandatory update? is the samsung pay sdk api level used by the partner app compatible? step 5 partner app eligibility verification sdk triggers a backend verification with the samsung pay server to confirm the app’s package name, service id, and csr match what’s registered on the samsung pay developers portal the app is authorized to use the requested samsung pay functionality step 6 samsung wallet responds to sdk based on the above validations samsung wallet responds via aidl to the sdk it sends status codes, eligibility results, or additional prompts if needed e g , update required step 7 sdk triggers callback in the partner app the sdk invokes a callback function in the partner app this informs the app whether it can proceed with payment/provisioning an error or restriction has occurred step 8 partner app executes business logic based on sdk callback if successful initiate samsung pay payment ui or push provisioning complete transaction or card enrollment via the wallet app if unsuccessful inform the user offer fallback payment options provide guidance on enabling/updating samsung wallet 3 1 8 checking samsung pay status the first step in integrating the samsung pay sdk into your partner app is to create a samsung pay instance and check the status of samsung pay on the user's device this check determines whether the device supports samsung pay and if the samsung pay button should be shown as a payment or provisioning option the samsung pay button serves two key purposes for merchant apps, it enables users to select samsung pay for in-app payments for issuer apps, it allows users to add a card directly to samsung pay via push provisioning setting partnerinfo for verification before checking the status, the partner app must configure and pass a valid partnerinfo object to the samsungpay instance this is essential for verifying the calling app and enabling further sdk functionality the partnerinfo must include serviceid sid a unique identifier assigned by the samsung pay developer portal servicetype defines the type of service e g , merchant or issuer this value is also assigned during service registration samsung pay uses partnerinfo for validating the app’s identity and registration performing sdk version and api compatibility checks verifying allowlist/blocklist status note servicetype is required without it, you cannot call other samsung pay apis once partnerinfo is set correctly, you can proceed to call getsamsungpaystatus to check if samsung pay is available and ready for use on the device val serviceid = "partner_app_service_id" val bundle = bundle bundle putstring samsungpay partner_service_type, samsungpay servicetype inapp_payment tostring val partnerinfo = partnerinfo serviceid, bundle after setting partnerinfo, your partner app can now call getsamsungpaystatus this method of the samsungpay class must be called before using any other feature in the samsung pay sdk noteif you want to get the status of samsung pay watch, you have to use the watchmanager class instead of the samsungpay class fun getsamsungpaystatus callback statuslistener copy the result is delivered to statuslistener and provides the following events onsuccess ‒ called when the requested operation is successful it provides the status of the request, as well as extra bundle data related to the request onfail ‒ called when the request operation fails it returns the error code and extra bundle data related to the request the samsung pay status code returned is one of the following spay_not_supported - indicates samsung wallet is not supported on this device; typically returned if the device is incompatible with samsung pay or if the samsung wallet app is not installed spay_not_ready - indicates samsung wallet is not completely activated; usually returned if the user did not complete a mandatory update or if the user has not signed in with a valid samsung account in which case, the partner app can activate or update the samsung wallet app on the device according to the 'extra_error_reason' bundle keys below error_spay_setup_not_complete - tells the partner app to display a popup message asking if the user wishes to activate samsung pay if the user agrees, the partner app calls activatesamsungpay to activate the samsung wallet app error_spay_app_need_to_update - tells the partner app to display a popup message asking if the user wishes to update samsung pay if user agrees, the partner app calls gotoupdatepage to open the app update page error_partner_info_invalid - indicates that partner app information is invalid; typically, the partner app is using a sdk version that is not allowed, an invalid service type, or the wrong api level error_partner_sdk_api_level - tells the partner app it is using the wrong api level to resolve the error condition, the partner app must set a valid api level error_partner_service_type - tells the partner app that it did not set a service type, or that the service type it did set is invalid service type is set in partnerinfo spay_ready - indicates that samsung pay is activated and ready to use; typically returned after the user completes all mandatory updates and signs in extra bundle data can have the following values extra_country_code - for both onsuccess and onfail , this is the current device’s country code iso 3166-1 alpha-2 set by samsung pay if the partner app is not supported in this particular country, the partner app can decide not to display samsung pay button extra_error_reason - for onfailure , this is the reason for failure set by samsung pay when the returned status code is spay_ready, the partner app can safely display the samsung pay button for user selection as a payment option, push provisioning, and so on the following sample code shows how to use the getsamsungpaystatus api method val serviceid = "partner_app_service_id" val bundle = bundle bundle putstring samsungpay partner_service_type, samsungpay servicetype inapp_payment tostring val partnerinfo = partnerinfo serviceid, bundle val samsungpay = samsungpay context, partnerinfo /* * method to get the samsung pay status on the device * partner issuers, merchants applications must call this method to * check the current status of samsung pay before doing any operation */ samsungpay getsamsungpaystatus object statuslistener { override fun onsuccess status int, bundle bundle { when status { samsungpay spay_not_supported -> // samsung pay is not supported samsungpaybutton setvisibility view invisible samsungpay spay_not_ready -> { // activate samsung pay or update samsung pay, if needed samsungpaybutton setvisibility view invisible val errorreason = bundle getint samsungpay extra_error_reason if errorreason == samsungpay error_setup_not_completed { // display an appropriate popup message to the user samsungpay activatesamsungpay } else if errorreason == samsungpay error_spay_app_need_to_update { // display an appropriate popup message to the user samsungpay gotoupdatepage } else { toast maketext context, "error reason $errorreason", toast length_long show } } samsungpay spay_ready -> // samsung pay is ready samsungpaybutton setvisibility view visible else -> // not expected result samsungpaybutton setvisibility view invisible } } override fun onfail errorcode int, bundle bundle { samsungpaybutton setvisibility view invisible log d tag, "checksamsungpaystatus onfail $errorcode" } } 3 1 9 activating the samsung wallet app the samsungpay class provides the following api method to activate the samsung wallet app on a device fun activatesamsungpay activatesamsungpay is called to activate the samsung wallet app on the same device on which the partner app is running first, however, the partner app must check the samsung pay status with a getsamsungpaystatus call see section 4 2 above if the status is spay_not_ready and extra_error_reason is error_spay_setup_not_complete, the partner app needs to display an appropriate message to user, then call activatesamsungpay to launch the samsung wallet app so the user can sign in here’s an example of how to code this val serviceid = "partner_app_service_id" val bundle = bundle bundle putstring samsungpay partner_service_type, spaysdk servicetype inapp_payment tostring val partnerinfo = partnerinfo serviceid, bundle val samsungpay = samsungpay context, partnerinfo samsungpay activatesamsungpay 3 1 10 updating the samsung wallet app the samsungpay class provides the following api method to update the samsung wallet app on the device fun gotoupdatepage gotoupdatepage is called to update samsung wallet app on the same device on which the partner app is running as with all api calls, the partner app must first check the samsung pay status with getsamsungpaystatus if this returns spay_not_ready and extra_error_reason is error_spay_app_need_to_update, then the partner app needs to display an appropriate message to the user and call gotoupdatepage , which launches the samsung pay update page the following code sample reflects how to update samsung pay val serviceid = "partner_app_service_id" val bundle = bundle bundle putstring samsungpay partner_service_type, spaysdk servicetype inapp_payment tostring val partnerinfo = partnerinfo serviceid, bundle val samsungpay = samsungpay context, partnerinfo samsungpay gotoupdatepage 3 1 11 in-app online the main classes and interfaces involved here are samsungpay– class for a merchant app to get samsung pay sdk information and the status of samsung pay on the device paymentmanager – class to provide payment/transaction functionality cardinfolistener – interface for requestcardinfo result callbacks from samsung wallet customsheettransactioninfolistener – interface for transaction success/failure callbacks from samsung wallet; payment information is provided with a success callback and must be used by the merchant app for processing the payment the flow pictured next captures the essential online payment api process between merchant apps integrated with the samsung pay sdk and samsung wallet and the merchant’s payment gateway pg 3 1 12 api flow for in-app payments the api flow for samsung pay in-app payments involves a series of operations that ensure secure, seamless, and verified payment processing between the merchant app, samsung wallet, and the payment gateway pg these steps are illustrated in the flow diagram above and described below check the ready status of samsung pay use samsungpay getsamsungpaystatus to verify whether samsung pay is installed and supported on the device samsung pay is activated and ready for transactions the user has completed mandatory updates and account setup start the payment manager to establish the service binding and verify the merchant app establish a binding between your app and the samsung wallet app validate that the merchant app is authorized and registered prepare the sdk to handle payment operations get payment card information and the payment amount, including updates this step also includes displaying eligible cards to the user allowing the user to select a card for the transaction collecting or updating the payment amount get/update the user’s billing and shipping addresses, including an updated payment amount if shipping charges will be incurred if required by the transaction retrieve or update the user’s billing and shipping address recalculate and update the total payment amount e g , shipping cost impact authenticate the user trigger authentication via trusted user interface tui , using biometrics or other secure methods supported by samsung wallet submit payment information to pg this ensures the user has authorized the transaction send the tokenized payment data received from samsung pay to your designated payment gateway pg for transaction processing this can be done via a direct merchant server-to-pg connection, or samsung pg interface server if applicable verify transaction success or failure receive confirmation of transaction success or failure from the payment gateway communicate the result back to the user and update your app's ui and backend accordingly 3 1 13 token modes network vs gateway to complete the payment, the merchant’s designated payment gateway pg handles one of two types of tokens gateway tokens indirect or network tokens direct the samsung pay sdk supports both types the essential difference between the two types is who decrypts the token information network tokens require that the merchant app handles decryption of the token bundle or work with the pg to handle decryption, whereas gateway token decryption is handled by the pg via the samsung-pg interface server network token mode direct user selects samsung pay as the payment method at checkout in the merchant app and the samsung pay app requests partner verification from the samsung pay online payment server encrypted payment information is passed from the samsung pay app to the pg through the merchant app via the pg sdk applying the merchant's private key, pg decrypts the payment information structure and processes the payment through the acquirer and payment network upon receiving authorization or rejection, pg notifies the merchant app through its pg sdk gateway token mode indirect user selects samsung pay as the payment method at checkout in the merchant app and the samsung pay app requests partner verification from the samsung pay online payment server encrypted payment information and the partner id are passed to the samsung-pg interface server samsung-pg interface server sends a transaction authorization request to the pg on behalf of the merchant; pg authenticates the partner id before generating a transaction reference id reference id is passed to merchant app via sdk callback merchant app then passes the reference id to the pg for payment process execution samsung-pg interface server returns the payment token to the pg i e , gateway token it received from samsung pay app in step 2 pg continues payment processing with the acquirer and payment network the result approved/declined is returned to the merchant app on the device for display to the user check with your pg to determine its specific requirements for payment processing regardless of the pg model employed, direct or indirect, the goal is to offer samsung pay as a secure payment method within your merchant app the most common use case involves the following general steps to make a purchase, the user selects to “buy” or got to checkout after adding items to a shopping cart now in checkout, the user selects a payment option; for example, either the merchant’s “standard” method or samsung pay upon selecting samsung pay, the user is presented with a payment sheet that allows for card selection and shipping address confirmation with the option to add/modify information for this order, whereupon the user makes payment card selection from the list of enrolled cards chooses to change or add the delivery address enters required address information in the form presented and saves it authenticates the payment method, amount, and delivery with a biometric verification fingerprint, iris… or pin 3 1 14 checking registered/enrolled card information before displaying the samsung pay button, a partner app can query card brand information for the user’s currently enrolled payment cards in samsung wallet to determine if payment is supported with the enrolled card for example, if a merchant app accepts one card brand exclusively but the user has not registered any cards matching this brand in samsung wallet, the merchant app needs to determine whether or not to display the samsung pay button for this purchase checkout to query the card brand, use the requestcardinfo api method of the paymentmanager class the requestfilter is optional bundle data reserved for future use the merchant app does not need to set a value for it now however, before calling this method, cardinfolistener must be registered so its listener can provide the following events onresult - called when the samsung pay sdk returns card information from samsung wallet; returns information about enrolled cards or is empty if no card is registered onfailure - called when the query fails; for example, if sdk service in the samsung wallet app ends abnormally the following snippet shows how to retrieve the list of supported card brands from samsung pay val serviceid = "partner_app_service_id" val bundle = bundle bundle putstring samsungpay partner_service_type, spaysdk servicetype inapp_payment tostring val partnerinfo = partnerinfo serviceid, bundle val paymentmanager = paymentmanager context, partnerinfo paymentmanager requestcardinfo bundle , cardinfolistener // get card brand list //cardinfolistener is for listening requestcardinfo callback events val cardinfolistener cardinfolistener = object cardinfolistener { // this callback is received when the card information is received successfully override fun onresult cardresponse list<cardinfo> { var visacount = 0 var mccount = 0 var amexcount = 0 var dscount = 0 var brandstrings = "card info " var brand spaysdk brand? for i in cardresponse indices { brand = cardresponse[i] brand when brand { spaysdk brand americanexpress -> amexcount++ spaysdk brand mastercard -> mccount++ spaysdk brand visa -> visacount++ spaysdk brand discover -> dscount++ else -> { /* other card brands */ } } } brandstrings += " vi = $visacount, mc = $mccount, ax = $amexcount, ds = $dscount" log d tag, "cardinfolistener onresult $brandstrings" toast maketext context, "cardinfolistener onresult" + brandstrings, toast length_long show } /* * this callback is received when the card information cannot be retrieved * for example, when sdk service in the samsung wallet app dies abnormally */ override fun onfailure errorcode int, errordata bundle { //called when an error occurs during in-app cryptogram generation toast maketext context, "cardinfolistener onfailure " + errorcode, toast length_long show } } 3 1 15 creating a transaction request upon successful initialization of the samsungpay class, the merchant app needs to create a transaction request with payment information note as of sdk v2 0 00, the normal payment sheet is deprecated all merchant apps must now use the custom payment sheet, which offers more dynamic controls for tailoring the ui look and feel with additional customer order and payment data merchant app developers choosing to temporarily continue offering the normal sheet will need to configure their android manifest to reflect the pre-2 0 00 version of the sdk used to implement their app’s existing normal sheet, although this is not recommended in all cases, merchant app developers should update their apps with the latest version of the sdk as soon as possible to avoid timing out using an earlier version of the sdk when responding to samsung pay callbacks using the custom payment sheet to initiate a payment transaction with samsung pay’s custom payment sheet, your merchant app must populate the following mandatory fields in customsheetpaymentinfo merchant name - as it will appear in samsung pay’s payment sheet, as well as the user's card account statement amount - the constituent transaction properties currency, item price, shipping price, tax, total price which together determine the total amount the user is agreeing to pay the merchant cautionnot populating the mandatory fields throws an illegalargumentexception optionally, the following fields can be added to the payment information merchant id- can be used for the merchant’s own designated purpose at its discretion unless the merchant uses an indirect pg like stripe or braintree if an indirect pg is used, this field must be set to the merchant’s payment gateway id fetched from the samsung pay developers portal merchant id is mandatory if a merchant requests with a mada token, this field should be included in the payload order number - usually created by the merchant app via interaction with a pg this number is required for refunds and chargebacks in the case of visa cards, the value is mandatory the allowed characters are [a-z][a-z][0-9,-] and the length of the value can be up to 36 characters address - the user’s billing and/or shipping address see applying an addresscontrol for details allowed card brands - specifies card brands accepted by the merchant if no brand is specified, all brands are accepted by default if at least one brand is specified, all other card brands not specified are set to "card not supported’ on the payment sheet here’s the 'customsheetpaymentinfo' structure class customsheetpaymentinfo parcelable { private val version string? = null private val merchantid string? = null private val merchantname string? = null private val ordernumber string? = null private val addressinpaymentsheet addressinpaymentsheet = addressinpaymentsheet do_not_show private val allowedcardbrand list<spaysdk brand>? = null private val cardinfo cardinfo? = null private val iscardholdernamerequired = false private val isrecurring = false private val merchantcountrycode string? = null private val customsheet customsheet? = null private val extrapaymentinfo bundle? = null } your merchant app sends this customsheetpaymentinfo to samsung wallet via the applicable samsung pay sdk api methods upon successful user authentication in direct mode, samsung wallet returns the above "payment info" structure and a result string the result string is forwarded to the pg by your merchant app to complete the transaction it will vary based on the pg you’re using note if you want to add any other information for any card brand, you can add them in the extrapaymentinfo bundle the following example demonstrates how to populate customsheet in the customsheetpaymentinfo class see sample merchant app using custom payment sheet below for example usage of each customsheet control /* * make user's transaction details * the merchant app should send customsheetpaymentinfo to samsung wallet via * the applicable samsung pay sdk api method for the operation being invoked */ private fun makecustomsheetpaymentinfo customsheetpaymentinfo { val brandlist = arraylist<spaysdk brand> // if the supported brand is not specified, all card brands in samsung wallet are // listed in the payment sheet brandlist add paymentmanager brand visa brandlist add paymentmanager brand mastercard brandlist add paymentmanager brand americanexpress /* * make the sheetcontrols you want and add them to custom sheet * place each control in sequence with amountboxcontrol listed last */ val customsheet = customsheet customsheet addcontrol makebillingaddresscontrol customsheet addcontrol makeshippingaddresscontrol customsheet addcontrol makeplaintextcontrol customsheet addcontrol makeshippingmethodspinnercontrol customsheet addcontrol makeamountcontrol val extrapaymentinfo = bundle /* * you can add transaction type for mada card brand * the supported values are purchase and preauthorization * if you don't set any value, the default value is purchase */ extrapaymentinfo putstring spaysdk extra_online_transaction_type, spaysdk transactiontype preauthorization tostring val customsheetpaymentinfo = customsheetpaymentinfo builder setmerchantid "123456" setmerchantname "sample merchant" // merchant requires billing address from samsung wallet and // sends the shipping address to samsung wallet // show both billing and shipping address on the payment sheet setaddressinpaymentsheet customsheetpaymentinfo addressinpaymentsheet need_billing_send_shipping setallowedcardbrands brandlist setcardholdernameenabled true setrecurringenabled false setcustomsheet customsheet setextrapaymentinfo extrapaymentinfo build return customsheetpaymentinfo } 3 1 16 requesting payment with a custom payment sheet the startinapppaywithcustomsheet method of the paymentmanager class is applied to request payment using a custom payment sheet in samsung wallet the two methods are defined as follows startinapppaywithcustomsheet - initiates the payment request with a custom payment sheet the payment sheet persists for 5 minutes after the api is called if the time limit expires, the transaction fails updatesheet - must be called to update current payment sheet as of api level 1 5, a merchant app can update the custom sheet with a custom error message refer to updating sheet with custom error message when you call the startinapppaywithcustomsheet method, a custom payment sheet is displayed on the merchant app screen from it, the user can select a registered card for payment and change the billing and shipping addresses, as necessary the result is delivered to customsheettransactioninfolistener, which provides the following events onsuccess - called when samsung pay confirms payment it provides the customsheetpaymentinfo object and the paymentcredential json string customsheetpaymentinfo is used for the current transaction it contains amount, shippingaddress, merchantid, merchantname, ordernumber api methods exclusively available in the onsuccess callback comprise getpaymentcardlast4dpan – returns the last 4 digits of the user's digitized personal/primary identification number dpan getpaymentcardlast4fpan – returns the last 4 digits of the user's funding personal/primary identification number fpan getpaymentcardbrand – returns the brand of the card used for the transaction getpaymentcurrencycode – returns the iso currency code in which the transaction is valued getpaymentshippingaddress – returns the shipping/delivery address for the transaction getpaymentshippingmethod – returns the shipping method for the transaction for pgs using the direct model network tokens , the paymentcredential is a json object containing encrypted cryptogram which can be passed to the pg pgs using the indirect model gateway tokens like stripe, it is a json object containing reference card reference – a token id generated by the pg and status i e , authorized, pending, charged, or refunded refer to payment credential sample for details oncardinfoupdated - called when the user changes the payment card in this callback, updatesheet method must be called to update current payment sheet onfailure - called when the transaction fails; returns the error code and errordata bundle for the failure here’s how to call the startinapppaywithcustomsheet method of the paymentmanager class /* * customsheettransactioninfolistener is for listening callback events of in-app custom sheet payment * this is invoked when card is changed by the user on the custom payment sheet, * and also with the success or failure of online in-app payment */ private val transactionlistener = object customsheettransactioninfolistener { // this callback is received when the user changes card on the custom payment sheet in samsung pay override fun oncardinfoupdated selectedcardinfo cardinfo, customsheet customsheet { /* * called when the user changes card in samsung wallet * newly selected cardinfo is passed so merchant app can update transaction amount * based on different card if needed , */ val amountboxcontrol = customsheet getsheetcontrol amount_control_id as amountboxcontrol amountboxcontrol updatevalue product_item_id, 1000 0 //item price amountboxcontrol updatevalue product_tax_id, 50 0 // sales tax amountboxcontrol updatevalue product_shipping_id, 10 0 // shipping fee amountboxcontrol updatevalue product_fuel_id, 0 0, "pending" // additional item status amountboxcontrol setamounttotal 1060 0, amountconstants format_total_price_only // grand total customsheet updatecontrol amountboxcontrol // call updatesheet with amountboxcontrol; mandatory try { paymentmanager updatesheet customsheet } catch e java lang illegalstateexception { e printstacktrace } catch e java lang nullpointerexception { e printstacktrace } } /* * this callback is received when the payment is approved by the user and the transaction payload * is generated payload can be an encrypted cryptogram network token mode or the pg's token * reference id gateway token mode */ override fun onsuccess response customsheetpaymentinfo, paymentcredential string, extrapaymentdata bundle { /* * called when samsung pay creates the transaction cryptogram, which merchant app then sends * to merchant server or pg to complete in-app payment */ try { val dpan = response cardinfo cardmetadata getstring spaysdk extra_last4_dpan, "" val fpan = response cardinfo cardmetadata getstring spaysdk extra_last4_fpan, "" toast maketext context, "dpan " + dpan + "fpan " + fpan, toast length_long show } catch e java lang nullpointerexception { e printstacktrace } toast maketext context, "transaction onsuccess", toast length_long show } override fun onfailure errorcode int, errordata bundle { // called when an error occurs during cryptogram generation toast maketext context, "transaction onfailure $errorcode", toast length_long show } } private fun startinapppaywithcustomsheet { // show custom payment sheet try { val bundle = bundle bundle putstring samsungpay partner_service_type, spaysdk servicetype inapp_payment tostring val partnerinfo = partnerinfo serviceid, bundle paymentmanager = paymentmanager context, partnerinfo // request payment using samsung wallet paymentmanager startinapppaywithcustomsheet makecustomsheetpaymentinfo , transactionlistener } catch e illegalstateexception { e printstacktrace } catch e numberformatexception { e printstacktrace } catch e nullpointerexception { e printstacktrace } catch e illegalargumentexception { e printstacktrace } } when an address is provided by samsung wallet, onaddressupdated is called whenever address information is updated in the custom payment sheet you can use the updatesheet method to update the shipping fee or any other relevant information in the payment sheet set the errorcode to determine if the address provided by samsung wallet app is invalid, out of delivery, or does not exist for example, when the merchant does not support the product delivery to the designated location billing address from samsung wallet is not valid for tax recalculation for all such cases, the merchant app should call updatesheet with one of the following error codes error_shipping_address_invalid error_shipping_address_unable_to_ship error_shipping_address_not_exist error_billing_address_invalid error_billing_address_not_exist the sample code included below under applying the address control demonstrates how to use the updatesheet method for 'addresscontrol' in the payment sheet 3 1 17 payment credential sample the paymentcredential is the resulting output of the startinapppaywithcustomsheet method the structure varies depending on the pg you’re using and the integration model—direct or indirect the following paymentcredential is for a visa card for pg using direct network token mode – e g first data, adyen, visa cybersourse sample paymentcredential json output using jwe-only { "billing_address" {"city" "billingcity","country" "usa","state_province" "ca","street" "billingaddr1","zip_postal_code" "123456"}, "card_last4digits" "1122", "3ds" {"data" "eyjhbgcioijsu0exxzuilcjrawqioijcak91a1h2afv4wu5wofiwvgs2y25oactzwwfqzxhiehrvz0vfdhlhyy9npsisinr5cci6ikppu0uilcjjagfubmvsu2vjdxjpdhldb250zxh0ijoiulnbx1blssisimvuyyi6ikexmjhhq00ifq fg2oouvhdgkkivyba2s5kturpwueujkzeyxz7n6kalhqahszv3p5jabaoj-rokcznfjdg3qierzjktu7zxst9gwv4oclahpfdw64w0x6ttaxeyjiivkjug-edxxtwajeyeikgc68wehf1cltsqg4zlwi6upvcaywdppbn0hl0c5wcf5az4wabytv_fda5ahguypne70keqrtwdlacw9mzejx2xth7msd9ohoulr8luq-7gha17jhoobwgmoq9q0haocnm0ljwiuhkoryyu-njulnbkk8fzus_aiumgdv2yn9ygfqilmculb0vwuf0yekx6isgaxi0zqhliusjkcz_w auzzxog46lnrtk3q qe2llws30vzh-zduue8b045cnfrm2p-rjzgbnzchels3v26n64cfg1av5mtp5f-fswbj3ntp5x4v1nk8fmdy0uspxzemfvl5badgac7w9frxt6x5xv1fqu6-q-zkbxcb9bygownt983bckoe1bd5djxfbodlrc4j68ikdjc5m3lebdx6hv0aqzkmilch-jevl3awqykbny4vj7m3fizw7u1prli2zfwukxdfs4vwv3bpm4qudemvnhxj qtymdmn4ne93juljnmwkjg","type" "s","version" "100"}, "merchant_ref" "merchantid", "method" "3ds", "recurring_payment" false } decrypt using the merchant’s private key below is sample private key -----begin rsa private key----- miieowibaakcaqea4lzyjqr+dqd/xleoxct9jwtjxhd2ptjke9djtmijki0h2oc2ghow4ujhhy/1jvft2+zcnjtoxuvlp+76/dwa3bcwfrj+fpp6x5kkylpb+djdyo1ttumltnqcwymjb3u7jbc+xr4vkfrzqjxke7xhn/sbb82ue8c3smzvkynuji<…> -----end rsa private key----- the decrypted output will be similar to this { "amount" "1000", "currency_code" "usd", "utc" "1490266732173", "eci_indicator" "5", "tokenpan" "1234567890123456", "tokenpanexpiration" "0420", //the format is **mmyy** "cryptogram" "ak+zkbpmcorcabcd3agraoacfa==" } note for amex, it needs to be displayed in the format “yymmdd”, so i would like to add this processing the payload depending on the structure of the payment processing api provided by your pg, your merchant app can send either of these directly to the pg entire paymentcredential output extracted “3ds” part only consult your pg documentation for specific guidance when using indirect model e g stripe in indirect gateway token mode, paymentcredential is the pg’s token reference id and its status here’s a sample of the json output { "reference" "tok_18rje5e6szui23f2mefakep7", "status" "authorized" } for stripe, your merchant app should be able to pass this token object directly to charge or another appropriate payment processing api provided by the pg 3 1 18 push provisioning the following diagram illustrates the flows of the app-to-app apis for payment card push provisioning the main classes involved are samsung pay – for fetching samsung wallet app status and wallet information on the device paymentmanager – for push provisioning and invoking favorite cards payment functionalities cardmanager – for payment card management watchmanager – for all functions related to samsung pay watch 3 1 19 requesting registered card list in the samsung pay the getallcards method of the cardmanager class is used to request a list of all cards currently registered/enrolled in samsung wallet on the same device running the issuer’s app to succeed, the issuer app must pass valid partnerinfo to 'cardmanager' for caller verification 'cardfilter' narrows the card list returned by samsung wallet to the issuername specified please be noted that getsamsungpaystatus must be called before getallcards getallcards could not return a cards list when getsamsungpaystatus responds with a code other than spay_ready noteto get the cards list of samsung pay watch, you have to use the watchmanager class instead of the cardmanager class as of api level sdk version 1 4, cardfilter retrieves this information from the samsung pay developers portal certain issuers may need to register multiple issuer name s with the portal, depending on their app and/or the requirements of their token service provider tsp the getallcards parameter cardfilter matches the issuer name s specified with those registered in the portal only complete matches are returned this method is typically called when your partner app wants to check the card status it does not need to be called every time the partner app resumes therefore, you should create the card list with the 'oncreate ' method, rather than the 'onresume ' method the result of a getallcards call is delivered to getcardlistener, which provides the following events onsuccess - called when the operation succeeds; provides the list of all filtered cards and their status card information includes cardid, cardstatus, and extra cardinfo data onfail - called when the operation fails here’s an example of how to use the 'getallcards ' api method in your issuer app val cardfilter = bundle // since api level 1 4, cardfilter param is ignored partner does not need to use it here // it is retrieved from the samsung pay developers portal cardfilter putstring cardmanager extra_issuer_name, issuername cardmanager getallcards null, object getcardlistener{ override fun onsuccess cards mutablelist<card>? { // getting card status is success if cards == null || cards isempty { log e tag, "no card is found" return } else { // perform operation with card data for s in cards { log d tag, "cardid " + s cardid + "cardstatus " + s cardstatus // get extra card data if s cardinfo != null { val cardid = s cardid // since api level 2 13, id from card network val last4fpan = s cardinfo getstring cardmanager extra_last4_fpan val last4dpan = s cardinfo getstring cardmanager extra_last4_dpan val cardtype = s cardinfo getstring cardmanager extra_card_type val cardissuername = s cardinfo getstring cardmanager extra_issuer_name log d tag, "last4fpan $last4fpan last4dpan $last4dpan cardid $cardid" } } } } override fun onfail errorcode int, errordata bundle? { // getting card status is failed } } 3 1 20 getting wallet information the samsungpay class provides the getwalletinfo api method, which is called to request wallet information from the samsung wallet app prior to calling the addcard api, when you want to avoid duplicate provisioning your issuer app uses this information to uniquely identify the user and the samsung wallet app on a particular device wallet device management id, device id, and wallet user id note to get wallet information of samsung pay watch, you have to use the watchmanager class instead of the cardmanager class fun getwalletinfo list<string> keys, statuslistener callback the following example demonstrates how to use it // set the serviceid assigned by the samsung pay developers portal during service creation val serviceid = "sampleserviceid" val bundle = bundle bundle putstring samsungpay extra_issuer_name, "issuer name" bundle putstring samsungpay partner_service_type, servicetype app2app tostring val pinfo = partnerinfo serviceid, bundle val samsungpay = samsungpay context, pinfo // add bundle keys to get wallet information from samsung pay // this information can be delivered to the partner server for an eligibility check val keys = arraylist<string> keys add samsungpay wallet_user_id keys add samsungpay device_id samsungpay getwalletinfo keys, object statuslistener{ override fun onsuccess status int, walletdata bundle { // log d tag, "dowalletinfo onsuccess callback is called" ; // for visa, deviceid can be set to "clientdeviceid" as defined by visa val deviceid = walletdata getstring samsungpay device_id // for visa, walletuserid can be set to "clientwalletaccountid" as defined by visa val walletuserid = walletdata getstring samsungpay wallet_user_id } override fun onfail errorcode int, errordata bundle? { log e tag, "onfail callback is called, errorcode " + errorcode ; // check the extra error codes in the errordata bundle for all the reasons in // samsungpay extra_error_reason, when provided } } 3 1 21 adding a card to samsung pay your issuer app calls the 'addcard ' api method of cardmanager to add a card to samsung wallet by providing the required card details, your app can make it convenient and easy for users to add their bank-issued debit/credit cards to samsung wallet directly from your app without additional steps, like switching between apps note if you want to add a card to samsung pay watch, you have to use the 'watchmanager' class instead of the cardmanager class for most issuers, getwalletinfo suffices for requesting current wallet information the response from samsung wallet tells the issuer app whether or not the user’s card has already been added to samsung wallet or is ineligible for provisioning it is therefore recommended that you call getwalletinfo before displaying the add to samsung pay button if the card is eligible, display the “add” button and, if the user taps it, call addcard important remember to obtain the governing issuer implementation guide s and specifications from the respective card network and implement each network’s required handling in your partner app and server the 'addcard ' result is delivered to addcardlistener, which provides the following events onsuccess - called when the operation succeeds; provides information and status regarding the added card onfail - called when the operation fails; returns the error code and extra bundle data such as extra_error_reason or extra_request_id if provided onprogress - called to indicate the current progress of the 'addcard ' operation; can be used to show a progress bar to the user in the issuer app this callback is supported for tsm solution issuers in china and spain here’s an example of how to use the addcard api method in your issuer app val cardtype = card card_type_credit val tokenizationprovider string = addcardinfo provider_abcd // samsung pay does not provide detailed payload information; generate the provisioning payload in // accordance with your card network specifications val testpayload = "thisistestpayloadcardinfo1234567890" //bin bank identification number can be set to issuerid it is mandatory for some card network val issuerid = "123456" val carddetail = bundle carddetail putstring extra_provision_payload, testpayload carddetail putstring extra_issuer_id, issuerid val addcardinfo = addcardinfo cardtype, tokenizationprovider, carddetail cardmanager addcard addcardinfo, object addcardlistener { override fun onsuccess status int, card card? { log d tag, "onsuccess callback is called" ; } override fun onfail errorcode int, errordata bundle? { log d tag, "onfail callback is called" ; // check some extra error codes in the errordata bundle // such as samsungpay extra_error_reason or samsungpay extra_request_id if provided } override fun onprogress currentcount int, totalcount int, bundledata bundle? { log d tag,"onprogress callback is called " + currentcount + " / " + totalcount ; } } 3 1 22 adding a co-badge card to samsung pay co-badge payment cards combine two payment brands/networks to add a co-badge card through push provisioning, you must provide two different card network details one for the primary card network and another for the secondary card network issuer app calls the addcobadgecard api method of cardmanager to add a co-badge card to samsung pay in most cases, calling getwalletinfo will suffice to request current wallet information the response from samsung pay indicates whether the user's co-badge card has already been added to samsung pay or is ineligible for provisioning therefore, it is advisable to call getwalletinfo before displaying the add to samsung pay button if the co-badge card is eligible, display the "add" button and, upon user tapping, call addcobadgecard important please remember to refer to the relevant issuer implementation guide s and specifications provided by each card network and ensure that your partner app and server adhere to their specific requirements the addcobadgecard result is delivered to addcardlistener, which provides the following events onsuccess - called when the operation succeeds; provides information and status regarding the added card onfail - called when the operation fails; returns the error code and extra bundle data such as extra_error_reason or extra_request_id if provided onprogress - called to indicate the current progress of the 'addcard ' operation; can be used to show a progress bar to the user in the issuer app this callback is supported for tsm solution issuers in china and spain here’s an example of how to use the addcobadgecard api method in your issuer app notesamsung pay does not provide detailed payload information; generate the provisioning payload in accordance with your card networks specifications string cardtype = card card_type_credit; string primarytokenizationprovider = addcardinfo provider_abcd; //provide your primary card network payload string testprimarypayload = "thisistestprimarypayloadcardinfo1234567890"; string secondarytokenizationprovider = addcardinfo provider_efgh; //provide your secondary card network payload string testsecondarypayload = "thisistestsecondarypayloadcardinfo1234567890"; bundle primarycarddetail = new bundle ; primarycarddetail putstring addcardinfo extra_provision_payload, testprimarypayload ; addcardinfo primaryaddcardinfo = new addcardinfo cardtype, primarytokenizationprovider, primarycarddetail ; bundle secondarycarddetail = new bundle ; secondarycarddetail putstring addcardinfo extra_provision_payload, testsecondarypayload ; addcardinfo secondaryaddcardinfo = new addcardinfo cardtype, secondarytokenizationprovider, secondarycarddetail ; cardmanager addcobadgecard primaryaddcardinfo, secondaryaddcardinfo, new addcardlistener { @override public void onsuccess int status, card card { log d tag, "onsuccess callback is called" ; } @override public void onfail int error, bundle errordata { log d tag, "onfail callback is called" ; check some extra error codes in the errordata bundle such as samsungpay extra_error_reason or samsungpay extra_request_id if provided } @override public void onprogress int currentcount, int totalcount, bundle bundledata { log d tag,"onprogress callback is called " + currentcount + " / " + totalcount ; } } ; 3 1 23 sample applications sample apps, use cases, and ux strategies are included here to aid you in understanding the sdk and implementing it in your application sample source code and apks can be downloaded from download section sample merchant app included with the samsung pay sdk to demonstrate its features, the sample merchant app shows you how to implement the payment sheet’s dynamic controls to leverage additional customer order and payment data and/or create a more custom ui look and feel the following payment sheet controls are available addresscontrol plaintextcontrol amountboxcontrol spinnercontrol controls are applied to suit a particular purpose or need for example, displaying a promotion notice in the payment sheet using the plaintextcontrol applying an addresscontrol this control is used to display the billing or shipping address on the payment sheet based on samsung pay’s my info user profile or addresses provided by your merchant app during the transaction request when creating the control, controlld and sheetitemtype are needed to distinguish the billing address from the shipping address otherwise, your merchant app sets the following properties address title – displays a merchant-defined title on the payment sheet if empty, the default title such as “billing address” is displayed address – provides various methods to retrieve address details the merchant app can retrieve the phone number using the 'getphonenumber' method of 'customsheetpaymentinfo' address starting from api level 1 5, the addressee’s email address has also been added retrieve the email address using 'getemail' you can also set a display option for the shipping address with 'setdisplayoption' for more information, see the samsung pay sdk-api reference javadoc and the sample code included with the samsung pay sdk sheetupdatedlistener – used to capture the response from the samsung wallet app; merchant app must deliver to the samsung wallet app an amountboxcontrol to display payment information on a custom payment sheet when the onresult callback is called, the updatesheet method must also be called to update the current payment sheet errorcode – used for containing error codes directly related to the address the workflows for billingaddresscontrol the workflow for shippingaddresscontrol the following sample code demonstrates use of addresscontrol on the payment sheet fun makebillingaddresscontrol addresscontrol { val billingaddresscontrol = if !iszipcodeonly { // for billing address addresscontrol billing_address_id, sheetitemtype billing_address billingaddresscontrol addresstitle = "billing address" } else { /* * for billing address with zip code only * since api level 2 19, sheetitemtype zip_only_address * for us country only */ addresscontrol billing_address_id, sheetitemtype zip_only_address billingaddresscontrol addresstitle = "zip code" } //this callback is received when controls are updated billingaddresscontrol sheetupdatedlistener = sheetupdatedlistener return billingaddresscontrol } //listener for billing or zip code only billing address fun sheetupdatedlistener sheetupdatedlistener { return sheetupdatedlistener { updatedcontrolid string, customsheet customsheet -> log d tag, "onresult billingaddresscontrol updatedcontrolid $updatedcontrolid" val addresscontrol = customsheet getsheetcontrol updatedcontrolid as addresscontrol val billaddress = addresscontrol address //validate only zipcode or billing address and set errorcode if needed if addresscontrol sheetitem sheetitemtype == sheetitemtype zip_only_address { val errorcode int = validatezipcodebillingaddress billaddress log d tag, "onresult updatesheetbilling errorcode $errorcode" addresscontrol errorcode = errorcode customsheet updatecontrol addresscontrol } else { val errorcode = validatebillingaddress billaddress log d tag, "onresult updatesheetbilling errorcode $errorcode" addresscontrol errorcode = errorcode customsheet updatecontrol addresscontrol } // update transaction values val amountboxcontrol = customsheet getsheetcontrol amount_control_id as amountboxcontrol amountboxcontrol updatevalue product_item_id, 1000 0 amountboxcontrol updatevalue product_tax_id, 50 0 amountboxcontrol updatevalue product_shipping_id, 10 0 amountboxcontrol updatevalue product_fuel_id, 0 0, "pending" amountboxcontrol setamounttotal 1060 0, amountconstants format_total_price_only customsheet updatecontrol amountboxcontrol try { // call updatesheet for the full amountboxcontrol; mandatory paymentmanager updatesheet customsheet } catch e illegalstateexception { e printstacktrace } catch e nullpointerexception { e printstacktrace } } } // for shipping address fun makeshippingaddresscontrol addresscontrol { val shippingaddresscontrol = addresscontrol shipping_address_id, sheetitemtype shipping_address shippingaddresscontrol addresstitle = "shipping address" val shippingaddress = customsheetpaymentinfo address builde setaddressee "name" setaddressline1 "addline1" setaddressline2 "addline2" setcity "city" setstate "state" setcountrycode "usa" setpostalcode "zip" setphonenumber "555-123-1234" setemail "user@samsung com" build shippingaddresscontrol address = shippingaddress /* * set address display option on custom payment sheet * if displayoption is not set, then default addresscontrol is displayed on custom payment sheet * the possible values are combination of below constants * {display_option_addressee} * {display_option_address} * {display_option_phone_number} * {display_option_email} */ var displayoption_val = addressconstants display_option_addressee // addressee is mandatory displayoption_val += addressconstants display_option_address displayoption_val += addressconstants display_option_phone_number displayoption_val += addressconstants display_option_email shippingaddresscontrol displayoption = displayoption_val return shippingaddresscontrol } here’s how these controls display on a custom payment sheet billing address control zip code billing address control shipping address control applying a plaintextcontrol this control is used for displaying a title with two lines of text or a single line of text without a title on the payment sheet when allocating this control, a controlid is needed the merchant app sets both the title, as applicable, and the text diagrammed below is the flow between your merchant app and samsung pay plaintextcontrol flow the merchant app code invoking this class would look something like the following fun makeplaintextcontrol plaintextcontrol { val plaintextcontrol = plaintextcontrol "exampleplaintextcontrolid" plaintextcontrol settext "plain text [example]", "this is example of plaintextcontrol" return plaintextcontrol } and this is how it displays on the custom payment sheet applying an amountboxcontrol amountboxcontrol is used for displaying purchase amount information on the payment sheet it requires a controlid and a currencycode, and consists of item s and amounttotal, defined as follows and diagrammed on the next page item – consists of id, title, price, and extraprice if there is an extraprice in amountboxcontrol, its text is displayed on the payment sheet even though there is an actual numerical price value if there is no extraprice, then currencycode with the price value is displayed amounttotal – consists of price and displayoption the displayoption allows predefined strings only your merchant app can set the text to “estimated amount”, “amount pending”, “pending”, “free”, and so forth the ui format for the string is different for each option note the setamounttotal api may accept strings that are not predefined as an argument, but it generates an invalid parameter condition or returns an error code in such cases for details, see the javadoc samsung pay sdk-api reference, available in the documentation folder of your downloaded sdk package here’s a coding example to demonstrate the use of amountboxcontrol in a payment sheet fun makeamountcontrol amountboxcontrol { val amountboxcontrol = amountboxcontrol amount_control_id, "usd" amountboxcontrol additem product_item_id, "item", 1000 0, "" amountboxcontrol additem product_tax_id, "tax", 50 0, "" amountboxcontrol additem product_shipping_id, "shipping", 10 0, "" amountboxcontrol setamounttotal 1060 0, amountconstants format_total_price_only amountboxcontrol additem 3, product_fuel_id, "fuel", 0 0, "pending" return amountboxcontrol } the merchant app can also add new items using the 'additem' method of 'amountcontrolbox' during callback important your merchant app needs to call the updatevalue item_id method of amountboxcontrol to update each amount item then call customsheet updatecontrol to make the changes take effect in customsheet eventually, paymentmanager updatesheet 'customsheet' must be called to let samsung pay know that no further action is pending in the merchant app when the custom sheet is updated, the merchant can add new items to amountboxcontrol for example, if the user selects a specific card in the payment sheet which the merchant offers, a discount item can be added via the updatesheet // example for adding new item while updating values val amount = sheet getsheetcontroll "id_amount" amount updatevalue "itemid", 900 0 amount updatevalue "taxid", 50 0 amount updatevalue "shippingid", 10 0 amount updatevalue "fuelid", 0 0 // add “discount” item amount additem 4, "discountid", "discount", -60 0, "" amount setamounttotal 1000 0, amountconstants format_total_price_only sheet updatecontrol amount // call updatesheet with amountboxcontrol; mandatory try { paymentmanager updatesheet sheet } catch e illegalstateexception { e printstacktrace } catch e nullpointerexception { e printstacktrace } applying the spinnercontrol this control is used for displaying spinner options on a payment sheet when creating the control, controlid, title, and sheetitemtype are needed to distinguish between the types of spinner to be displayed your merchant app sets the following properties with spinnercontrol title – the merchant-defined spinner title to appear the payment sheet sheetitemtype – provides various types of spinner a shipping_method_spinner and an installment_spinner are the two types of spinner available as of api level 1 6 note shipping_method_spinner can be used when the shipping address comes from the samsung wallet app; i e , when the customsheetpaymentinfo addressinpaymentsheet option is set to need_billing_and_shipping or need_ shipping_spay when the shipping address is provided by the merchant app send_shipping or need_billing_ send_shipping , it is not changeable in the payment sheet the shipping fee if applied must be pre-calculated on the merchant app side here’s an example of constructing a spinnercontrol within your merchant app // construct spinnercontrol for shipping method val spinnercontrol = spinnercontrol shippingmethod_spinner_id, "shipping method ", sheetitemtype shipping_method_spinner // let the user can select one shipping method option on the payment sheet spinnercontrol additem "shipping_method_1", getstring android r string standard_shipping_free spinnercontrol additem "shipping_method_2", getstring android r string twoday_shipping spinnercontrol additem "shipping_method_3", getstring android r string oneday_shipping spinnercontrol selecteditemid = "shipping_method_1" // set default option // listen for sheetcontrol events spinnercontrol setsheetupdatedlistener sheetupdatedlistener { updatedcontrolid, customsheet -> val amountboxcontrol = customsheet getsheetcontrol amount_control_id as amountboxcontrol val spinnercontrol = customsheet getsheetcontrol updatedcontrolid as spinnercontrol when spinnercontrol selecteditemid { "shipping_method_1" -> amountboxcontrol updatevalue product_shipping_id, 10 0 "shipping_method_2" -> amountboxcontrol updatevalue product_shipping_id, 10 + 0 1 "shipping_method_3" -> amountboxcontrol updatevalue product_shipping_id, 10 + 0 2 else -> amountboxcontrol updatevalue product_shipping_id, 10 0 } amountboxcontrol setamounttotal 1000 + amountboxcontrol getvalue product_shipping_id , amountconstants format_total_price_only customsheet updatecontrol amountboxcontrol // call updatesheet with amountboxcontrol; mandatory try { paymentmanager updatesheet customsheet } catch e illegalstateexception { e printstacktrace } catch e nullpointerexception { e printstacktrace } } // construct spinnercontrol for installment plan val spinnercontrol = spinnercontrol installment_spinner_id, "installment", sheetitemtype installment_spinner spinnercontrol additem "installment_1", "1 month without interest" spinnercontrol additem "installment_2", "2 months with 2% monthly interest" spinnercontrol additem "installment_3", "3 months with 2 2% monthly interest" spinnercontrol selecteditemid = "installment_1" // set default option // listen for sheetcontrol events spinnercontrol setsheetupdatedlistener sheetupdatedlistener { updatedcontrolid, customsheet -> val amountboxcontrol amountboxcontrol = customsheet getsheetcontrol amount_control_id as amountboxcontrol val spinnercontrol = customsheet getsheetcontrol updatedcontrolid as spinnercontrol val totalinterest = 0 0 when spinnercontrol selecteditemid { "installment1" -> amountboxcontrol updatevalue product_total_interest_id, totalinterest "installment2" -> // calculate total interest again and updatevalue amountboxcontrol updatevalue product_total_interest_id, totalinterest "installment3" -> // calculate total interest again and updatevalue amountboxcontrol updatevalue product_total_interest_id, totalinterest else -> amountboxcontrol updatevalue product_total_interest_id, totalinterest } amountboxcontrol setamounttotal 1000 + amountboxcontrol getvalue product_total_interest_id , amountconstants format_total_price_only customsheet updatecontrol amountboxcontrol // call updatesheet with amountboxcontrol; mandatory try { paymentmanager updatesheet customsheet } catch e illegalstateexception { e printstacktrace } catch e nullpointerexception { e printstacktrace } } update sheet with custom error message to display a custom error message on the payment sheet, use updatesheet with customerrormessage fun updatesheet sheet customsheet, errorcode int, customerrormessage string this api method is an extended version of the existing updatesheet sheet method which gives the merchant the ability to display a custom error message in the payment sheet’s authentication area it can be used to inform the user of any foreseen error scenarios encountered // update sheet with custom_messsage error code paymentmanager updatesheet customsheet, paymentmanager custom_message,"phone number entered is not valid please change your phone number " sample issuer app the samsung pay sdk also provides a sample issuer app to showcase samsung pay sdk features issuer app can add card to samsung wallet by selecting specific token service provider tsp from the dropdown menu to add cobadge card you need to select primary and secondary token service providers tsp from the dropdown menus for more information, refer to the samsung pay sdk api reference and sample code 3 1 24 api references
announcement mobile
blogthe galaxy store developer api has launched! providing programmatic access to key functions of seller portal, the galaxy store developer api lets you manage your apps and in-app items or check app performance, without having to use the seller portal ui. the galaxy store developer api contains a set of server-to-server apis which provides access to different areas of seller portal: content publish api: view, modify, submit, and change the status of apps registered in galaxy store seller portal iap publish api: view, register, modify, and remove samsung in-app purchase (iap) items gss (galaxy store statistics) api: view statistics about apps registered in galaxy store content publish api use the content publish api to manage your apps registered in seller portal to: view a list of all of your registered apps view information about a single registered app, such as the title, status, description, binary information, and more modify app information, including images, icons, and binaries submit an app for review (an app must be reviewed before being offered for sale in galaxy store) change the status of a registered app to for_sale, suspended, or terminated upload files required when submitting or updating an app see content publish api for more information. iap publish api use the iap publish api to manage your in-app items of your registered apps in seller portal to: view information about in-app items for all of your registered apps view in-app item information for a single registered app, such as the title, status, description, price, and more register an in-app item modify an in-app item remove an in-app item see iap publish api for more information. gss api use the gss api to view statistics about your registered apps in seller portal to: view statistics for all of your registered apps, such as new downloads, downloads by devices, sales, and item sales view statistics about a single registered app, such as new downloads, sales, item purchases, average rating, ratings volume, item sales, item buyers, new item buyers, and arppu (average revenue per paying user) see gss metric api for more information about viewing statistics. get started are you ready to start using the galaxy store developer api? learn more about its requirements by going to the seller portal notice or galaxy store developer api. each api also includes examples showing usage and expected results.
Learn Developers Podcast
docseason 1, episode 1 previous episode | episode index | next episode this is a transcript of one episode of the samsung developers podcast, hosted by and produced by tony morelan a listing of all podcast transcripts can be found here host tony morelan senior developer evangelist, samsung developers instagram - twitter - linkedin guest jong woo samsung game services in this episode of pow, i interview jong woo, vice president of games services for samsung electronics in the u s jong’s got a great story not just what he is doing here at samsung related to the gaming industry, but his time before arriving at samsung where he helped take a little game offered on facebook to become one of the successful mobile games of all time, candy crush saga listen download this episode topics covered building games for galaxy store revenue sharing and monetization driving engagement with samsung game launcher gaming culture, past and present helping businesses grow with samsung next android developers transcript note transcripts are provided by an automated service and reviewed by the samsung developers web team inaccuracies from the transcription process do occur, so please refer to the audio if you are in doubt about the transcript tony morelan 00 02 hey, i'm tony morelan and this is pow! podcast of wisdom from the samsung developer program, where we talk about the latest tech new trends and give insight into all of the opportunities available for developers looking to create for samsung on today's show, i interviewed jong woo, vice president of game services for samsung electronics in the us, jong's got a great story, not just what he's doing here at samsung related to the gaming industry, but his time before arriving at samsung, where he helped take a little game offered on facebook to become one of the most successful mobile games of all time, candy crush saga so i'm going to start off with a real basic question who is jong woo? jong woo 00 47 i'm one of those lucky guys i'd say that gets to do professionally what i'm also very passionate about, personally, and that's gaming i am an avid gamer i love playing games all sorts of games from board games to console and pc games so you know, i've actually had the opportunity to work in the gaming industry for the past 15 plus years or so so most recently, i headed up business development and partnerships for king digital entertainment and i was actually kings first us based hire and they moved me from new york to california, back in 2011 and at that time, king was a web-based sort of casual game developer and they were looking to make the pivot into social and eventually mobile so i opened up their san francisco office and helped that helped the company pivot through from the web based into facebook initially, and then into mobile and it was a pretty fun and crazy time getting to bring candy crush saga to market launch that game and be a part of that games, explosive growth tony morelan 02 04 how many years were you at king? jong woo 02 06 so i was at king for almost three years and after that three-year period, i moved to head up business development and marketing for a game publisher called machine zone and at that time, machine zone had just launched a game called game of war and, you know, i watched that game climb the top grossing charts very quickly and this was at a time when, you know, people and pundits in the industry, were saying that, you know, mobile gamers in the west like in the united states, they said they will never gravitate towards hardcore mmo rpg games, right? if you looked at the top grossing charts on mobile during that time, it was casual games and social casino games, predominantly, and you know, everyone once said that these were these hardcore genres of gaming they were for, you know, the asian markets like the korea, china and japan but he was game of war sort of, you know, at least proving the look like they were proving the pundits wrong and so i had an opportunity to meet with the ceo of machines zone, got to understand, you know, what the company was about and, you know, made the determination for myself that this wasn't necessarily an exception to the rule but this was sort of a trend, a sort of a trend that was happening in the mobile gaming space and so i made the move from king to machine zone and yeah, got to really see firsthand what live operations really means for those gaming as a service, right, this type of live operations that typically you would see for sort of pc large pc mmo rpg games you were starting to see that sort of live operations machine being replicated on mobile and driving tremendous value and so you know, that's sort of, i was able to sort of witness sort of both ends of sort of the mobile gaming genre spectrum from sort of casual puzzle games, to really hardcore, massively multiplayer synchronous rpg games tony morelan 04 24 so we understand that, after those years working for two very influential gaming companies, that you then got out of the gaming space and actually got into the charitable space jong woo 04 37 that's right the charitable project was sort of a passion project of mine and about around 2017 you know, i came to the realization that the mobile gaming landscape was changing, and not necessarily changing for the better, right? i think less than less people were organically going into the app stores right like, we don't go to the app store's just to go in and see what's new that week anymore right? that was a, a large, a very big phenomenon when, you know smart form smartphone adoption was still sort of, you know, hockey sticking, right? you got a new iphone or a new android device, and you wanted to go into the app stores and see what cool new apps were there but nowadays, you know, even when we upgrade our smartphones, we just back up and, and restore, right, and we're not going into these app stores anymore and we have sort of the seven or eight apps that we have just sort of so much integrated into our life, that we're not really looking to expand beyond those services or games, right and because of that, you know, you start to see discoverability die with regards to games you know, the viral hooks that helped games like candy crush saga scale massively they were being replaced by you know, some ad tech and this ad mobile advertising ecosystem and so in order for you to critically build a massive players, you needed a massive war chest of marketing funds, and the most successful games in mobile gaming were not necessarily the most innovative or even the most fun, right? they were the ones that had, you know, a marketing plan and a marketing budget to go and execute scale and so you got this weird split in the industry, you got hyper casual, which was sort of a genre that got introduced in the midst of sort of this landscape shift and so you're talking about low risk, low cost games really designed to retain users for minutes and not days or months anymore and you know, it was quick revenue you, you got somebody to play a game for 10 minutes, and in that 10 minutes, you showed them 20 ads, and then if they deleted your app, that's okay there was always another one waiting in the wings and then the other side of that spectrum, you got, you know, games that were getting super aggressive with monetization practices where, you know, free to play started to feel more like play, pay to win you know, and, you know, i can understand why these game publishers are adopting these more aggressive monetization practices, because they had to keep up with the rising costs of the marketing, you know, in order to sort of continue scaling and so that was the time when i decided maybe it was a time for a change for me and i left the gaming industry and started a charitable giving app and right around the time i was adopting this idea, fintech was booming there were companies and mobile applications trying to help people do everything related to their finances, right like from saving to investing, budgeting, like you got venmo and peer to peer payments, but i didn't see anyone really thinking about utilizing the fintech infrastructure and the tools to help people give back and you know, particularly for millennials, who are the most socially conscious generation right now, this was something that they have always said is super important to them right? when they think about what companies they want to work for, they think about sort of the social responsibility of these companies, right, they have causes that they care very passionate about and the disconnect that i saw in the marketplace was that charitable organizations had a hard time sort of marketing and soliciting funds from millennials because the truth be told, like the roi wasn't necessarily positive, right? it's much easier to continue hitting up the sort of the older generation, the 50 pluses who will attend your gallows and you know, right there sort of like annual giving checks to you, right so that's, that's the way tribal organizations are marketing and so those sort of this disconnect that i was hoping to bridge with, with this initiative, that i that i had started post machines tony morelan 09 03 so from there, though you then decide to get back into gaming that's right it's about that time that i understand someone from samsung then reached out to you to try and get you to come join join the folks over here is that correct? jong woo 09 17 that's right so like samsung had reached out probably, you know, five, six years ago, when i was still starting out at machines or, you know, they were, they've been looking to build out a gaming business pretty early on, i think and at that time, i had always told the hr recruiter person from samsung, no, i'm good, i'm good and most recently into that in early 2019 this person had reached back out to me right around the time of gdc, which is the game developers conference in san francisco, asking if i would meet him for a cup of coffee and so i went and met with him and he told me about what samsung was thinking about with regards to gaming and building a services business around gaming and so, you know, in, i agreed at that time to continue the discussion and this was sort of in now this landscape where, you know, games like fortnight had launched right, and fortnight was sort of this new the embodiment of this new genre of game, right, that wasn't monetizing from a pay to win standpoint anymore, right? like, there is nothing inside a game like fortnight that you can pay for that helps you play that game better, right? it was purely sort of cosmetics inside that game and then, you know, fortnight crafted a partnership or epic games that developed the publisher of fortnight crafted a partnership with samsung and samsung's galaxy store was sort of the exclusive android app store distributing fortnight on mobile right and so this made me think maybe there's an opportunity here for me to come in and help samsung really grow a gaming ecosystem because samsung has tried and there has been a lot of stops and starts here but i think, you know, the i felt like the timing for this was not right, where samsung could really become a meaningful player in the gaming space tony morelan 11 37 so, as the vp of game services for samsung, tell me exactly what does that cover for samsung? jong woo 11 44 sure game services covers the galaxy store and game launcher within our mobile device ecosystem tony morelan 11 52 so tell me why is it beneficial for developers to build for galaxy store when really, they could just have their apps available? on the google play store? jong woo 12 02 yeah, that's a great question and the question that, you know, we get from all the developers that we talk to right and, you know, we certainly don't believe that it's necessarily an either-or situation, right? you know, but what we want to do is we want to provide developers a story ecosystem that allows for better discoverability, right? we want to sort of create an ecosystem that is curated for the best in class games the google play store is generally bloated with a lot of content and for an individual developer, particularly a game developer to get noticed within this ecosystem is nearly impossible right? and, you know, like we mentioned, people just aren't going in looking for new content on their own anyways, like most of that traffic, going into the google play store, is being driven through paid media from you know, facebook ads or what have you, right so we wanted to build a thriving ecosystem inside the galaxy store that isn't bloated with content that is really curated for the best in class the galaxy store is one part of the samsung mobile ecosystem, right that it also includes things like samsung pay and samsung daily there is a, there's a whole suite of owned and operated services within your galaxy device that has a lot of users, right and a lot of engaged, people are opting in into these services on a regular basis and so, you know, our ecosystem is really designed very well to drive discoverability of new content within our ecosystem and we sort of share that inventory across all our owned and operated properties and so this really strong value proposition that i think the value the galaxy store brings to game publishers is that we are able to augment the marketing initiatives that they are doing with some of these discoverability mechanisms and channels and because we also work with fewer game developers, because it is sort of a curated game store we get to build relationships with these developers and work closely with them to craft promotions and marketing initiatives on a regular cadence right? we're and we're, as part of that we're able to also activate a myriad of other businesses within the samsung ecosystem, from samsung members and rewards, as well as our device marketing initiatives to really help drive game awareness, engagement and monetization for our game publishing partners tony morelan 14 35 and i'm sure developers want to hear about the revenue sharing can you share a little bit about the revenue share model and why it's unique to samsung? jong woo 14 42 yeah, so i mean, i think, you know, obviously, the revenue share for you know, app stores generally you know, we talked about 7030 now, i think tim sweeney from epic games has very publicly said that, you know, the revenue shares for these app stores should not be 7030 and i think the entire sort of development developer ecosystem has responded, well, initially, it was wait can we really say that? and then sort of quickly followed by? yeah, i think that's true right and i think, you know, samsung has is in a position where we can be flexible with our revenue shares, we can work closely with our publishing partners to determine the revenue shares that will allow them to really thrive within our ecosystem, right and build businesses that are sustainable within our store platform so there is a want on our side to work closely with our game publishing partners to determine what the right revenue share is going to be, you know, given their marketing activities and given the engagement of our audience to those games that's going to allow both the platform as well as the game and the publishers to really grow and thrive tony morelan 16 07 so you had mentioned that game services also covers game launcher? can you explain what is game launcher? and why is it? why is it so special? sure jong woo 16 15 so game launcher was initially designed to help mobile gamers aggregate their game icons into like a single location so it's sort of like this really nice game folder, if you will and the utility of that was that it really decluttered your home screen and so you can imagine sort of the level of engagement with this app, right? the average game launcher, user opens game launcher more than 80 times a month and so that's like, nearly three times a day, right? so definitely high engagement and what's really sort of special about game launcher is that this is now a property that people are opting into or sort of launching on their own voluntarily, multiple times a day so we've got this really deep engagement here but that engagement right now, or the utility of that engagement really centers around sort of getting access to the games you want to play and so we want to expand the utility of game launcher to drive deeper engagement within this ecosystem around gaming right? and we believe that there is more than just playing games that you know, avid gamers do, right? they are engaging, and in communities, they are watching other gamers play via livestream they are checking out youtube videos to get tips and tricks they are, you know, reading about games, through a myriad of different publications and content sources they are, you know, on reddit communities, they are on discord like there is this whole ecosystem of games outside of the game itself, right and so you know, what, we're looking to do with game launcher and truly make it special and unique is because start to become a hub for all of that gaming activity outside of actually playing the game tony morelan 18 12 i want to kind of circle back to something you'd mentioned earlier and you were talking about how monetization you know, there's some drawbacks to that tell me about like, creativity wise, do you see that it's limiting people's, you know, developers ability to create, you know, unique games? jong woo 18 26 i do at the end of the day, you know, when you are, you know, starting out as a game developer and build, you know, you make a decision to build a game company, right? you are looking to find that balance between doing something creative and innovative right as and also generating revenue from it to sustain your business but i think when costs of scaling and marketing your game are driven by the market from you know, real time bidding and programmatic, sort of ecosystems on the mobile advertising side and then the revenue shares remain at 7030 there's sort of a squeezing of margins, that's tends to happen, right? in order to maximize that equation, or optimize that equation, you need to start getting more aggressive with monetization right? and when you start getting aggressive with monetization, you start to lose i think, the creativity inside your game when you have to start focusing on how do i ensure that i can scale up this game and really focus on the revenue you realize you need to take less risk, right building a game they say is sort of a hit driven business, you know, very much like hollywood studios and moviemaking and to a certain extent, i think that is true and so you know, when you are in a situation where the costs of marketing your game are so high and you know what kind of critical mass you need to really scale your game from a player's perspective, taking a lot of risks in terms of pushing the envelope for innovation, it becomes prohibitively expensive, right? because there is a likelihood that the game might completely flop and so that's why, you know, our hope with the galaxy store and the samsung gaming ecosystem is that we can provide a value proposition back to the, to the developers and whether that be in sort of, you know, better marketing, through our discoverability channels that is designed to help augment whatever marketing you know, these publishers are trying to do, as well as you know, potentially better revenue share on the back end we can we can start to unshackle the shackles if you will, of sort of this this business machine and allow people sort of the flexibility and the breathing room to be more creative with their game design, and their gameplay tony morelan 21 03 so you had talked a little bit about gaming culture, and you know, knowing that you've been in this industry for so many years, i'm sure you've seen that culture change and evolve tell me a bit about like, what was the culture when gaming first started, you know, started coming onto the scene here, and then how it's evolving and where it's going jong woo 21 20 yeah it's been a really interesting shift from sort of this underground basement, sort of nerdy boys only kind of sort of culture phenomenon, right where there was also sort of a stigma around gaming being sort of like that good for you you know, like, nothing beneficial really comes from it you know, some people have even said, you know, i've tried to try to tie gaming into sort of, like, you know, real world phenomenons like gun violence or whatever it is, right, like, people have tried to put gaming and sort of there's negative light and it's now become sort of this aspirational lifestyle and oh, and it's expanding beyond the actual games themselves, right? like you are now starting to see personalities, people, you know, almost celebrities coming from sort of this gaming world and you're seeing things like esports and live streaming they they've moved from this sort of niche underground thing into sort of full mainstream pop culture legitimacy, right? you're seeing content creators from twitch or youtube are esports athletes becoming these celebrities with these massive fan bases who are extending beyond just you know, their gameplay it's going into you know, instagram and it's going into twitter, and twitch and youtube and these people are becoming full blown influencers and celebrities right a lot of them even have hollywood agents, right? who are negotiating, you know, variety of different deals on their behalf so with this, you're starting to now see sort of fashion and lifestyle also being heavily influenced by this gaming culture and a massive group of young gen z gamers and even non-gamers who are aspiring to this lifestyle right and i kind of equated to the skateboarding culture where skateboarding used to be very underground, right? and very niche and then it sort of translates now into this mainstream cultural phenomenon where it's very sort of equivalent to it like street wear, where people wear vans, and you know, wait in line for hours for you know, drops from supreme and they've never owned a skateboard in their lives it's fair right, so yeah, so you know, i think it's and i think the social distancing sort of environment that we are in now is only sort of like accelerating this change, right, like gaming, and socially hanging out and sort of like an online environment is, is sort of feeding more into this culture and, and breeding more legitimacy into it and it's sort of, frankly, it's really exciting to see tony morelan 24 26 yeah, definitely i mean, my son's a big-time fortnight player, and some of his best friends he's never met i mean, they live in hawaii, canada, germany i mean, it is really neat that he's got this this social group that really spans the globe, that you know, truly are some of his best friends jong woo 24 44 that's right and i think you know, and the same as it has been for me as well in the past, right, like there are people like when you play a game every day, you engage with the same people, whether they're in your guild or your clan or you know, your squad you engage with these people that you've met actually inside the game on a regular basis right on nearly daily and oftentimes spending hours with them, you probably spend more time with these friends that you've never met in real life before, then you do your actual friends right? and so yeah, it builds this sort of, like new network, as well as this sort of new definition of i think what friends can be and it's really cool i think that they all get to socially hang out inside of these games, right? like, you could be playing fortnight with your squad and it's not necessarily about you know, getting that victory royale and winning, right? it's just sort of about doing this really fun activity together, chatting and hanging out while you do it and so i think i love the idea of games becoming now this sort of like social platform for hanging out tony morelan 25 52 so tell me in what way is samsung moving beyond the galaxy store and game launcher on mobile devices? jong woo 25 57 yeah but there are a lot of initiatives from the services standpoint around gaming beyond the galaxy store, but it's still relatively early days right now, for example, we are thinking about, like, what is the leanback gaming content look like, given that there's so much viewership on twitch, you know, particularly with sort of social distancing and covid these days now, most of gaming tends to be lean in where you're sort of like engaging with this content interactively but you know, twitch is now demonstrating that there is this massive and captive audience who is willing to sort of lean back and just watch other people play games and so what does that necessarily mean? and how does that translate into, let's say, tv screens? you know, does that mean that, you know, people are willing to do this in their living room, as opposed to sort of like on you know, laptop screens and i think we also sort of think about how samsung can stay ahead of the curve with regards to upcoming gaming trends that we're starting to see, right and, you know, i personally am trying to figure out how samsung can lead the charge in things like cloud gaming, or vr and ar, right these, these technologies and these platforms that are around and people have talked about some for many, many years, but haven't really gotten into sort of like mass scale yet so you know, we're definitely thinking about a lot of these things right now tony morelan 27 34 so i want to talk a little bit about samsung next so samsung, next is a division here at samsung that helps build and grow software and services from entrepreneurs and organizations that complement samsung's hardware tell me how they're getting involved with game services jong woo 27 49 so we work closely with samsung next so samsung, as you mentioned, is sort of that early stage venture arm of samsung and part of their remit is to invest and build sort of early and growth stage startups that can complement samsung's existing business initiatives or actually even jumpstart completely new strategic initiatives that, you know, we, as a company decide to expand into and i think sort of given the strategic priority that gaming, from a service standpoint, has within the entire organization of samsung, and it's not just the mobile, right you know, the visual display division, the pc divisions, you know, the r&d and hardware division, there's a lot of different potential stakeholders are who are very interested in and gaming, what gaming can look like for samsung and so, you know, we engaged really closely with samsung next, to figure out what kind of companies are doing really innovative things in the gaming space that might help us jumpstart some of these gaming initiatives, particularly around you know, some of the things that i just mentioned before cloud gaming ar vr ar, you know, as well as you know, complementing existing businesses like the galaxy store, you know, we, we, i try to work with samsung next to identify those needs that we might have as we think about the strategy of go to market for some of these various initiatives and then samsung next also helps us to better understand sort of the landscape of early stage companies and the really cool, innovative things that they're working on tony morelan 29 28 so what advice do you have for gaming companies looking to build a relationship with samson? jong woo 29 32 yeah, you know, i would say, definitely reach out to us we do want to know what you're building and the more innovative the better right the galaxy store and the gaming ecosystem that we are striving to build we are building it because we want to foster innovation, right? and, and so you know, we want games that can push the envelope of gaming on mobile devices can be we want companies to be thinking about you unique technologies, you know, housed inside of our devices like 5g and edge computing, and what can that enable from a gameplay standpoint? and so, you know, we love seeing what the development community comes up with and so, you know, definitely, i would say, reach out to us and you can reach out to us through our website, which is developer samsung com tony morelan 30 22 excellent well, hey, jong, i want to thank you very much for taking the time to join me on this podcast it was a lot of fun to chat and get to know you yeah thanks a lot outro 30 29 looking to start creating for samsung, download the latest tools to code your next app, or get software for designing apps without coding at all sell your apps to the world on the samsung galaxy store check out developer samsung com today and start your journey with samsung the pow! podcast is brought to you by the samsung developer program and produced by tony morelan
success story uiux, design, mobile, marketplace
blogrecognized for “best creative app” in our best of galaxy store awards 2019 is concepts by tophatch. tophatch empowers creative people with design tools that simplify the creative process with smarter, more intuitive technology. david brittain, co-founder and ceo of tophatch, shares how concepts got started, what it takes to maintain your app’s performance, and tips on how indie designers can establish a successful app development business. tell us about concepts. concepts is an infinite creative workspace for visual thinkers, designers and illustrators. concepts is used by designers at companies like unity, illumination entertainment, hp, and disney globally to create and share everything from visual notes and storyboards to architectural layouts and product designs., we built concepts from the ground up for touch and stylus-based devices. when tablets first began to come out, we saw other apps were transplanting awkward desktop mechanics to mobile interfaces instead of writing for the new ecosystem. we saw that design on a mobile platform could be a lot more intuitive and fun and knew that much more was possible. we've been working on our vision for 7 years now, and our software, stylus, and device performance are so fluid that our designers prefer concepts over paper. how is the app used? concepts is a powerful creative tool that allows you to explore and communicate ideas with a quick, natural workflow. the app allows you to sketch, edit, and communicate your ideas with liquid, vector-based brushes, and precision tools. the infinite canvas lets you flow with your ideas as far as they’ll go, with fluid pens and brushes that come in designer copic colors. the app's customizable layout, easy-to-use layers, drag+drop imports, and precision grids help you sketch and design effortlessly. everything you draw is an editable vector that can be updated and moved around the canvas, saving you valuable work time.. concepts is used by creative professionals for note taking, mind mapping, drawing, storyboarding, graphic design, product iteration, interior design and architectural planning. what is concepts' development methodology? our development methodology is highly iterative. we take each feature through a complete design cycle. we focus on building one feature at a time, iterate until it’s clean and well developed, then ship a beta as quickly as we can to hear from our users. they are a fantastic group who give us insightful feedback, which we incorporate before releasing the final product. this means we're delivering releases every week on one platform or another. tell us about the tophatch team behind concepts. our company has been distributed globally from the very start - often called remote, but it works well for us. ben and i started the company and worked together on concepts for a year before meeting in-person. we embrace the benefits of a distributed team and avoid the downsides where we can. that means trusting each team member to get their work done and embracing asynchronous workflows. people in the team work the hours and days that work best for them and plan and schedule their work to minimize blocking dependencies on other people. was concepts designed for mobile phones or tablets? is there a difference? concepts is designed for tablet and stylus first, as the larger screen gives users the most space to sketch and think. when we brought it to android, we were likely the first major app built for chrome os first - it has a large screen, stylus, and resizable windows we wanted to make sure we supported well. we then made it work for phones, although our design did account for this up-front. it’s a challenge to offer the same tools and functionality on really small screens. ultimately, we have to bias our decisions to the devices our paying users care about the most, which are the ones that give them the most space to work. what’s your approach to user experience and design principles in app development? our general philosophy is that a good design interface allows creators to focus on what they want to get done. concepts is a creative app that helps you to work efficiently, so tools are simple, customizable, and only where you need them. if you forget you're using the app as you're "in the zone”, then we have achieved our goal. in concrete terms, this means minimizing the steps in a workflow, avoiding pop-ups and notifications that block progress, and allowing the user to customize layout and tools so the features they need are close at hand (or tap). another key principle for us is taking a humble position - we don't assume we have the right answers. we listen closely to what our customers want, we prototype features, get feedback, and then adapt. sometimes this is painful as it means starting again from scratch on a feature we've put weeks of effort into, but in the long run, it's the right choice. how have you maintained your app’s performance since launch? we focus on the long-term success and health of concepts. we are constantly looking at all aspects of the app's performance. how are we doing with downloads? how well do users convert to becoming paying users? how much time do they spend using the app? we then have to pick an area of focus and look at how to improve that area. roughly speaking, we tend to spend 3-6 months focusing on one area at a time, as we have found this level of commitment is needed to get results. it's often hard to move the needle unless you commit to a few cycles of changes - this way you can measure what you try, see the results, and adapt your approach. what advice do you have for indie developers and designers attempting to develop a successful app business? focus. that's the biggest competitive advantage you have. find your niche that the big companies are not paying attention to. build something amazing that is loved by your group of customers. and if your business model requires you making money, make sure you are asking for money from those customers from the very beginning. it's a very clear metric as to whether you are building something that meets a customer's needs. once you have conquered the niche, expand from there. what is next for concepts? our big focus over the coming months is cross-platform workflows. our goal is to make it easy to share and collaborate on content across android, windows, and ios. how has samsung helped your business? the number one way samsung helps is by producing so many amazing products that support a stylus. nine out of the top ten devices that use concepts on android are made by samsung! a high performance tablet that supports palm rejection and a stylus with pressure and tilt response is key to concepts being a great experience. with the best of galaxy store awards 2020 selections approaching mid-year, what tips do you have to stand out from the crowd? it's probably not what they want to hear, but i'd recommend not focusing on awards. focus on making your customers happy :) . we want to thank david for talking with us about tophatch’s award winning design tools, how concepts was developed and the importance of monitoring app performance and tips for indie developers interested in building a successful app business. if you’re on a samsung galaxy device, you can check out their app. follow us on twitter at @samsung_dev for more developer interviews as well as tips for building games, apps, and more for the galaxy store. find out more about our best of galaxy store awards.
Samsung Developers
Develop Smart TV
docsamsung checkout this topic describes how you can develop a billing system for your tizen net tv application, to allow users to make purchases within your application related info tizen tv service billing namespace samsung checkout dpi portal guide samsung checkout for web applications samsung checkout dpi portal samples samsung checkout net application samsung checkout web application samsung checkout offers an optimized purchase experience for your users on samsung tvs the user can quickly and safely register a payment method and make frictionless payments repeatedly within the tv environment in addition, samsung checkout provides a comprehensive global monetization platform, which allows you to integrate various business models and promotional campaigns into your services the tv-optimized purchase experience provides the user a quick and simple 3-step checkout, once a payment method is registered the checkout requires only number-centric information to be entered, making it easy to use with a tv remote control users can register their payment method directly on the tv or through a mobile phone to use samsung checkout within your net application, the user needs tv samsung smart tv, 2018 or later model payment method credit or debit card, paypal, or samsung pay in korea security tizen secureime, 2nd-screen card registration mobile or pc account samsung account for sharing account and payment information with galaxy phones importanta samsung account is mandatory for using samsung checkout samsung checkout assumes that the user is logged in to samsung account at all times you can manage your product application and product sales through the dpi digital product inventory and process the actual purchase through samsung checkout importantall application data that is saved locally on a tv is deleted when the application is deleted from that tv if the user's purchase history is saved only in the tv storage and not remotely, and the user deletes and reinstalls the application, all application settings and content are removed, including purchased content if your application saves purchase information in the tv storage only, inform the user that uninstalling the application deletes their purchased content the dpi portal provides functions, such as "purchase history unapply" and "refund", to help you address situations when your customer inadvertently deletes application data before proceeding with the unapply and refund processes, you must contact a samsung representative by going to "samsung apps tv seller office > support" and creating a "1 1 q&a" support ticket samsung checkout purchase process when a user wants to purchase a product on your application, samsung checkout provides a common purchase gui, which identifies the user and confirms first the purchase and then the purchase completion after the user completes the purchase, samsung checkout returns the purchase result to your application product, purchase, and payment management the following figure illustrates how you can use samsung checkout and the information in the dpi server to manage in-app purchases and payments in your application request the purchase list retrieve the customer purchase list using a purchase list api request respond to the purchase list content if there are products in the purchase list which are not applied, verify the purchase and apply the products if there are products in the purchase list which have been refunded, retrieve the products send the application result to the server request the product list request the product information list using a products list api request the user purchases the product when the user selects “buy” in the application, provide a common purchase gui through samsung checkout the user can enter a voucher or coupon code to modify the purchase price the user confirms the purchase by entering a pin on the common purchase gui, or biometric information on samsung pay samsung checkout delivers the purchase result to your application request the purchase list update the customer purchase list verify the purchase verify the purchase using a verify purchase api request apply the product apply the product using an apply product api request, and send the application result to the server dpi service environment the dpi service provides information on buyable products in your application and the purchase history of your customers it serves the appropriate product information for the user's country, provides user-specific purchase information, and manages applying the product after purchase the dpi service also assures purchase integrity and provides security through preventing fraudulent access the dpi service environment is divided into 2 separate zones operating zone prd for live production applications when you submit your application for publishing, set it to use the operating zone notewhen a refund of a real payment is made in the operating zone, a charge is applied on you consequently, do not use the operating zone for testing staging zone dev for development and testing the purpose of the staging zone is to facilitate the billing linkage development this environment minimizes the exceptional country-specific cases that can happen when real payments are made in the operating zone the staging zone also includes a dummy payment testing option, where the user does not need to register any payment method, but can still use all the dpi services as in real payment transactions dummy payment actual payment table 1 dummy and actual payment screens the following figure illustrates the dpi service environments implementation information for each dpi service environment is described in the following table service environment details operating zone environment web portal https //dpi samsungcheckout com/ example billingrequestservertype servertype = billingrequestservertype prd; string securitykey = "*****"; // your security key issued by dpi portal // can be different from sandbox's ssecurity key staging zone environment web portal https //sbox-dpi samsungcheckout com/ example billingrequestservertype servertype = billingrequestservertype dev; string securitykey = "*****"; // your security key issued by dpi portal staging zone with dummy payment environment web portal https //sbox-dpi samsungcheckout com/ example billingrequestservertype servertype = billingrequestservertype dummy; string securitykey = "*****"; // your security key issued by dpi portal table 2 dpi service environment details when you submit your application for publishing, make sure that it has been fully integrated with the billing system ensure that the application detects the service environment and sets the server type accordingly check that the product and price information in the operating zone prd matches the tested information in the staging zone dev no data is automatically shared between the zones registering a test user payment method when the user registers their credit card as a payment method in samsung checkout, they can do it through their mobile phone or computer web site by entering the authentication code when you are creating a test user for your application, pay attention to the url you use to enter your authentication code and register a payment method each url requests a different server to handle the payment operating zone prd https //www samsungcheckout com or http //www payon tv staging zone dev https //sbox samsungcheckout com or http //sbox payon tv
Develop Samsung IAP
docmanage subscription price change after your app and subscription are for sale in galaxy store, if you have a manager account with the "applications manager" authority or are the owner of the seller portal account where the app is registered, you can increase or decrease the regular subscription price the subscription price can be updated by country, for one or more countries for example, if the exchange rate for a currency changes, you can update the price of a subscription for each country that uses that currency the subscription price can be set in usd and each country’s currency topics covered in this page include how to change a subscription price subsequent price changes how to view subscription price changes how to adjust an existing subscription price change how to cancel a subscription price change how to change a subscription price for information on how to change a price for a non-subscription product, refer to management of in-app products log in to seller portal, go to the apps page, and select the app which has the subscription for which you want to update the price from the app details page, click the in app purchase tab select the subscription whose price you want to update from the subscription page, click edit select the price tab and click set new price to set the price for all countries, select the all countries checkbox, enter a new price to change the price for all countries, and click apply or, to set a new price for individual countries, select the countries and enter a new price you can also filter the countries displayed by region using the region filter buttons near the top of the page verify the countries for which you are updating the price click save to confirm that you want to update the prices if you are increasing the subscription price, select the checkbox if you want to apply the price increase to new subscribers only or unselect the checkbox if you want to apply the price increase to new subscribers and existing subscribers then, click ok click save at the bottom of the edit subscription page after you save your updates, there is a seven 7 day waiting period before the new price is applied during this 7-day waiting period, you can adjust or cancel these updates subsequent price changes after the 7-day waiting period, when the price update is applied in galaxy store, you cannot change the price of the subscription in the same country again until a specific amount of time after the pre-notification period has ended for all existing subscribers that is, the updated price must have been applied to all existing subscribers in all countries the amount of time to wait after the pre-notification period has ended for all existing subscribers is based on the length of the subscription period the end of the pre-notification period for an existing subscriber is defined in one of two ways the pre-notification period ends when the existing subscriber has acknowledged the price increase notification the existing subscriber must have consented to or rejected the price change from the consent page or, if the existing subscriber ignores the notifications they neither consent to nor reject the price increase from the consent page , the pre-notification period ends when the existing subscriber's subscription ends the following table describes the amount of time you must wait before you can update the price of a subscription again the minimum pre-notification period is listed for your convenience, but the actual wait time is likely to be longer see pre-notification period for more information subscription period minimumpre-notification period before renewal date wait time to update price again weekly 2 weeks end of 7-day waiting period + minimum pre-notification period + 7 days monthly 1 month end of 7-day waiting period + minimum pre-notification period + 1 month 3 months 2 months end of 7-day waiting period + minimum pre-notification period + 3 months 6 months 2 months end of 7-day waiting period + minimum pre-notification period + 3 months annual 2 months end of 7-day waiting period + minimum pre-notification period + 3 months if a country is not selectable, it means that the pre-notification period has not ended for all existing subscribers in that country when the pre-notification period has ended for all existing subscribers, the country can be selected for another price increase how to view subscription price changes if you need to review previous prices changes or determine the next step after making an accidental price change, you can view when a price was updated, when the price change was applied to the subscription, and the region in which the price change was made to view price change information for a subscription log in to seller portal, go to the apps page, and select the app which has the subscription for which you want to view price changes from the app details page, click the in app purchase tab select the subscription for which you want to view all price updates from the edit subscription page, click here the price change history page displays all price updates by date you can specify a date range to filter the dates that are displayed when a specific date is expanded, the countries that were updated are displayed, along with the old and new subscription price, and if consent is required you can filter this list by region and consent requirement click back to exit this page how to adjust an existing subscription price change if it has been less than seven days after you have initially updated the price of a subscription in seller portal if you have updated the price more than once, this is the first time you updated the price in seller portal , you can edit the price changes after seven days after you have initially updated a subscription in seller portal , you cannot make any additional changes to adjust an existing subscription price change log in to seller portal, go to the apps page, and select the app which has the subscription for which you want to update the price from the app details page, click the in app purchase tab select the subscription for which you want to view all price updates from the item details page, click here from the price change history page, if not already expanded, click on the date to view the list of countries whose price has been updated and for which you want to change the price updates click edit update the list and click next verify the countries for which you are updating the price if you are increasing the subscription price, select the checkbox if you want to apply the price increase to new subscribers only or unselect the checkbox if you want to apply the price increase to new subscribers and existing subscribers then, click save click save at the bottom of the item details page notethe window of time for adjusting the subscription price change is not changed if you make edits to an existing set of price changes, the window of time to be able to make adjustments is not reset for example, if there are three days left in the 7-day waiting period, after you make your adjustments, the waiting period remains at three days it does not reset to seven days how to cancel a subscription price change if it has been less than seven days after you have initially updated the subscription prices in seller portal if you have updated the price more than once, this is the first time you updated the price in seller portal , you can cancel the update after seven days after you have initially updated a subscription in seller portal , you cannot cancel the update log in to seller portal, go to the apps page, and select the app which has the subscription for which you want to cancel the updated the price from the app details page, click the in app purchase tab select the subscription for which you want to view all price updates from the item details page, click here from the price change history page, if not already expanded, click on the date to view the list of countries whose price has been updated and for which you want to cancel the price updates click cancel settings click yes to cancel this set of subscription price updates if you cancel a subscription price increase but a subscription was purchased by a new subscriber at the increased price, the new subscriber continues to pay the increased price until they cancel the subscription
Learn Developers Podcast
docseason 3, episode 3 previous episode | episode index | next episode this is a transcript of one episode of the samsung developers podcast, hosted by and produced by tony morelan a listing of all podcast transcripts can be found here host tony morelan senior developer evangelist, samsung developers instagram - twitter - linkedin guest tobias thorsen & peter holm, biodome games, galaxy store not only do we chat about their award-winning mobile game gold digger frvr, but how being acquired by a larger game publisher has allowed them to focus more on game development, while the publisher handles the marketing aspect of producing games listen download this episode topics covered biodome games studio spelunca frvr best of galaxy store awards publishing on galaxy store marketing discoverability galaxy badge generating revenue integrating iap music diversity and inclusion helpful links gold digger frvr - golddigger frvr com facebook gold train frvr - facebook gold train frvr - goldtrain frvr com biodome games - biodome games frvr - frvr com frvr careers - careers frvr com galaxy store badges - developer samsung com/galaxy-store/gsb-promotion galaxy themes - developer samsung com/galaxy-themes samsung developer program homepage - developer samsung com samsung developer program newsletter - developer samsung com/newsletter samsung developer program blog - developer samsung com/blog samsung developer program news - developer samsung com/news samsung developer program facebook - facebook com/samsungdev samsung developer program instagram - instagram com/samsung_dev samsung developer program twitter - twitter com/samsung_dev samsung developer program youtube - youtube com/samsungdevelopers samsung developer program linkedin - linkedin com/company/samsungdevelopers transcript note transcripts are provided by an automated service and reviewed by the samsung developers web team inaccuracies from the transcription process do occur, so please refer to the audio if you are in doubt about the transcript tony morelan 00 01 hey, i'm tony morelan and this is the samsung developers podcast, where we chat with innovators using samsung technologies, award winning app developers and designers, as well as insiders working on the latest samsung tools welcome to season three, episode three on today's show, i'm joined by the founders of biodome games to be a sourcing in peter home not only do we chat about their award-winning mobile game gold digger, but how being acquired by a larger game publisher has allowed them to focus more on game development, while the publisher handles the marketing aspect of producing games oh, yeah and we also chat about how their game studio is now called studio spelunka enjoy hey, i am excited for today's podcast to be interviewing, not just one, but the two founders of biodome games to be a source in and peter home hey, guys, welcome to the podcast thank you thank you so let me first start by asking who is to be as thorson? tobias thorsen 01 04 well, i'm 40 years old, i grew up in rural denmark far out west, i would describe myself as a programmer with somewhat of an artistic sense i like programming not because i'm particularly good at writing beautiful code, but because it gives a degree of control, and you get a final say in the product you're developing and i really like that tony morelan 01 28 that's great and now we also are joined by peter home tell me who is peter holm? peter holm 01 36 well, self-taught game design, usability, user experience, business, creative direction type of guy yeah, i enjoy making games tony morelan 01 47 wonderful so toby, let me get back to you what is your role at biodome games? tobias thorsen 01 53 i'm the lead programmer, and gameplay and vendor and then i'm a co-founder, tony morelan 01 58 wonderful and peter yourself, what is what exactly is your role? peter holm 02 04 aware of many hats i'm the ceo formula game design, producer, artist tony morelan 02 13 so let's talk about the history by a dump because i know that you guys were acquired by fr vr and actually recently changed your studio name to spell blanca but i understand that your history goes way back that you guys were actually friends in kindergarten so give me that full history of, of the two of you how you guys started working together, and how that led up to biodome games and eventually now spin like a studio peter holm 02 38 well, it all started around the lego bricks in kindergarten tobias thorsen 02 45 it's true, somewhat, peter holm 02 47 somewhat true, at least professional working together, but started animation studio and could make where we did 3d animation and space, spare time we started making a game and that spare time project kind of got out of hand and turned into a game that we actually released and that was 24 years ago or something? tobias thorsen 03 10 yeah, we released it in 2000 peter holm 03 14 no, no, no, we didn't the first one was in 98 it was really tobias thorsen 03 20 so long ago tony morelan 03 23 the internet was just, you know, starting out what was the process for releasing those games? tobias thorsen 03 29 well, the game was kind of an experiment it was called chases and i was just getting into game development while working at his animation studio, where peter also works i kind of pivoted back to programming, which i did a lot of when i was a teenager so i tried experimented with programming, a small game, which was at first only meant for our own enjoyment i wanted a top-down shooter that i could play in split screen with my friends so i made that, and it was quite fun and it just turned more and more advanced and like when you're young and new to project like this, it just takes it on its own life and you develop and develop and then at some point, we figured that, hey, this is a product, we are having so much fun playing it every weekend, we played it and so we figured that other people could enjoy this and so we decided to do it ourselves and back then it meant making our own cds and sending them by mail so there was quite a task, but there was really there was how game distribution was done back then wow and tony morelan 04 38 what was the platform that you guys built it on? that was tobias thorsen 04 40 windows and to my great regrets i programmed everything in visual basic because that was the language and you back then yeah, and visual basic was definitely not made for game development so i had to do all sorts of tricks to make it work and it just got more and more advanced and then at some point, we figured now it's enough and we made the cds we made 1000 cds and sold them one at a time from our website tony morelan 05 11 i know my brief experience with gaming back in the late 90s was using flash and i understand that you guys have some experience also, using flash back in those glorious days of the of the late 90s tobias thorsen 05 26 yeah, well, after, after our game chasers, we sold like 200 copies and we kind of realized we couldn't make a living from that so we had to get a real job so we started doing advertisement games and other flash games and that that was really the platform for gaming back then on the web was flash peter holm 05 49 and it kind of happened by accident that that what we did back then turned into becoming an actual game company because i think at that point, from my, my perspective, at least, making games was kind of a side gig, hobby, hobby thing but what i was desperately into was actually flesh and getting 3d animation onto the web using flash magic that was kind of the big thing back then tobias thorsen 06 17 yeah fancy ui designs and stuff like yeah, peter holm 06 21 fancy ui designs, and wow, transitions and whoa, what not? common colleague, and i found a company focusing on just that, and, and we kind of figured out along the way that hey, wait a minute, maybe we could just do some flash games and it seems like people want to buy those, and so on all of a sudden, we had a gaming company, with a ton of clients all over the world and tony morelan 06 45 that was fun and what was the name of that gaming company? peter holm 06 48 there was a tunic, like titanic but cartoon instead, so tony morelan 06 53 okay, yeah and the success yeah, the success of that, did that go down? peter holm 07 00 it went down? eventually yes but i will say that we left it to be as an ai, we left the company in 2007 a year after that it went down so nothing on us it was a series of unfortunate events that led to the company crashing tony morelan 07 21 so i understand that you guys built a company, cape copenhagen, correct that actually, like flourish, you had, you know, lots of employees over 30 employees you learned a lot of lessons from that company and some of the challenges that came out of that tell me tell me a little bit about cape copenhagen peter holm 07 38 yeah, so cape copenhagen came out of the out of chasis the first game we've made way back, and titanic so actually, we left that company in order to make a new version of chase as that was the big dream, we established the company that in turn turned into cape cod and that company was focused on chasis to begin with, and we worked on a demo for a long time, and we pitched it to publishers, and we didn't seem to be learning the right deal at any point so we left it and returned to flash games, tobias thorsen 08 12 i fell into the trap that many game developers to programmers, particularly that i want to make my own engine sure that was possible back in the 90s, and beginning of the 2000s, but at that point, 2008 it was the scene was so diverse with graphics cards, and sound cards and hardware all over the place and multi-platform so it really was a too big of a task again, i made a lot of programming that turned out to be dead code, because you can't maintain such a big code base for so many cases and get out into all the corners with your own tech at least not one guy peter holm 08 54 yeah, we painted ourselves into a corner with that project and tobias thorsen 09 00 share yeah, multiple times peter holm 09 03 so learning from that we return to the stuff that worked in titanic and return to making flash games for clients and then at some point later on, we finally made the jump to unity and 3d games tony morelan 09 21 and was at the beginning of biodome games no, the peter holm 09 25 beginning of biodome games is later so keepcup magnet almost existed for 10 years wow and i think we were almost 40 people at the peak and at some point we had a lot of stuff lined up but it all fell through and having a business that rely on client work and all the client work disappearing that's, that's not really healthy sure and we hadn't really managed to build a really solid foundation because i think we wanted too much on the same time really wanted to do great plant work but we also wanted to make our own games, which is by definition underfunded yeah, so that was a very difficult balance to strike tobias thorsen 10 11 for 10 years, we kind of swapped between the two, and we couldn't make a clear path we didn't really want to focus entirely on client projects and we didn't want to take too much funding and get economically dependent by taking big investments and not having our own company yeah, sure so we were kind of flip flopping around for 10 years, until we could no longer flip flop peter holm 10 38 yeah so we were stubborn, and flip flopping and refusing to take other people's money and so on so it was it was kind of yeah, maybe not that smart of a choice but anyway, it was fun tobias thorsen 10 53 it was it was a great company i really loved my colleagues, amazing company tony morelan 10 59 so it sounds like then eventually, there came a moment where you decided that it was best that you just close the company, correct? peter holm 11 07 yeah, at a at a at some point it was basically out of our hands we had, within the same week, we had three almost signed deals that disappeared and that was really enough to take us out of business so we had to close down and that was the beginning of biodome games tony morelan 11 28 so then, so then you interbase decided to still continue working together, you obviously are determined to find success, peter holm 11 37 we actually had a conversation at some point where we were looking at each other than just meeting room and things were just collapsing around us and we kind of okay, so what we're going to do get a job i don't know how to get a job we basically we were unemployable at that point, i guess we didn't have a choice tony morelan 12 01 so that was it it was just you looked at each other and said well, you've got me and i've got you so let's figure out 12 07 something like that tony morelan 12 11 so with the with the closing of cape copenhagen was that the beginning of biodome games, peter holm 12 17 at cape copenhagen we had a third partner who, brian, who we work with for many years, he had left the company i think, one and a half years before we went belly up basically, he had to he had to do something else with its life at that point he was he was kind of burned out on client work and stuff like that but around the time that we went belly up, and we had the infamous conversation and in the meeting room about having no choice but to start a new company, he had probably around that time joined, joined a little startup called frvr and we kind of followed along and looked at what they were doing while we were doing other stuff because we still wanted to do our own games we had a client project that could get biodome games running, so we didn't have to take any funding and stuff and that was basically our plan just to chug along, do a project end and then fund another game that we wanted to do tobias thorsen 13 22 yeah and i remember brian liftin, in melta, at that point, and he was back in copenhagen and he was really, really trying to sell this idea that we should work for frvr very hard we are skeptical what's, what's this? and it's hypercasual? and is that really our gig peter holm 13 43 instant games? what is this? yeah tobias thorsen 13 48 it felt like a return to something that we left many years ago in titanic and flash games sure so we weren't, we were not really convinced in the beginning and we had some other projects and very artsy projects lined up for ourselves and i remember we made this calculation at some point, if we're going to succeed with our own game and distributing it and making a steam version of that game and becoming a hit it was it was really unlikely and the numbers just told us well, we really just have so much better chance of succeeding if we go with prime and this tony morelan 14 26 is because i mean, it's really was just the two of you still, i mean, it's not like you had employees it was the tobias thorsen 14 31 two of us yeah, yeah peter holm 14 33 yeah and then we really tried to stick to gut feeling about making our own game and realizing our artistic ambition through that game, but as at the same time, we really wanted to achieve that commercial success and i think the message that that brian came with, why don't you shove your artistic ambition and allow yourself just to be commercial for once, sir and i think, as you said, to be as that it would be a marathon to maybe get the game finished and maybe get it shipped and so on but because the scope was smaller, and the tech was more accessible and they had good channel relationships and could get our game out there, i mean, that would just make a lot of sense and it played to all our strengths and so on tobias thorsen 15 23 it turned out to be a no brainer, because what we lacked they had, we didn't have any connections in the industry to publishers, and we didn't know how to put a game on facebook instant or steam and let alone peter holm 15 38 samsung galaxy store yeah tobias thorsen 15 43 so we kind of saw well, maybe we don't have to sacrifice our artistic integrity just because it's an instant game or just because it's a small casual game, who still make something that that would be ours and feels like something we want to work on so tony morelan 16 01 sure so then you decided to work closer with frvr and they acquired biodome games? tobias thorsen 16 08 no, not at this point okay, peter holm 16 11 actually, we decided to enter a publishing agreement with them so we basically made an exclusivity deal with them we got to use their tech and in return, they promised to try to publish our games if we made something good, of course and that was just a huge relief to take that step and start making small games and then yeah, fast forward two years and four games, and they acquired us because we had proven that that we have something that actually worked tony morelan 16 48 and just so i have a good understanding frvr is basically handing like the publishing and the marketing but that you guys are still pretty much a standalone team, your own your own studio, correct? peter holm 17 00 yeah, the new setup is, is 100% frvr own studio, but we have full autonomy we can do what we want basically, as long as we try to make long term business sense of course, in our industry, it's a first party studio, meaning that the publisher owns the studio and we keep working on our games on the games from biodome games that would transfer to this new entity, it feels like our studio and be treated like our studio tony morelan 17 30 now now recently, you decided to change the name from biodome games to spelunka correct? peter holm 17 37 yeah, that was that was part of the of the setting up a new studio so biodome games guild formerly exists now it's basically a holding company okay but, but yeah, so the new studio is called frvr studios belong? tony morelan 17 53 and what is the what is the meaning? what is the thought behind spelunka? tobias thorsen 17 58 spelunka means cave exploration and if you go spelunking you explore caves no, it's quite suiting for gold digger tony morelan 18 08 yeah, is very appropriate i myself actually have spent a very little time but did one day of spelunking definitely was during my, my youth when i didn't have a fear of small spaces and claustrophobia i can't imagine getting back down into the earth like i did when i was younger and climbing around those caves is exhilarating peter holm 18 31 i wouldn't last a second environment; it would be so horrible tobias thorsen 18 38 it's good thing we can do it in a games and tony morelan 18 41 yeah, wonderful so tell me now about spelunka how many employees are you guys? peter holm 18 48 for? so us and two other guys and we were still looking to hire more people with can still kind of figuring out what kind of people we need but more developers needed? yes yeah, we tobias thorsen 19 02 are three programmers now and then peter so we are going to need some more assistance with the graphics and game design and these parts tony morelan 19 13 wonderful well, i know a lot of people who listen to the podcasts are always looking for opportunities for work so i'll make sure to include links in the in the show notes are there any links that we'll be able to share related to maybe applying for a job at splunk and studious? peter holm 19 28 yeah, i think we have one opening now on the fob career side but i think we'll add some more in the near future tony morelan 19 37 so let's talk about the relationship with samsung how did that actually come about? peter holm 19 41 again, we have to point to two ffvi they seem to be really amazing with the challenge relationships and that's, i mean, that's a huge win for us because we can really focus on game development that that relationship with samsung that ffvs been able to build them? in part on our behalf? is it something that we're really grateful about? tobias thorsen 20 06 yeah, i think at first our games were mostly published on facebook and then when they were kind of proven that they worked and the generator revenue they expanded to the newly formed channel on bixby i think back then it's a couple years ago tony morelan 20 25 so i wasn't familiar with that so bixby, our voice assistant, is that what you're referring to? peter holm 20 29 yeah, i think there's still on older devices that hadn't received updates, you would still be able to swipe right and then you would open a discovery surface called bixby as well, where the games will be featured and that was the first appearance on samsung devices to my knowledge, so yeah, it seems to be a lot of samsung channels that the game is feature tony morelan 20 58 so last year, you guys were the winner for the 2021 best of galaxy store award best instant play game tell me tell me what did it mean to win that award? peter holm 21 11 that was pretty special i'd say we had not seen that common i mean, we hadn't imagined in a million years that we made an award-winning game i mean, we knew we made a great game and a fun game, but we haven't seen it as a as a game that would win an award so it was super happy about it tobias thorsen 21 32 in retrospect, i could see that the game stands out a bit it's a combination of gameplay and, and style that's that i haven't seen many places tony morelan 21 44 so let's talk about gold digger i mean, i played it because i was part of the team that was going through all the nominations and selecting who was going to be a winner it was a very addicting game to play but tell the folks out there what actually is gold digger tobias thorsen 22 00 i remember when we when we came up with the idea, because we were i think we were talking about digging game peter holm 22 08 yeah you mentioned you mentioned boulder dash as i remember it, you look over your screen and say, you remember the tony morelan 22 15 boulder dash? i love that game peter holm 22 17 as a yeah oh, yeah yeah, that was that was a great game maybe we should do something like that use it and i said, oh, yeah and we can that match three elements so you match the gems and i think that was the conclusion of our game design and brainstorming session, as i remember it it was tobias thorsen 22 37 very, very brief and which, which is, i guess, a good thing that you could describe a full gameplay with the one minute of talk hey, let's try that that could work and i peter holm 22 48 think it was only a couple of days later, you had the first prototype running us, i remember it at least and then of course, a few months until we had tobias thorsen 22 57 playable in the frvr bible when they recommend gameplay ideas to pursue one of the key points is mashups of, of different genres so not don't make a clone but try to mix and match different areas and see what that leads to tony morelan 23 18 so the gameplay there's this little there's like this old man miner who's going around smashing rocks looking for gems correct? peter holm 23 27 actually, when you play this kind of a fast-paced mining game, which is kind of a maybe because mining is, is in real life, it would be really slow pace but i guess that was the inspiration we took from balderdash that we wanted it to be speedier and like an explorer it's so it's i think it's as much an exploration game as its mining game, taking game but yeah, you view push rocks around and match them up and when you align three or more rocks, they explode and, and help you excavate and then there's a lot of stuff to discover and pick up, buy and sell tony morelan 24 07 so i remember seeing at the time when you win the award, you guys produced a meme a great photo graphic of your first dollar that you earned on gold digger side by side with winning the samsung award tell me about that peter holm 24 23 yeah, it was quite a revelation for us to allow ourselves to be focusing totally on making something that made money so making our actual first dollar was quite an event so we made ourselves an award to celebrate the moment and we awarded it to us so thanking us for the award so yeah, that was that was how it started making our own awards and how it's going winning actual awards from samsung that was that was quite a tobias thorsen 24 58 in many ways goes to go has become the game that we dreamed of making for many, many years all the time in cape, we were talking about how it would be so great to have just a small game that would make a little bit of money to support one guy who could work on this and it took the end of cape copenhagen and the rise of a new company before it actually happened for us peter holm 25 20 in a way you could say we've been working on this game for 22 years tony morelan 25 28 so i understand that gold digger is not the only gold game in your in your franchise that you have another game called gold train, frvr tell me tell me about gold train? tobias thorsen 25 39 yeah, that was the first we made it was it's a more traditional, proven gameplay in many ways it's a based-on pipe mania, also a very old game where you match train tracks to make the train run okay and since we kind of knew what kind of game we were doing with, we chose that game for just getting to know the tech from frvr so it was kind of a training game training train game tony morelan 26 10 that's great peter holm 26 11 at that point, we had decided, of course that we wanted to make a game that would make us money so in order to cast the rights bill over the game, we needed something with gold and it seemed to work okay, tony morelan 26 25 so tell me what is the platform that you're building your games on tobias thorsen 26 30 html5, and built on the engine that frvr provided it's all javascript, very old-style javascript, so no modern shenanigans it's, you have a script as it looks 1015 years ago so it's in many ways, it's, it's very easy and very simple to get started with but when a project gets really complex, it's it has its own challenges as well tony morelan 26 57 yeah, i think there'll be a lot of limitations with it but you guys have found a way to work within those limitations to create something that's that successful tobias thorsen 27 05 yeah, i'd say some of the bigger challenges has come now that we've hired new programmers who has to take this two-year-old code base that i've been working on exclusively, and try to figure out what's going on our first-time employee, he was really, for a month, and he was so confused so we decided to make a major cleanup of the code and we've been working on that for a couple of months now, tony morelan 27 32 how funny i can take that as like, you know, you take this really top-level auto mechanic, and then you throw an old ferrari at them and say, alright, yeah, get this going here peter holm 27 45 but about the limitations, i think part of the charm of working with this is actually the limitations that you have to impose on yourself and your ambition and that's, i think, part of the reason that we can make it work tony morelan 28 00 it's interesting, because, you know, my, my background truly is in graphic design and i often teach the opposite of that, in the sense that, you know, when you're creating a logo, you don't want to limit yourself by diving right into a program, like adobe illustrator to start designing your logo that really, you should grab pencil and paper and start sketching so that you don't have any limitations but it sounds like you know, your approach having to work with him in this javascript, you've got some limitations but i would think that, you know, that that must trigger certain parts of your brain where you really have to think like, how are you going to get this done? peter holm 28 39 yeah, i think i think would you say about logo design is totally true, i would definitely go for a pencil first but again, that's the pencil is a conceptual limitation that you put into the process at that point true so i totally agree with that one but in this case, i think one of one of the great benefits about the limitations we have on the platform is that there's a lot of stuff we just can't do period so we don't have to get distracted by ambient occlusion or real time shadows, or hdr lighting or stuff like that that's completely irrelevant to the gameplay but if we had every single tool, we could so easily get distracted by stuff that's not super essential to get right tobias thorsen 29 27 yeah but essentially is it's a sprite engine, you can display sprites, and you can display a lot of them but that's it there's no spinning stuff, and no 3d had hardly any animation system we had to make that ourselves also tony morelan 29 45 oh, wow so i would think that the process i mean, tell me is it would you say it's quicker i mean, i know that some of these game developers that i've that i've chatted with, it takes them years to go to market on a design that they're working on those limitations actually help speed the process could you can't go down all these different avenues and work on things such as 3d and lighting yeah, definitely tobias thorsen 30 06 in the beginning, it's a, it's very, very fast to make a prototype and try something out and i think the challenge really comes when you're when you're continuously working on a project, and it gets more and more complex, because then yeah, this group really has its limitations sure peter holm 30 25 yeah and i think the platform's says a lot about your shadow choice as well, you wouldn't, you wouldn't go ahead and make a first-person shooter and that wouldn't make sense i mean, you wouldn't have you would pick another tool for it from the first prototype until gold digger went live i think that was about three or four months or something tony morelan 30 44 like that it's so quick peter holm 30 47 yeah, and it's a great joy to work with that quick turnaround, because you get something done, right? tony morelan 30 54 yeah and you get the feedback so quick, because as soon as you put it out there, you start i mean, you had mentioned that you would first release like on facebook instant i mean, you almost using that as your testing platform so you release it quickly like this, you get that feedback and now you can get back into the studio and start finding ways to really improve on it before it gets out to the to the larger audience peter holm 31 13 exactly exactly and you have actual people playing it and having opinions about it and telling you what, what they think about it that that's just so much more fun than sitting deep in the trench working on the same project for two or three years without it seeing any type of reality tobias thorsen 31 35 and a lot less risky, of course, saves a lot of money, too i peter holm 31 39 would say yeah oh, yeah, definitely tony morelan 31 43 so i'd like to talk a bit about the marketing i know that frvr is handling all of this for you what were some of the tools that work because i've seen some banners that you guys have done on galaxy store peter holm 31 54 yeah, for us at least privileged situation that that frvr handles most of that and we basically just supply them with, with assets that they can they can build banners and stuff from tony morelan 32 07 the end if some of these banners were related to different seasons, whether it's halloween or valentine's peter holm 32 13 oh, yeah, yeah yeah so what we did recently was, was some seasonal updates for the game we had a super nice christmas update for it with a snowy landscape and you could explore the mine and find christmas decorations and stuff and i think you could even get a santa hat and yeah, i think we had a very nice feature from samsung on that and of course, that's so nice to see that they will yeah, spend some nice storefront for the game tony morelan 32 58 so tell me, are there other games that you guys have produced outside of gold digger and gold train? peter holm 33 04 yeah, we have we have two other games we have the pot rush, cool rush mini golfing game and a pool game tobias thorsen 33 13 it's a very casual approach to pool and a very casual approach to mini golf it's a sure something that a hardcore pool player woods would find appalling because you just you just sit there and you shoot balls, if the balls and get them in that into the hole it's very simple and it's not even on a pool table it's an endless trek tony morelan 33 40 lsa check that out tell me so where are you guys getting your ideas for games? peter holm 33 45 i don't know i mean, sometimes it's just like what we talked about with gold, they got this two reference points, and then they have a weird connection other times it's, it's more like, what type of interaction would be fun? what would feel good? okay, and then in turn, how could we turn that into a game? i think that the pool russian portrush games kind of grew out of that approach we kind of wanted a very simple interaction that would be fun and quick to repeat i think we had a few iterations of that before it kind of gelled into a pool game and a mini golf game tobias thorsen 34 28 and it was very much inspired also by one of our vrs biggest hits, which is a basketball game, where the only thing you do is to flip basketballs, okay, and have to hit the hoop so the gameplay style is quite similar you just shoot balls again and again and again you can get really good at it and you can suck at it tony morelan 34 52 i remember there was a game a long time ago, very similar where you would just throwing trash into a little trash bin peter holm 34 57 yes yeah i think that that's that, for me at least that's been that's been kind of a fascination all the way back from the first flash games that how much can you boil down the experience? how small can we make it and still make it enjoyable? i still think that's very much motivation for me at least two or a driver for me at least to see how, how tiny can you make it? how much of a great experience can you make with the smallest mechanic possible, basically? tony morelan 35 28 so tell me what is your process for designing, developing in and then publishing a game, if ar tobias thorsen 35 35 vr has a set of goalposts, you have to reach first you make a prototype that the guys there review their game designers, and they look at the game and try to give their input on whether or not it would succeed, or if it has potential than if, if they approve it, and think we might be able to do something with that we make a prototype, and it's been put out on a very limited market so there's a small subset of players who get to play it and then during this process, the retention is measured and you see how many people are actually returning to it and these are paid users, they are advertising, and people come and play and then there are a set amount of iterations where you try to improve in each iteration to see if you can get the game sticky enough and this process is, in large part to avoid working a lot on a game that doesn't have potential that's not going to work in the real world so if you pass through these goalposts, you, it's published to a wider audience worldwide peter holm 36 41 okay and i think and i think if we should just talk a bit about our internal process as well, it would be more something along the lines of running with a gut feel, up until the point where we felt we have something that would show some kind of potential yeah, and then trying to find the smallest subset of that, that we could take to a level where it could actually be tested in in live circumstances tony morelan 37 11 so we've seen a lot of success around gold digger, can you tell me like how many active users do you guys have playing the game? peter holm 37 19 across samsung channels? i think we're seeing about of course; it goes up and down with stole features and stuff, but an average about 100,000 active users a day wow so that's, that's pretty neat tony morelan 37 33 yeah, that's, that's crazy to guys just creating a game like that and you've got over 100,000 people playing it daily tobias thorsen 37 40 it feels really weird in the beginning, when it started to take off and i remember, at the start, we were extremely popular in vietnam, and poland tony morelan 37 51 really, yeah, tobias thorsen 37 52 there was some strange demographic that we never fully discovered why, but yeah, peter holm 37 58 yes, sometimes like that, you suddenly get a spike in in a market that you didn't expect at all tony morelan 38 03 so obviously, revenue needs to play a part somewhere when it comes to the success of a game so tell me what is it that you guys are doing to help generate revenue while playing gold digger? peter holm 38 15 well, the very basic stuff is, of course, that the main revenue is coming in from ads, we try to find convenient, or you could say, quote, unquote, natural places to show ads and hopefully, some players would click those ads and when they do that, that generates some revenue back to us also on platforms that support it we have in game purchases, so you could actually pay real money to buy stuff tony morelan 38 46 so what are your what are your key learnings? when it comes to iap? peter holm 38 49 the key learning i think, is that people actually want to pay for stuff when they enjoy the game so if you make a great game, people will definitely pay for stuff in the game tobias thorsen 39 00 i remember in the beginning when these in app purchase issues came up with some smurf game where people bought smith berries, and i was very skeptical of them, but who's paying for this? but again, it's uh, if you make something that's actually fun, and people want to play, then they'll pay tony morelan 39 19 yeah, i was listening to a podcast once different market that they were talking about ip in a sense that, you know, they could have hundreds of 1000s of people interacting with this, but all it takes is a small percentage that are willing to pay and that truthfully can generate a decent amount of revenue that because the reach is so big, and it's a global audience, that it just takes a few people you know, interested in actually paying the they can really help bring some money your way? peter holm 39 46 yeah, yeah yeah it is it is a game of volume, because you need a lot of ads to be shown and you need a lot of players to have enough players that would actually want to spend money on it as well tony morelan 40 03 so one of the things that really stood out for me when i was playing gold digger was the music so let's talk a bit about the music of gold digger peter holm 40 11 we're fortunate to work with a really great composer that is also happens to be a friend and former colleague, his name is rasmus hdmi, and if anyone is out there listening and wants to music, you should definitely know because this is so great actually, we work with him in our past company and, and he's, he's working with the fob as well tony morelan 40 34 yeah, so the song that we just heard leading up to this question that was from gold digger, and a few of the other songs that one that we started the podcast off with, and one that we'll be closing with those were from gold train so yeah, absolutely beautiful music that you guys are creating there and frvr it's tobias thorsen 40 52 actually something that people come and done we get a lot of feedback where people say, hey, what's up music? peter holm 40 59 actually, there's a funny story about that composer back in the day, we made a game for lego and it was for a disney themed ip and we needed some music for that game and our composer was patmos, who made the music for these games as well he made some disney inspired music that was completely original he made it all from scratch and once disney had to approve the game, they were kind of going out okay, where's that music from? what movie? did you rap? tony morelan 41 35 really? peter holm 41 36 oh, it's totally original music it's so they were they were kind of impressed with him so tony morelan 41 44 wow so he does music for not just you guys, but for many of the other franchises underneath fr vr, correct? yeah peter holm 41 52 yeah he said, i think he's the closest thing they get to a house composer tony morelan 41 57 so what advice would you give developers looking to bring their games to galaxy store? tobias thorsen 42 02 work with a great publisher? peter holm 42 05 yeah, the advice we took was, was work with frvr yeah, tony morelan 42 10 that's great and i love hearing about that because i know a lot of indie developers, their challenges, they've come up with a great game but these are not marketing people these are not publishing people i mean, these really are great game designers and then where do they go? how do they take their game out to the public? so it's wonderful to hear that there is a resource with a company like frvr that these indie developers can turn to, they can actually bring their game to market tobias thorsen 42 35 yeah and it's hard work doing publishing and it's hard work to maintain the relations with different outlets like the galaxy store, it's not something that you just walk in from the street and say, hey, can you put our game on the store and featured? i think a lot of game developers forget about it i did for many years, i thought it would just make a great game, then it'll all come by itself that's not true peter holm 43 03 selling is hard, right? it's not something you want to do next to you making the game job you want dedicated people to take care of that tony morelan 43 12 yeah and i would think that really game developers they've got that their brain is wired for being creative in wanting to code or, you know, figure out the technology behind it the last thing i want to do is like get on a phone and try and start doing the marketing yeah, making those phone calls to try and you know, get their game out there to be seen peter holm 43 32 yeah, exactly it's, it's liberating to hand it off to someone who knows what they're doing tony morelan 43 38 so what is in the future for spelunka? peter holm 43 41 well, the near future is way more gold digger and i think we have a lot of fun ideas for making the game even more fun for players and yeah, and we're just looking forward to dive deeper into it tony morelan 43 57 and i know you guys are a small company, you just are a few people what are in your future plans related to diversity and inclusion? peter holm 44 06 well, right now we have to be totally honest, which is for white dudes all the same age, all sporting the same beer guard and stuff like that so it's kind of i mean, it's not really diverse, but, but we really want to change that up we strongly believe that diverse teams make better decisions and better games sure and we're super happy to first experience when the game kind of came out that it is a very even 5050 split male female really, okay yeah and it's a rare thing to get something like that yeah so we really want to emphasize that and i think the age wise the audience is extremely wide as well we have young kids playing it and we recently had a very nice letter from 70 something year old gentleman who we enjoyed playing it with his wife wow so i mean, it's a, it's a very, very wide audience and we want to cater to that tony morelan 45 08 yeah yeah, that is that is very unique now and the game is very new i mean, it is it is a young game, do you have plans of maybe like offering the ability to skin your character to be able to create something that maybe somebody relates to a little bit more? peter holm 45 21 yeah, i don't think everyone wants to be that red bearded, grumpy old minus i think it would only be fair to enable people to make their own characters and so on that's, that's part of it of the scope as well as some points yeah, definitely tony morelan 45 38 so to me, it's tell me what is it that you do for fun outside of work, i understand that you actually are a pretty artsy person tobias thorsen 45 47 well, when you sit all day and program and stare into a screen, it's quite nice to do something physical so i've been doing lots of stuff over the years with the painting and arts and lately i've been doing a lot of comics, so it's quite new hobby for me tony morelan 46 04 ceramics really? so pottery yeah, pottery tobias thorsen 46 07 and modeling and doing crazy sculptures i've never thought much about these things until i really tried it and when i when i held an item that i made, which was all glossy and looks totally finished, yeah but it was quite a nice experience so i dove more into it it's very rewarding to have to eat out of a plate that you made yourself tony morelan 46 40 that is wonderful so and peter, let me ask you what is it that you do for fun outside of work? i understand that you actually like to pretend to be a lumberjack peter holm 46 50 yeah, i do i do i have a big, big, badly maintained garden and a small strip of forest that that i can joyfully call my own and once in a while we have a storm that that troubles a tree and i get to cut it up and chop it for firewood and stuff like that so i really enjoy you could say rough gardening like that also woodworking, artsy, artsy, do it yourself projects with all the kids, which of which have four tony morelan 47 26 wow, that's excellent so i have one more question for you since you guys became friends you said back when you started kindergarten tell me who is better at sharing to be or peter tobias thorsen 47 40 sharing tony morelan 47 42 yes peter holm 47 44 that's definitely to be as to be as a very, very generous soul that shares all these good ideas tony morelan 47 55 that's great you guys, it has been absolutely wonderful to chat with the two of you you guys are doing great work at splunk and i'm looking forward to seeing much more down the road on galaxy store tobias thorsen 48 06 thank you very much thank you peter holm 48 07 it was a it was a pleasure to talk to you closing 48 09 looking to start creating for samsung download the latest tools to code your next app, or get software for designing apps without coding at all sell your apps to the world on the samsung galaxy store check out developer samsung com today and start your journey with samsung tony morelan 48 26 the samsung developers podcast is hosted by tony morelan and produced by jeanne hsu
Learn Developers Podcast
docpay as you go yeah, format dan appelquist 29 38 yeah yeah you know, i don't work for coyle, right but one of the things i think is interesting about it is that those transactions are anonymous so it's very privacy preserving, and it fits together with our philosophy of trying to enhance and protect user privacy tony morelan 29 53 yeah, no, i know privacy is a big thing for you guys over samsung internet yeah, definitely so are there any other sessions at sdc21, that developers should be sure to check out dan appelquist 30 03 well, i would suggest checking out the session called what's new and foldables first of all, which is a kind of highlight session, give it gives a high-level overview and gives a lot of really good context about flex mode, what flex mode is, or what we're referring to as flex mode, which is, again, adapting the user experience of any application to the conditions of the folding device and how that's so important from a user experience standpoint and my colleague dongbu actually gives a brief intro in that session to the device postures api, which leads into laura's longer, more detailed talk got it, and he gives a demo a little demo of how that works as well, which is, which is very cool tony morelan 30 49 yeah, i love learning about all the multitasking capabilities with foldables that was that was great to hear yeah so if developers want to learn more about samsung internet, what is the best way? dan appelquist 31 00 well, you can visit our page on developer samsung com/internet that's got links to our blog, and we blog on medium as well but really, if you go to developer samsung com/internet you can find links there to all the places on the web where, we're present you can also follow us at samsung internet on twitter excellent, where you can always find out what we're doing and you know, we try to keep that up to date with news about samsung internet, but also just the developer activities that we're participating in the standards activities that we're participating in our team manages that twitter handle directly so it's a direct line to our team and our dms are open so if you do have questions about samsung internet, you can feel free to dm us they're tony morelan 31 50 awesome awesome hey, dan, thanks very much for being on the podcast and giving us an insight into the highlights with samsung internet and sdc21 dan appelquist 31 59 thank you, tony it's always a pleasure awesome thanks, tony morelan 32 01 dan there were some great tech talks at sdc related to smart things and lots of great new innovations for shared i'm excited to have aaron swift on the podcast director of customer and partner strategy at smart thanks hey, aaron aaron swift 32 16 hey, tony, how are you doing? tony morelan 32 18 doing just fine, lots of tech talks and even a highlight session for smart things so let's start with the session smart things find from lost to found what were some of the key points with this session aaron swift 32 28 smartthings find launched last year as a service to enable customers to locate galaxy devices such as phones, watches earbuds, your s pen pro, like whatever you might leave on the bus or the train accidentally it comprises more than 100 million find nodes and over 230,000 devices are located every day tony morelan 32 49 so a find no just to clarify, find note is that like another device that's this part of this network, aaron swift 32 55 yeah, like a phone or a tablet, a galaxy phone or a galaxy tablet, running the smartthings app with smartthings fine and as you saw, philip and moon did a great presentation talking about other hardware oems can now integrate their products with smart things fine so we have today our first smart tag device which you could attach to your keys that's available on the market now for everyone but anyone who wants to can start building their own tag devices or integrating their hardware products into the final tony morelan 33 29 yeah, i think that opening up the smartthings five network to the outside hardware oems is going to be huge and will absolutely expand the network tremendously aaron swift 33 39 yeah and they made a set of tools there's this fine device sdk and the test suites they make it really easy for any device manufacturer, whether it's ble, or ultra-wideband, to start integrating their devices if you're using the nordic dialogue or nxp chipset yeah, it's really easy to add the fine sdk into your device for certification tony morelan 34 01 that's going to be that's going to be great there was a session called smart things build and tell me what were some of the highlights for you in that session aaron swift 34 09 that session was led by jenny brand meyer and andy sayer are director of product management and director of engineering okay, and they talked about extending our platform, which historically has been very end user focus, you are buying samsung tvs and appliances for your home and now we're extending the platform for multifamily builders and apartment managers to put in the new apartment buildings okay, there's a new toolset with that, that will allow an installer to go set up hundreds of apartments and hundreds of refrigerators and dishwashers and washing machines and apartments really tony morelan 34 46 quickly so this is giving them the ability to sort of monitor the like what's happening with the with these devices if there's you know, you've got some sort of fault that happens within the system, they can detect that aaron swift 34 58 yeah, so property managers we'll be able to integrate your monitor their fleet of samsung appliances from their property management tool are there any tony morelan 35 08 apis or sdks? related to this? aaron swift 35 12 yeah, so one of the cool things about this new offering is there's a dedicated set of tools and api and sdk set to make it easy for property management software companies, like in trata, to come integrate and provide fleet management for all of the appliances tony morelan 35 28 the one thing that comes to mind, though, when you mentioned something about, you know, giving property managers, the ability to sort of monitor all these devices that are in these homes, comes down to privacy, what's in place related to privacy, when you're talking about something like this aaron swift 35 43 user privacy is front of mind to us, whether you are a home owner or a renter and so what we've done is we put together a new set of permissions on the platform, so that property managers only have the minimum access to data coming off of the appliance is needed to troubleshoot for failures got it if there happens to be something wrong, the property managers will be able to pull some information off of the appliances to troubleshoot the air, but they cannot tell that you're getting your 11pm glass of milk before you go to bed tony morelan 36 18 yeah, the last thing i need is my property manager knowing that i was in my freezer last night going for little ice cream bins aaron swift 36 24 right, right and so we've made sure that users are front of mind in this, that's, that's great, and that their privacy is protected tony morelan 36 31 yeah, that's super important there was also a session called smartthings edge and i thought this was really interesting this is where the execution is done locally without reliance on the cloud tell me more about that session aaron swift 36 44 in summer 2020, we announced major changes coming to our platform, this session ended up being such a long session with so many great speakers, because we are really excited to be talking about those changes sure a couple of my favorite ones are from zack and vlad talking about smart things edge before, when you use smart things to turn on a light with a motion sensor, your motion sensor would detect motion in your home, it would send that motion event to your hub up to the cloud, the cloud would tell you to run that automation, send the event back down to the hub to tell the light ball to turn on sure and that happened quickly but it's not quite as natural as still being able to go turn on the light or the local motion sensor in your home yeah so what smartthings edge does is it took the device events and the automation event and was able to start processing them locally yeah so now when you use that motion sensor to turn on a light motion is detected that goes to the hub, the automation is processed on the hub, and sent back over to the light to turn off without ever having to reach out to the cloud to confirm that event tony morelan 37 56 like what would be a device where you needed like instant, instant, you know, reaction time between the hub and the and the device aaron swift 38 05 so all zigbee and z wave and wi fi devices have the ability to run locally on the hub now with automations okay, so one of the most natural feeling ones is that example i gave with the light you want light to turn on right away? yeah similarly, if you want to be walking into a room and having the temperatures change, or having the vents open and close, the thermostat adjusts those are great use cases for local automations as well okay, what we're doing now is we're investing more features into the rules api to make more automations run locally got it so over time, you'll see more and more complex automations be able to run locally on your hub tony morelan 38 43 for edge devices is it a closed ecosystem? or is it can anyone build for edge? aaron swift 38 49 great question so we've released a collection of edge devices on our smartthings developers github repository that anyone can reference and then any hardware oem can add their fingerprint or their devices to that repository anyone can build their own edge devices if they want to tony morelan 39 10 wow, that's, that's, that's great so i saw there was a highlight session building the future smart home today that talked about the new matter standard can you tell me what was shared in that in that session? aaron swift 39 21 matter is the foundation for smart homes of the future? over 200 companies have come together to develop a standard that is going to be the basis for smart home devices to integrate in the future tony morelan 39 34 would you say that like today the is the ecosystem? is it pretty fragmented? aaron swift 39 39 correct there are all sorts of different smart home standards from all sorts of different companies out there, and each one operates just a little bit different from each other, which makes it hard for device manufacturers to integrate with each platform mater is going to take that fragmentation and create a common application language and data model that will apply across all the data from smartphone platforms, regardless of tony morelan 40 02 yeah, i think that's going to be great, especially for consumers so that they don't have to like decide between which technologies they want to, to purchase that it's all going to kind of seamlessly work together aaron swift 40 12 correct and if you buy a light bulb with the with the matter logo on it, you will know that it'll work with smart things, or any other matters supported ecosystem tony morelan 40 21 that's awesome that is super, super great to hear so you've talked a lot about all these different technologies related to smart things what's the best way for developers to learn even more about smart things? aaron swift 40 34 the best place to go for more information is developer samsung com/smartthings from there you can learn more about building edge devices or cloud devices or stay tuned for future updates on our investment in matter you know all of the sdc sessions on smartthings were great are there any other sessions that you would recommend developers checkout i'm personally a bit of a tv nerd so i'm really excited for redefining the experience of watching tv and what's new in samsung smart tv services tony morelan 41 04 yeah, no, i know, a bunch of the people over the tv plus and it's a great group and doing a lot of amazing things over there a lot of great content coming out that's exciting excellent hey, aaron, i really appreciate you coming on the podcast it was great chatting with you and learning a bit more about smart things and looking forward to chatting with you again in the in the near future aaron swift 41 22 great thanks, tony tony morelan 41 26 so next, i'd like to welcome roger kibbe to the podcast senior developer evangelist for bixby samsung's intelligent assistant technology welcome, roger roger kibbe 41 35 well, thanks you and i talked gosh, was probably over a year ago yeah, actually on the podcast so i'm excited to be back and talk to you about what's new and what we just saw at sdc yeah tony morelan 41 47 so it was i think about a year and a half ago safe to say that a lots happened since then so tell me what is the latest with bixby developers? roger kibbe 41 55 yeah, so we just announced several things that sdc are highlighted some things that changed first thing i want to talk about is some of the ways we've made it easier to develop for bixby and these weren't new announcements, but kind of highlighting some of the changes we've made over the past year or so and so a lot of these are focusing on improving the developer experience, one of the things we did is we created a new training ui so use the training ui to create natural language training and one of the great challenges and voice experiences is to get your natural language training, working well after all, it's the way users interact with all the business logic that you've written so that's a great challenge and so we built a new ui to make that more intuitive and hopefully easier and simpler to build great experiences we also built something we call the component gallery because bixby is on multimodal devices, there is a ui for bixby experience and the component gallery is a wysiwyg component editor so i'm writing some code for what we call bixby views, i can pop up the component gallery, configure something graphically, and it just dumps the code right in so it just makes it easier and then finally, we made it super simple to load a capsule directly from github so we have a bunch of sample code on github and now directly in the studio you can load that sample code from github without having to go and clone it or download it and go through all the previous hassles he had to do so just an example of some of the improvements we made to make it frankly, just easier if your day to day life as a developer developing something for bixby tony morelan 43 32 awesome so let me ask on the end, that component gallery actually was watching one of the sdc sessions on that is pretty cool so just to clarify, this is where like on the device when you give a voice prompt, and the device bixby reacts to that you can then have graphic images appearing on the device is that correct? roger kibbe 43 50 yeah, yeah so you can either when you're basically whenever bixby is communicating with the user, you can actually have a graphical ui on there that's complimentary and it also could have things like buttons on it, or sliders or controls, because one of the things is all these samsung devices so you know, the phone, the watch the television, the tv, all have a ui on there so bixby is not just a voice experience, but it's really a multimodal experience so you need to build graphical ui, we built a tool to make it pretty darn easy to do so tony morelan 44 26 so i heard a bit about bixby on windows tell me tell me about this new announcement roger kibbe 44 30 yeah, so brand new so bixby is available on the galaxy book notebooks so there's the samsung's newest notebooks so bixby is right there is a command key to launch bixby can turn on hi bixby so you can talk to your windows notebook you can ask questions and you can have it control smartthings home automation, you can ask it to find files you can ask them to change windows settings so right now, you know it's focused on a fairly narrow set of things but i'm super excited about we have this brand-new device, a windows laptop, what can you do with a voice front end in front of that? and what are ways where we can make it simpler and easier for a user to use their laptop? by talking to it? to my mind? there's a lot to be discovered there yeah, what we created is kind of step one in a journey toward, you know, making voice a modality that makes it easier for us to interact with our technology, which is what it's all about yeah, exactly tony morelan 45 31 and you had mentioned smart things there was a session at sdc titled enabling intelligent voice control on your iot devices and i know in that they talked about smart things and a lot about bixby tell me, what were some of the key takeaways for you from that session? roger kibbe 45 45 yeah so we introduced something called the bixby home platform, and it's a way of interfacing what you've done a big sweet voice with some of the smart things capabilities and the best way to explain it is for me to give some examples of what you can do and so first example is i might say hi, bixby turn on the dining room lights now if i'd set up dining room lights in smart things, boom, work great today but if i hadn't set up something called dining room lights, today, bixby re prompt you? or say, i can't find dining room lights, that's not a really good user experience sure so what you can set up with the bixby home platform is a lot more smarter logics so hi, bixby turn on the dining room lights, because we can say sorry, i can't find dining room lights, but you have kitchen lights, your bedroom lights, you have den lights? which one would you like to turn on? and so then you kind of the user asked for something that it didn't understand but at a set of airing out? it's like, well, i know you wanted to turn a light on yeah, here's the lights i can turn on and so i kind of prompted the user to, you know, what's the right can you want, much like we would do, frankly, a natural conversation tony morelan 47 00 exactly if roger kibbe 47 01 you ask me something that i didn't understand, i'd probably go can you clarify that? right yeah and so and this is a little bit of adding that kind of logic there so i think that's one great example of just a quote unquote, air becoming a success sure the other thing i want to highlight, and i think this is where it gets really interesting, and frankly, pretty sexy, to me, is where you're actually taking the voice input and you're taking what the iot device, its state and what it's sensing and combining them for some intelligent response okay, so let me let me give you an example so i could say hi bixby, turn on my air purifier, yeah, buy an air purifier, boom, today would turn it on all good but now with the bixby home platform, i can set it up so when i say hi bixby turn on the air purifier, instead of instantly turning on, i can go query the air purifier and say, hey, you know, what's, what's the air quality? okay, and if air quality was moderate, or acceptable, boom, i just turn it on and the default fan speed, maybe medium is on but let's say the air quality is poor well, then when i query it back and says, oh, air quality is poor now i can say, well, you want to turn it on and the air quality is poor i'll turn it on but i'm actually going to turn on and turn the fan to high so you're getting this this feedback loop? it's really, you're getting the user what they asked for, you're getting the state of an iot device you're combining those together? yeah and then the action is just smarter to my mind, this is pretty, i say, sexy and exciting because if you think about this, this is getting into much more intelligence sure the devices know, i know what you asked for, i know the state, i'm going to take the most intelligent action based upon those two inputs and that's what bixby home platform is all about it's really a development tool that lets you build experiences, like what i was just talking about tony morelan 48 59 yeah, i absolutely love that and i loved when he said in the session, that there's they're planning to open this up to partners and also to third party devices yeah, reach is going to be huge roger kibbe 49 10 absolutely well, i mean, i think that's one of the big things with a smartthings ecosystem, right is it's not just for samsung devices, but it's for, you know, devices from dozens or hundreds of manufacturers so if i can read some information on the device, i can get that information and i can do something very logical and just make things work more intelligently isn't that what we all want from our technology? tony morelan 49 32 exactly, yeah so on that note, you know, something i saw also very interesting in that session was the bixby home studio i absolutely love the whole idea of, you know, with your mouse, you can just drag and drop it and build out, you know, these experiences, all without coding yeah, that's on bixby home studio so like that is roger kibbe 49 50 the tooling behind what the experiences that i just talked about, so that you could intuitively built out, i use that air purifier example because actually, if you look at the session, they built out that exact experience and i think except i encourage people to go take a look at that because that is a really good way to kind of understand what i'm talking about, and hopefully get you excited about, huh, wow, there's something cool that i could build as an end user experience tony morelan 50 22 yeah and the demo they gave was pretty in depth i mean, this is not just a you know, they didn't just skim over the, you know, the concept of bixby home studio, they actually went through and built it out yes, it was pretty nice so that was an awesome session but i know there were a bunch of other sessions all kind of related to, you know, smart things in bixby what were some of the other sessions that you would suggest developers to check out? roger kibbe 50 44 yeah, so i would definitely check out the two bixby sessions that we that we mentioned and as you can see, a lot of the focus is on bixby and smart things yeah so if you're a bixby developer, i would suggest you check out some of the spark thing sessions and understand that, because i think a lot of the focus of what we're looking at is, hey, how do we get home controller devices to work super, super well with voice so that and that really is a dance between what bixby is doing and what smartthings is doing, and building that together and that's what the bixby home studio is all about so understand the two sides of the equation and then you'll understand and hopefully can build some really cool tony morelan 51 27 stuff yeah, i love the collaboration that's happening between smartthings and bixby so if developers want to learn more about bixby what's the what's the best way? roger kibbe 51 37 i yeah, so first thing would be go to bixbydevelopers com and that's a homepage for everything bixby that's download the studio, where we have our documentation, and just a bunch of information the other thing is we have a pretty active youtube channel so just look for bixby developers on youtube, youtube slash bixby developers, loads and then pretty much everything we do that's new, or we introduce a new youtube video, we would definitely post that to twitter okay, so that's twitter and that's bixby developers and then i do a weekly like tech tip of the week, like a two-minute video tutorial, and that's posted to twitter as well or also facebook so you can find that on facebook and then finally, i am the host of a podcast yeah, i guess focuses on all things voice not just bixby it is called bixby developers chat you can find it in your favorite podcast player or you should be able to ask your voice assistant hi bixby play bixby developers chat, podcast or another voice assistant and all of them should be able to play it so that is another resource tony morelan 52 45 that's awesome and it's a great podcast i have listened to your to your work you do you do an excellent job from one podcaster to another roger kibbe 52 52 well, thank you that's the kind of compliment you'd like to hear because we all understand the challenges and what you need to do to make a great podcast tony morelan 53 01 guests and let me remind everyone go check out that episode we did it was in the first season with roger, you can learn a bunch more about bixby and how to get started creating voice assisted capsules roger kibbe 53 11 well, thanks, tony really appreciate it and go check out those sdc videos to get a really more in depth understanding of the things we've talked about today tony morelan 53 19 thanks, roger banks one of the biggest announcements we made this past year is our latest watches now run on a new operating system called wear os powered by samsung and joining me on the podcast today is su yong kim, one of the software engineers here at samsung that has worked closely on our new watch ecosystem hey, sam thanks for joining me on the podcast today sooyeon kim 53 38 hi, tony thanks for having me today my name is yan qin and i'm a software engineer at samsung i'm very excited today to briefly recap our sdc sessions on samsung galaxy watch and where it was powered by samsung, which we jointly built with google tony morelan 53 55 yeah so there were several sessions related to the new watch ecosystem in the unified platform what would you say are the benefits of the new wear os powered by samsung? rooyen kim 54 04 so there are many, many benefits but first, we have created a seamless and deeply connected experience across not only samsung galaxy devices, but also for wear smartwatches and android smartphones with this new unified platform, we want to expand our ecosystem bring greater scale to our developer community, and at the same time, delight consumers with a variety of choices from watches to watch faces and apps tony morelan 54 33 yeah, it's true not only this, the developer community going to expand it but also the consumer reach is going to grow even wider can you talk about the growth of the smartwatch market over the past several years? sooyeon kim 54 44 well, the smartwatch market is continuously growing and in fact, according to counterpoint research shipments grew by 35% for the first quarter of 2021 compared to last year and after samsung galaxy watch for launch before august, we once again recognize this explosive growth and will continue to work hard to meet the demands of this growing market tony morelan 55 08 yeah, i agree as smartwatches get smarter than market demand is only going to increase can you tell me what are some of the new and exciting apps available for the new wear os powered by samsung? sooyeon kim 55 19 so users can enjoy familiar samsung apps like samsung pay smartthings and bixby but now google apps are also available like google maps, and youtube music we are also partnering with a wide variety of partners and developers on apps that are available for download from the play store on your watch on your phone there is also a dedicated category for watch apps, so you can easily browse and download them directly to your watch tony morelan 55 46 yeah, i love that youtube music is now available on galaxy watch for many people are buying the watch because they like to track workouts and have an active lifestyle and listening to music has always been a key component to working out can you tell me how is the new samsung galaxy watch for taking advantage of the health and wellness market? sooyeon kim 56 03 so we want to help users keep track of their health status and fitness activities so we brought groundbreaking health features and sophisticated sensors to our new samsung galaxy watch four in selected markets users can check body composition, blood pressure, electrocardiogram skeletal muscle mass based on the tablet grade water, fat percentage, and so on tony morelan 56 26 yeah, it's absolutely amazing that with this little device on your wrist, you can now check things like skeletal muscle mass and fat percentage and can conduct an ekg test can current android developers build watch apps for the new wireless powered by samsung and publish just as they've done before sooyeon kim 56 41 so we aim to make every step of watch app development from ease of bill to market launch as simple as possible with this new unified platform so yes, android developers, you can continue to build your apps within this familiar environment using android studio with watch emulators and existing and new wear os specific api's developers can also deploy and increase exposure for their apps with the watch apps category on the google play store tony morelan 57 11 yeah, so my background is in graphic design and for me, my biggest question was, were we going to build a new tool that would allow designers to create watch faces for the new unified platform? and when they learned the answer was yes, i was really excited so what are some of the new exciting features with the new west powered by samsung watch base design tool, watch face studio, sooyeon kim 57 31 anyone can download, design and publish watch faces for whereas on the play store, you don't have to learn how to code and just need to explore the new design tool watch face studio for more details there is a separate tech talk session on this tony morelan 57 45 yeah, so that session was called introducing the new watch face studio, it was a great overview of the new tool that showed just how easy it is for someone to create a watch face without any coding what are some of the other sessions from sdc21 that watch face developers should check out? sooyeon kim 57 59 oh, first there is the highlight session watch ecosystem or new era where we cover the new samsung galaxy watch ecosystem at a high level then there are tick tock sessions, build your app and the new watch ecosystem is where we specifically talk about watch app development and run through a range of api's by inviting a special guest from google and there is also a session on a new health platform that runs on where was powered by samsung tony morelan 58 27 yeah, there were a lot of great sessions all related to wearables, and lots of new opportunities for developers what is the best way for developers to learn more about the new watch ecosystem? sooyeon kim 58 36 for developers, i encourage visiting the samsung developers and the android developer sites, you can go to developer samsung com/galaxy-watch and also developer android com/where i really appreciate you coming on to the podcast today and giving your insight in to the new watch ecosystem super exciting times thanks tony thanks for inviting me so tony morelan 58 51 i'd like to welcome back to the podcast, eric clung injure, who leads developer relations at samsung eric and i did a pre sdc podcast where we gave a little preview on what to expect it sdc21, and highlights from some of our past developer conferences if you haven't checked out that episode yet, be sure to go back in and give it a listen eric, welcome back to the podcast eric cloninger 59 22 hey, tony, that was a lot of fun you know, we've been doing conferences for years and even though sdc21 was a virtual conference, it was a lot of work and a lot of work by a lot of people at samsung, yourself included and you know, i'd like to really give a shout out to everybody who put in a lot of effort a lot of late nights and all on it so i hope that the people who listened to the keynote and the spotlight session and all the technical sessions got something out of it yeah and hopefully next year, we can do this live yeah, tony morelan 59 54 no, i'm looking forward to that but yes, it was it was a great virtual conference so i've asked eric to join me on this episode to chat about the sdc session that i gave called grow your podcast audience with samsung eric cloninger 1 00 06 earlier this year, samsung made it really easy for device users to listen to podcasts can you share? what is the new podcast platform? tony morelan 1 00 14 yeah, so the new podcast platform, it's super easy to access from your device on the home screen, all you do is swipe left, which is our minus one screen that is samsung free, which is basically free entertainment from samsung all in one place there's four tabs there so there's the watch tab, which is if you wanted to stream tv, there's the read tab, if you want it to read news, there's the play tab, which is playing games and then of course, there is the listen tab, which is all about listening to podcasts eric cloninger 1 00 47 so who can access all of that content with samsung free? yeah, so tony morelan 1 00 50 samsung free is available on all of our latest devices so this is basically the note devices and s series going all the way back to s nine plus all the versions of z fold in z flip right now samsung free is only available in the us but we are expanding to europe soon i've been told that by the end of the year, we will be hitting some european countries eric cloninger 1 01 12 that's great so why did we launch a new podcast service? tony morelan 1 01 15 samsung's podcast strategy is to make it easy for the millions of samsung device users to listen to their favorite podcast shows and discover new episodes quickly and easily and also it gives publishers an impactful way to reach new listeners and really expand their audience eric cloninger 1 01 31 so how do those publishers bring their shows to samsung so grab tony morelan 1 01 34 your url from your podcast rss feed, and you can find that from your podcast hosting provider, take that rss feed in go to samsung podcast com sign up for a free samsung account and all you do is fill out a short form that allows you to import your rss feed url typically, it takes less than five minutes for you to fill out that form and that quickly, your show is now available on all of the samsung free devices eric cloninger 1 02 00 so what samsung free and the podcast platform doing to help publishers get their shows discovered tony morelan 1 02 05 so our editorial team is always looking for new and exciting shows to promote every week, we feature about seven new shows on our homepage and these promotional features have been extremely valuable for publishers in fact, there was one publisher in mind recently, marty ray project chats he saw a 2,000% increase in downloads just after being featured on our homepage so that was really great to see the value in that promotion for him eric cloninger 1 02 29 yeah, that's incredible numbers there so you're the host of our podcast, the samsung developer podcast is that how you got involved with the podcast platform team? tony morelan 1 02 39 exactly they reached out to me when they were first building the service and eventually asked if i would help promote it i said, absolutely that's when they asked me to present an sdc so you can check out my session and learn much more about the new podcast platform eric cloninger 1 02 53 right so the sdc content that is on the website is available for anyone to see at any time so are there any other sessions on the sdc21 website that potential podcasters and developers should check out? tony morelan 1 03 10 yeah, well, i would say what really got me excited was seeing all of the game focus sessions that we had up there so there's one session called galaxy store games focused developer friendly that was a great session on all the new game focused improvements for both gamers and developers and there was another session called games for everyone that samsung instant plays it's another great session for game developers to learn how to bring their html5 games directly to galaxy store, making it easy for users to play games without having to download and install anything eric cloninger 1 03 42 that is an exciting new way for people who are interested in playing casual games to get into something new without having to download hundreds of megabytes of content so i think that's going to be a game changer for all of us yeah, definitely so tony, thank you for giving us some insight on the new podcast platform and also for sitting down with different people associated with sdc21 it was a fantastic virtual conference and it was great to hear about the sessions on one ui, the incubation program smart things in bixby tony morelan 1 04 11 yeah and i also like the interviews that we did on our new watch ecosystem, you know, chatting with dan again on samsung internet that was great and, of course, our new podcast platform i'd like to thank all of my guests today and to you, eric for taking a moment to chat about sdc21 eric cloninger 1 04 27 thank you very much, tony closing 1 04 30 looking to start creating for samsung download the latest tools to code your next app, or get software for designing apps without coding at all sell your apps to the world on the samsung galaxy store check out developer samsung com today and start your journey with samsung tony morelan 1 04 46 the pow! podcast is brought to you by samsung developers and produced us by tony morelan
We use cookies to improve your experience on our website and to show you relevant advertising. Manage you settings for our cookies below.
These cookies are essential as they enable you to move around the website. This category cannot be disabled.
These cookies collect information about how you use our website. for example which pages you visit most often. All information these cookies collect is used to improve how the website works.
These cookies allow our website to remember choices you make (such as your user name, language or the region your are in) and tailor the website to provide enhanced features and content for you.
These cookies gather information about your browser habits. They remember that you've visited our website and share this information with other organizations such as advertisers.
You have successfully updated your cookie preferences.