Filter
-
Content Type
-
Category
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Recommendations
Filter
Develop Smart Signage
apigetting device capabilities using systeminfo api the following keys are available to obtain the device capability information using systeminfo api device capability keys battery camera content api database download api graphics input iotcon push api led location microphone multi-point touch multimedia transcoder network opengl® es platform profile sensor screen shell dynamic box sip speech tv usb vision web service system keys build information model name platform name tizen id the following table lists the keys to check if a device has a battery key type description version http //tizen org/feature/battery boolean the platform returns true for this key, if the device has a battery if it is true, w3c battery status api, battery property in systeminfo api, and power api must be supported 2 3 the following table lists the camera feature keys key type description version http //tizen org/feature/camera boolean the platform returns true for this key, if the device provides any kind of a camera if it is true, w3c getusermedia and html media capture apis are supported 2 2 1 http //tizen org/feature/camera back boolean the platform returns true for this key and the http //tizen org/feature/camera key, if the device provides a back-facing camera 2 2 1 http //tizen org/feature/camera back flash boolean the platform returns true for this key and the http //tizen org/feature/camera back key, if the device provides a back-facing camera with a flash 2 2 1 http //tizen org/feature/camera front boolean the platform returns true for this key and the http //tizen org/feature/camera key, if the device provides a front-facing camera 2 2 1 http //tizen org/feature/camera front flash boolean the platform returns true for this key and the http //tizen org/feature/camera front key, if the device provides a front-facing camera with a flash 2 2 1 the following table lists the keys related to content api features key type description version http //tizen org/feature/content scanning others boolean the platform returns true for this key, if the device supports the media scanning feature for "other"-type files which are not included in the media content types such as "image", "video", "sound" or "music" 4 0 the following table lists the database feature keys key type description version http //tizen org/feature/database encryption boolean the platform returns true for this key, if the device supports database encryption 2 2 1 the following table lists the keys to check if download api is supported on a tizen device key type description version http //tizen org/feature/download boolean the platform returns true for this key, if the device supports download api 2 3 http //tizen org/feature/network telephony boolean the platform returns true for this key, if the device supports all apis which require telephony feature if it is true, "cellular" in downloadnetworktype is supported 2 2 1 http //tizen org/feature/network wifi boolean the platform returns true for this key, if the device supports all apis which require wi-fi if it is true, "wifi" in downloadnetworktype is supported 2 2 1 the following table lists the graphics feature keys key type description version http //tizen org/feature/graphics acceleration boolean the platform returns true for this key, if the device supports graphics hardware acceleration 2 2 1 the following table lists the input feature keys key type description version http //tizen org/feature/input keyboard boolean the platform returns true for this key, if the device provides a built-in keyboard supporting any keyboard layout 2 2 1 http //tizen org/feature/input keyboard layout domstring the platform returns the keyboard layout such as qwerty supported by the built-in keyboard for this key and returns true for the http //tizen org/feature/input keyboard key if the device does not provide a built-in keyboard, the platform returns an empty string for this key and returns false for the http //tizen org/feature/input keyboard key 2 2 1 http //tizen org/feature/input rotating_bezel boolean the platform returns true for this key, if the device provides a built-in rotating bezel 2 3 1 the following table lists the keys related to iotcon api features key type description version http //tizen org/feature/iot ocf boolean the platform returns true for this key, if the device supports the iot connectivity if it is true, iotcon api is supported 4 0 the following table lists the led feature key key type description version http //tizen org/feature/led boolean the platform returns true for this key, if the device supports led 2 3 the following table lists the location feature keys key type description version http //tizen org/feature/location boolean the platform returns true for this key, if the device supports location positioning 2 2 1 http //tizen org/feature/location batch boolean the platform returns true for this key and the http //tizen org/feature/location key, if the device supports gps batch feature 2 3 http //tizen org/feature/location gps boolean the platform returns true and the http //tizen org/feature/location, if the device supports the global positioning system gps 2 2 1 http //tizen org/feature/location wps boolean the platform returns true for this key and the http //tizen org/feature/location key, if the device supports the wi-fi-based positioning system wps 2 2 1 the following table lists the microphone feature keys key type description version http //tizen org/feature/microphone boolean the platform returns true for this key, if the device supports a microphone if it is true, w3c getusermedia and html media capture apis are supported 2 2 1 http //tizen org/feature/media audio_recording boolean the platform returns true for this key, if the device supports to record audio files on a device if it is true, cordova media api is supported 3 0 the following table lists the multi-point touch feature keys key type description version http //tizen org/feature/multi_point_touch pinch_zoom boolean the platform returns true for this key, if the device supports pinch zoom gestures 2 2 1 http //tizen org/feature/multi_point_touch point_count long the platform returns the maximum number of supported multi-touch points for this key the platform returns a value less than 2 for this key, if the device does not support multi-point touch 2 2 1 the following table lists the multimedia transcoder feature key key type description version http //tizen org/feature/multimedia transcoder boolean the platform returns true for this key, if the device supports multimedia transcoder 2 3 the following table lists the network feature keys key type description version http //tizen org/capability/network bluetooth always_on boolean the platform returns true for this key, if the device must always enable bluetooth it means that an application cannot change the bluetooth's state visibility, connectivity, device name 2 3 http //tizen org/feature/network bluetooth boolean the platform returns true for this key, if the device supports bluetooth 2 2 1 http //tizen org/feature/network bluetooth audio call boolean the platform returns true for this key, if the device supports bluetooth handsfree profile hfp 2 3 http //tizen org/feature/network bluetooth audio media boolean the platform returns true for this key, if the device supports bluetooth advanced audio distribute profile a2dp 2 3 http //tizen org/feature/network bluetooth health boolean the platform returns true for this key, if the device supports bluetooth health device profile hdp 2 3 http //tizen org/feature/network bluetooth hid boolean the platform returns true for this key, if the device supports bluetooth human input device hid 2 3 http //tizen org/feature/network bluetooth le boolean the platform returns true for this key, if the device supports bluetooth low energy related methods in bluetooth api 2 3 http //tizen org/feature/network bluetooth opp boolean the platform returns true for this key, if the device supports bluetooth object push profile opp 2 3 http //tizen org/feature/network ethernet boolean the platform returns true for this key, if the device supports ethernet if it is true, "all" in downloadnetworktype and systeminfoethernetnetwork is supported 2 4 http //tizen org/feature/network internet boolean the platform returns true for this key, if the device supports internet 2 3 1 http //tizen org/feature/network net_proxy boolean the platform returns true for this key, if the device supports network proxy for internet connection 3 0 http //tizen org/feature/network nfc boolean the platform returns true for this key, if the device supports near field communication nfc 2 2 1 http //tizen org/feature/network nfc card_emulation boolean the platform returns true for this key, if the device is recognized by the nfc card readers 2 3 http //tizen org/feature/network nfc card_emulation hce boolean the platform returns true for this key, if the device supports nfc host-based card emulation 2 3 1 http //tizen org/feature/network nfc p2p boolean the platform returns true for this key, if the device supports p2p apis which require near field communication nfc 2 3 1 http //tizen org/feature/network nfc reserved_push boolean the platform returns true for this key and the http //tizen org/feature/network nfc key, if the device supports the nfc reserved push feature 2 2 1 http //tizen org/feature/network nfc tag boolean the platform returns true for this key, if the device supports tag apis which require near field communication nfc 2 3 1 http //tizen org/feature/network push boolean the platform returns true for this key, if the device supports push api which requires the ip push service provided by the tizen reference implementation 2 2 1 http //tizen org/feature/network secure_element boolean the platform returns true for this key, if the device supports secure elements 2 2 1 http //tizen org/feature/network telephony boolean the platform returns true for this key, if the device supports the telephony related apis 2 2 1 http //tizen org/feature/network telephony mms boolean the platform returns true for this key and the http //tizen org/feature/network telephony key, if the device supports mms 2 2 1 http //tizen org/feature/network wifi boolean the platform returns true for this key, if the device supports all apis which require wi-fi 2 2 1 http //tizen org/feature/network wifi direct boolean the platform returns true for this key and the http //tizen org/feature/network wifi key, if the device supports wi-fi direct™ 2 2 1 the following table lists the opengl® es feature keys key type description version http //tizen org/feature/opengles boolean the platform returns true for this key, if the device supports any opengl® es version and any texture format 2 2 1 http //tizen org/feature/opengles texture_format domstring the supported texture formats for the opengl® es e g "3dc/atc/etc/ptc" the platform returns an empty string for this key if opengl® es or compressed texture formats are not supported 2 3 http //tizen org/feature/opengles texture_format 3dc boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the 3dc texture format for opengl® es 2 2 1 http //tizen org/feature/opengles texture_format atc boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the atc texture format for opengl® es 2 2 1 http //tizen org/feature/opengles texture_format etc boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the etc texture format for opengl® es 2 2 1 http //tizen org/feature/opengles texture_format ptc boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the ptc texture format for opengl® es 2 2 1 http //tizen org/feature/opengles texture_format pvrtc boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the pvrtc texture format for opengl® es 2 2 1 http //tizen org/feature/opengles texture_format utc boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the utc texture format for opengl® es 2 2 1 http //tizen org/feature/opengles version 1_1 boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the opengl® es version 1 1 2 2 1 http //tizen org/feature/opengles version 2_0 boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the opengl® es version 2 0 2 2 1 the following table lists the platform feature keys key type description version http //tizen org/feature/platform core api version domstring the version of the tizen core api in the [major] [minor] format for example, "1 0" represents a web api version where the major version is 1 and the minor version is 0 if a device doesn't provide tizen core api, it returns an empty string "" 2 3 http //tizen org/feature/platform core cpu arch domstring the platform returns the cpu architecture e g "armv7", "x86" of a device 2 3 http //tizen org/feature/platform core cpu arch armv6 boolean the platform returns true for this key, if the device runs on the armv6 cpu architecture 2 2 1 http //tizen org/feature/platform core cpu arch armv7 boolean the platform returns true for this key, if the device runs on the armv7 cpu architecture 2 2 1 http //tizen org/feature/platform core cpu arch x86 boolean the platform returns true for this key, if the device runs on the x86 cpu architecture 2 2 1 http //tizen org/feature/platform core cpu frequency long the platform returns the frequency at which a core cpu is running unit mhz 2 3 http //tizen org/feature/platform core fpu arch domstring the platform returns the fpu architecture e g "vfpv3", "ssse3" of a device if there is no fpu on a device, it returns an empty string "" 2 3 http //tizen org/feature/platform core fpu arch sse2 boolean the platform returns true for this key, if the device runs on the sse2 fpu architecture 2 2 1 http //tizen org/feature/platform core fpu arch sse3 boolean the platform returns true for this key, if the device runs on the sse3 fpu architecture 2 2 1 http //tizen org/feature/platform core fpu arch ssse3 boolean the platform returns true for this key, if the device runs on the ssse3 fpu architecture 2 2 1 http //tizen org/feature/platform core fpu arch vfpv2 boolean the platform returns true for this key, if the device runs on the vfpv2 fpu architecture 2 2 1 http //tizen org/feature/platform core fpu arch vfpv3 boolean the platform returns true for this key, if the device runs on the vfpv3 fpu architecture 2 2 1 http //tizen org/feature/platform native api version domstring the version of the native api in the [major] [minor] format for example, 1 0 represents a native api version where the major version is 1 and the minor version is 0 if a device doesn't provide tizen native api, it returns an empty string "" 2 2 1 http //tizen org/feature/platform native osp_compatible boolean the platform returns true for this key, if the device supports the bada compatibility mode 2 2 1 http //tizen org/feature/platform version domstring the version of the platform in the [major] [minor] [patch version] format for example, 1 0 0 represents a platform version where the major version is 1 and the minor and build versions are 0 2 2 1 http //tizen org/feature/platform web api version domstring the version of the web api in the [major] [minor] format for example, 1 0 represents a web api version where the major version is 1 and the minor version is 0 2 2 1 http //tizen org/feature/platform version name domstring the platform return the platform version name e g tizen 2 0 magnolia, tizen 2 1 nectarine 2 3 the following table lists the profile feature keys key type description version http //tizen org/feature/profile systeminfoprofile the platform returns a compliant device profile such as "mobile", "wearable" for this key 2 2 1 the following table lists the sensor feature keys key type description version http //tizen org/feature/sensor accelerometer boolean the platform returns true for this key, if the device supports the acceleration sensor 2 2 1 http //tizen org/feature/sensor accelerometer wakeup boolean the platform returns true for this key and the http //tizen org/feature/sensor accelerometer key, if the device supports the wake-up operation by the acceleration sensor 2 2 1 http //tizen org/feature/sensor activity_recognition boolean the platform returns true for this key, if the device supports activity recognition 2 3 http //tizen org/feature/sensor barometer boolean the platform returns true for this key, if the device supports the barometer pressure sensor 2 2 1 http //tizen org/feature/sensor barometer wakeup boolean the platform returns true for this key and the http //tizen org/feature/sensor barometer key, if the device supports the wake-up operation by the barometer sensor 2 2 1 http //tizen org/feature/sensor gesture_recognition boolean the platform returns true for this key, if the device supports the gesture recognition 2 3 http //tizen org/feature/sensor gravity boolean the platform returns true for this key, if the device supports gravity 2 3 http //tizen org/feature/sensor gyroscope boolean the platform returns true for this key, if the device supports gyroscope 2 2 1 http //tizen org/feature/sensor gyroscope_rotation_vector boolean the platform returns true for this key, if the device supports gyroscope rotation vector 3 0 http //tizen org/feature/sensor gyroscope wakeup boolean the platform returns true for this key and the http //tizen org/feature/sensor gyroscope key, if the device supports the wake-up operation by the gyro sensor 2 2 1 http //tizen org/feature/sensor heart_rate_monitor boolean the platform returns true for this key if the device supports hrm 2 3 http //tizen org/feature/sensor heart_rate_monitor led_green boolean the platform returns true for this key if the device supports green light spectrum 2 3 1 http //tizen org/feature/sensor heart_rate_monitor led_ir boolean the platform returns true for this key if the device supports infrared spectrum 2 3 1 http //tizen org/feature/sensor heart_rate_monitor led_red boolean the platform returns true for this key if the device supports red light spectrum 2 3 1 http //tizen org/feature/sensor humidity boolean the platform returns true for this key, if the device supports the humidity sensor 2 3 http //tizen org/feature/sensor linear_acceleration boolean the platform returns true for this key, if the device supports the linear acceleration sensor 2 3 http //tizen org/feature/sensor magnetometer boolean the platform returns true for this key, if the device supports the magnetic sensor 2 2 1 http //tizen org/feature/sensor magnetometer wakeup boolean the platform returns true for this key and the http //tizen org/feature/sensor magnetometer key, if the device supports the wake-up operation by the magnetic sensor 2 2 1 http //tizen org/feature/sensor pedometer boolean the platform returns true for this key, if the device supports pedometer 2 3 http //tizen org/feature/sensor photometer boolean the platform returns true for this key, if the device supports the photometer sensor 2 2 1 http //tizen org/feature/sensor photometer wakeup boolean the platform returns true for this key and the http //tizen org/feature/sensor photometer key, if the device supports the wake-up operation by the photo sensor 2 2 1 http //tizen org/feature/sensor proximity boolean the platform returns true for this key, if the device supports the proximity sensor 2 2 1 http //tizen org/feature/sensor proximity wakeup boolean the platform returns true for this key and the http //tizen org/feature/sensor proximity key, if the device supports the wake-up operation by the proximity sensor 2 2 1 http //tizen org/feature/sensor rotation_vector boolean the platform returns true for this key, if the device supports the rotation vector sensor 2 3 http //tizen org/feature/sensor sleep_monitor boolean the platform returns true for this key, if the device supports sleep_monitor 3 0 http //tizen org/feature/sensor temperature boolean the platform returns true for this key, if the device supports the temperature sensor 2 3 http //tizen org/feature/sensor tiltmeter boolean the platform returns true for this key, if the device supports the tilt sensor 2 2 1 http //tizen org/feature/sensor tiltmeter wakeup boolean the platform returns true for this key and the http //tizen org/feature/sensor tiltmeter key, if the device supports the wake-up operation by the tilt sensor 2 2 1 http //tizen org/feature/sensor ultraviolet boolean the platform returns true for this key if the device supports ultraviolet sensor 2 3 http //tizen org/feature/sensor wrist_up boolean the platform returns true for this key if the device supports wrist_up 2 3 the following table lists the screen feature keys key type description version http //tizen org/feature/screen boolean the platform returns true for this key, if the device has a display screen 2 3 http //tizen org/feature/screen auto_rotation boolean the platform returns true for this key, if the device supports screen auto-rotation 2 2 1 http //tizen org/feature/screen bpp long the platform returns the number of bits per pixel supported by the device for this key the value depends on the screen, and is typically 8, 16, 24, or 32 2 2 1 http //tizen org/feature/screen coordinate_system size large boolean the platform returns true for this key, if the device supports the large screen size for the coordinate system 2 2 1 http //tizen org/feature/screen coordinate_system size normal boolean the platform returns true for this key, if the device supports the normal screen size for the coordinate system 2 2 1 http //tizen org/feature/screen dpi long the platform returns the number of dots per inch supported by the device for this key 2 2 1 http //tizen org/feature/screen height long the platform returns the height of the screen in pixels supported by the device for this key 2 2 1 http //tizen org/feature/screen output hdmi boolean the platform returns true for this key, if the device supports hdmi output 2 2 1 http //tizen org/feature/screen output rca boolean the platform returns true for this key, if the device supports rca output 2 2 1 http //tizen org/feature/screen shape circle boolean the platform returns true for this key, if the device supports a circular shaped screen 2 3 1 http //tizen org/feature/screen shape rectangle boolean the platform returns true for this key, if the device supports a rectangular shaped screen 2 3 1 http //tizen org/feature/screen size all boolean the platform can return true if the device supports any of screen sizes and resolutions if the device has a display screen, it returns true 2 2 1 http //tizen org/feature/screen size large boolean the platform can return true if the device supports the large screen size 2 2 1 http //tizen org/feature/screen size normal boolean the platform can return true the device supports the normal screen size 2 2 1 http //tizen org/feature/screen size normal 240 400 boolean the platform returns true for this key, if the device supports the 240 x 400 resolution for the normal screen size the platform can return true for multiple resolution keys 2 2 1 http //tizen org/feature/screen size normal 320 320 boolean the platform returns true for this key, if the device supports the 320 x 320 resolution for the normal screen size the platform can return true for multiple resolution keys 2 3 http //tizen org/feature/screen size normal 320 480 boolean the platform returns true for this key, if the device supports the 320 x 480 resolution for the normal screen size the platform can return true for multiple resolution keys 2 2 1 http //tizen org/feature/screen size normal 360 360 boolean the platform returns true for this key, if the device supports the 360 x 360 resolution for the normal screen size the platform can return true for multiple resolution keys 2 3 2 http //tizen org/feature/screen size normal 360 480 boolean the platform returns true for this key, if the device supports the 360 x 480 resolution for the normal screen size the platform can return true for multiple resolution keys 2 3 http //tizen org/feature/screen size normal 480 800 boolean the platform returns true for this key, if the device supports the 480 x 800 resolution for the normal screen size the platform can return true for multiple resolution keys 2 2 1 http //tizen org/feature/screen size normal 540 960 boolean the platform returns true for this key, if the device supports the 540 x 960 resolution for the normal screen size the platform can return true for multiple resolution keys 2 2 1 http //tizen org/feature/screen size normal 600 1024 boolean the platform returns true for this key, if the device supports the 600 x 1024 resolution for the normal screen size the platform can return true for multiple resolution keys 2 2 1 http //tizen org/feature/screen size normal 720 1280 boolean the platform returns true for this key, if the device supports the 720 x 1280 resolution for the normal screen size the platform can return true for multiple resolution keys 2 2 1 http //tizen org/feature/screen size normal 1080 1920 boolean the platform returns true for this key, if the device supports the 1080 x 1920 resolution for the normal screen size the platform can return true for multiple resolution keys 2 2 1 http //tizen org/feature/screen width long the platform returns the width of the screen in pixels supported by the device for this key 2 2 1 the following table lists the shell dynamic box feature keys key type description version http //tizen org/feature/shell appwidget boolean the platform returns true for this key, if the device supports the widget since 2 3 1, this key indicates only native widget 2 2 1 the following table lists the sip feature keys key type description version http //tizen org/feature/sip voip boolean the platform returns true for this key, if the device supports the voice over internet protocol voip 2 2 1 the following table lists the speech feature keys key type description version http //tizen org/feature/speech recognition boolean the platform returns true for this key, if the device supports speech recognition stt 2 2 1 http //tizen org/feature/speech synthesis boolean the platform returns true for this key, if the device supports speech synthesis tts 2 2 1 http //tizen org/feature/speech control boolean the platform returns true for this key, if the device supports speech control 4 0 the following table lists the tv feature keys key type description version http //tizen org/feature/tv audio boolean the platform returns true for this key, if the device supports control of tv audio if it is true, tvaudiocontrol api is supported 2 3 http //tizen org/feature/tv display boolean the platform returns true for this key, if the device supports getting information about the effects of stereoscopy 3d mode if it is true, tv display control api is supported 2 3 http //tizen org/feature/tv inputdevice boolean the platform returns true for this key, if the device supports receiving key events generated when the user presses a key of an input device for example a tv remote control if it is true, tv input device api is supported 2 3 http //tizen org/feature/tv pip boolean the platform returns true for this key, if the device supports control of tv window e g main window, pip window if it is true, tv window api is supported 2 3 the following table lists the usb feature keys key type description version http //tizen org/feature/usb accessory boolean the platform returns true for this key, if the device supports the usb client or accessory mode 2 2 1 http //tizen org/feature/usb host boolean the platform returns true for this key, if the device supports the usb host mode 2 2 1 the following table lists the vision feature keys key type description version http //tizen org/feature/vision face_recognition boolean the platform returns true for this key, if the device supports face recognition 2 2 1 http //tizen org/feature/vision image_recognition boolean the platform returns true for this key, if the device supports image recognition 2 2 1 http //tizen org/feature/vision qrcode_generation boolean the platform returns true for this key, if the device supports qr code generation 2 2 1 http //tizen org/feature/vision qrcode_recognition boolean the platform returns true for this key, if the device supports qr code recognition 2 2 1 the following table lists the web service model feature keys key type description version http //tizen org/feature/web service boolean the platform returns true for this key, if the device supports the web service model 2 3 the following table lists the build information key key type description version http //tizen org/system/build date domstring the platform returns the build date the format yyyy mm dd 2 3 http //tizen org/system/build string domstring the platform returns the build string including build date and time 2 3 http //tizen org/system/build time domstring the platform returns the build time the format hh mm ss 2 3 http //tizen org/system/manufacturer domstring the platform returns the device manufacturer's name 2 3 http //tizen org/system/build release domstring the platform returns the build version information the build version information is made when the platform image is created 3 0 http //tizen org/system/build type domstring the platform returns the build type, such as "user" or "eng" the build type is made when the platform image is created 3 0 http //tizen org/system/build variant domstring the platform returns the variant release information the variant release information is made when the platform image is created 3 0 http //tizen org/system/build id domstring the platform returns the build id the build id is made when the platform image is created 3 0 the following table lists the model name key key type description version http //tizen org/system/model_name domstring the platform returns the model name 2 3 the following table lists the platform system keys key type description version http //tizen org/system/platform communication_processor domstring the platform returns the device communication processor name 2 3 http //tizen org/system/platform name domstring the platform returns the platform name it must be tizen 2 2 1 http //tizen org/system/platform processor domstring the platform returns the device processor name 2 3 the following table lists the tizen id system key key type description version http //tizen org/system/tizenid domstring the platform returns the tizen id it is a randomly generated value based on the model name 2 3
Develop Smart TV
apigetting device capabilities using systeminfo api the following keys are available to obtain the device capability information using systeminfo api device capability keys battery camera content api database download api graphics input iotcon push api led location microphone multi-point touch multimedia transcoder network opengl® es platform profile sensor screen shell dynamic box sip speech tv usb vision web service system keys build information model name platform name tizen id the following table lists the keys to check if a device has a battery key type description version http //tizen org/feature/battery boolean the platform returns true for this key, if the device has a battery if it is true, w3c battery status api, battery property in systeminfo api, and power api must be supported 2 3 the following table lists the camera feature keys key type description version http //tizen org/feature/camera boolean the platform returns true for this key, if the device provides any kind of a camera if it is true, w3c getusermedia and html media capture apis are supported 2 2 1 http //tizen org/feature/camera back boolean the platform returns true for this key and the http //tizen org/feature/camera key, if the device provides a back-facing camera 2 2 1 http //tizen org/feature/camera back flash boolean the platform returns true for this key and the http //tizen org/feature/camera back key, if the device provides a back-facing camera with a flash 2 2 1 http //tizen org/feature/camera front boolean the platform returns true for this key and the http //tizen org/feature/camera key, if the device provides a front-facing camera 2 2 1 http //tizen org/feature/camera front flash boolean the platform returns true for this key and the http //tizen org/feature/camera front key, if the device provides a front-facing camera with a flash 2 2 1 the following table lists the keys related to content api features key type description version http //tizen org/feature/content scanning others boolean the platform returns true for this key, if the device supports the media scanning feature for "other"-type files which are not included in the media content types such as "image", "video", "sound" or "music" 4 0 the following table lists the database feature keys key type description version http //tizen org/feature/database encryption boolean the platform returns true for this key, if the device supports database encryption 2 2 1 the following table lists the keys to check if download api is supported on a tizen device key type description version http //tizen org/feature/download boolean the platform returns true for this key, if the device supports download api 2 3 http //tizen org/feature/network telephony boolean the platform returns true for this key, if the device supports all apis which require telephony feature if it is true, "cellular" in downloadnetworktype is supported 2 2 1 http //tizen org/feature/network wifi boolean the platform returns true for this key, if the device supports all apis which require wi-fi if it is true, "wifi" in downloadnetworktype is supported 2 2 1 the following table lists the graphics feature keys key type description version http //tizen org/feature/graphics acceleration boolean the platform returns true for this key, if the device supports graphics hardware acceleration 2 2 1 the following table lists the input feature keys key type description version http //tizen org/feature/input keyboard boolean the platform returns true for this key, if the device provides a built-in keyboard supporting any keyboard layout 2 2 1 http //tizen org/feature/input keyboard layout domstring the platform returns the keyboard layout such as qwerty supported by the built-in keyboard for this key and returns true for the http //tizen org/feature/input keyboard key if the device does not provide a built-in keyboard, the platform returns an empty string for this key and returns false for the http //tizen org/feature/input keyboard key 2 2 1 http //tizen org/feature/input rotating_bezel boolean the platform returns true for this key, if the device provides a built-in rotating bezel 2 3 1 the following table lists the keys related to iotcon api features key type description version http //tizen org/feature/iot ocf boolean the platform returns true for this key, if the device supports the iot connectivity if it is true, iotcon api is supported 4 0 the following table lists the led feature key key type description version http //tizen org/feature/led boolean the platform returns true for this key, if the device supports led 2 3 the following table lists the location feature keys key type description version http //tizen org/feature/location boolean the platform returns true for this key, if the device supports location positioning 2 2 1 http //tizen org/feature/location batch boolean the platform returns true for this key and the http //tizen org/feature/location key, if the device supports gps batch feature 2 3 http //tizen org/feature/location gps boolean the platform returns true and the http //tizen org/feature/location, if the device supports the global positioning system gps 2 2 1 http //tizen org/feature/location wps boolean the platform returns true for this key and the http //tizen org/feature/location key, if the device supports the wi-fi-based positioning system wps 2 2 1 the following table lists the microphone feature keys key type description version http //tizen org/feature/microphone boolean the platform returns true for this key, if the device supports a microphone if it is true, w3c getusermedia and html media capture apis are supported 2 2 1 http //tizen org/feature/media audio_recording boolean the platform returns true for this key, if the device supports to record audio files on a device if it is true, cordova media api is supported 3 0 the following table lists the multi-point touch feature keys key type description version http //tizen org/feature/multi_point_touch pinch_zoom boolean the platform returns true for this key, if the device supports pinch zoom gestures 2 2 1 http //tizen org/feature/multi_point_touch point_count long the platform returns the maximum number of supported multi-touch points for this key the platform returns a value less than 2 for this key, if the device does not support multi-point touch 2 2 1 the following table lists the multimedia transcoder feature key key type description version http //tizen org/feature/multimedia transcoder boolean the platform returns true for this key, if the device supports multimedia transcoder 2 3 the following table lists the network feature keys key type description version http //tizen org/capability/network bluetooth always_on boolean the platform returns true for this key, if the device must always enable bluetooth it means that an application cannot change the bluetooth's state visibility, connectivity, device name 2 3 http //tizen org/feature/network bluetooth boolean the platform returns true for this key, if the device supports bluetooth 2 2 1 http //tizen org/feature/network bluetooth audio call boolean the platform returns true for this key, if the device supports bluetooth handsfree profile hfp 2 3 http //tizen org/feature/network bluetooth audio media boolean the platform returns true for this key, if the device supports bluetooth advanced audio distribute profile a2dp 2 3 http //tizen org/feature/network bluetooth health boolean the platform returns true for this key, if the device supports bluetooth health device profile hdp 2 3 http //tizen org/feature/network bluetooth hid boolean the platform returns true for this key, if the device supports bluetooth human input device hid 2 3 http //tizen org/feature/network bluetooth le boolean the platform returns true for this key, if the device supports bluetooth low energy related methods in bluetooth api 2 3 http //tizen org/feature/network bluetooth opp boolean the platform returns true for this key, if the device supports bluetooth object push profile opp 2 3 http //tizen org/feature/network ethernet boolean the platform returns true for this key, if the device supports ethernet if it is true, "all" in downloadnetworktype and systeminfoethernetnetwork is supported 2 4 http //tizen org/feature/network internet boolean the platform returns true for this key, if the device supports internet 2 3 1 http //tizen org/feature/network net_proxy boolean the platform returns true for this key, if the device supports network proxy for internet connection 3 0 http //tizen org/feature/network nfc boolean the platform returns true for this key, if the device supports near field communication nfc 2 2 1 http //tizen org/feature/network nfc card_emulation boolean the platform returns true for this key, if the device is recognized by the nfc card readers 2 3 http //tizen org/feature/network nfc card_emulation hce boolean the platform returns true for this key, if the device supports nfc host-based card emulation 2 3 1 http //tizen org/feature/network nfc p2p boolean the platform returns true for this key, if the device supports p2p apis which require near field communication nfc 2 3 1 http //tizen org/feature/network nfc reserved_push boolean the platform returns true for this key and the http //tizen org/feature/network nfc key, if the device supports the nfc reserved push feature 2 2 1 http //tizen org/feature/network nfc tag boolean the platform returns true for this key, if the device supports tag apis which require near field communication nfc 2 3 1 http //tizen org/feature/network push boolean the platform returns true for this key, if the device supports push api which requires the ip push service provided by the tizen reference implementation 2 2 1 http //tizen org/feature/network secure_element boolean the platform returns true for this key, if the device supports secure elements 2 2 1 http //tizen org/feature/network telephony boolean the platform returns true for this key, if the device supports the telephony related apis 2 2 1 http //tizen org/feature/network telephony mms boolean the platform returns true for this key and the http //tizen org/feature/network telephony key, if the device supports mms 2 2 1 http //tizen org/feature/network wifi boolean the platform returns true for this key, if the device supports all apis which require wi-fi 2 2 1 http //tizen org/feature/network wifi direct boolean the platform returns true for this key and the http //tizen org/feature/network wifi key, if the device supports wi-fi direct™ 2 2 1 the following table lists the opengl® es feature keys key type description version http //tizen org/feature/opengles boolean the platform returns true for this key, if the device supports any opengl® es version and any texture format 2 2 1 http //tizen org/feature/opengles texture_format domstring the supported texture formats for the opengl® es e g "3dc/atc/etc/ptc" the platform returns an empty string for this key if opengl® es or compressed texture formats are not supported 2 3 http //tizen org/feature/opengles texture_format 3dc boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the 3dc texture format for opengl® es 2 2 1 http //tizen org/feature/opengles texture_format atc boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the atc texture format for opengl® es 2 2 1 http //tizen org/feature/opengles texture_format etc boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the etc texture format for opengl® es 2 2 1 http //tizen org/feature/opengles texture_format ptc boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the ptc texture format for opengl® es 2 2 1 http //tizen org/feature/opengles texture_format pvrtc boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the pvrtc texture format for opengl® es 2 2 1 http //tizen org/feature/opengles texture_format utc boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the utc texture format for opengl® es 2 2 1 http //tizen org/feature/opengles version 1_1 boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the opengl® es version 1 1 2 2 1 http //tizen org/feature/opengles version 2_0 boolean the platform returns true for this key and the http //tizen org/feature/opengles key, if the device supports the opengl® es version 2 0 2 2 1 the following table lists the platform feature keys key type description version http //tizen org/feature/platform core api version domstring the version of the tizen core api in the [major] [minor] format for example, "1 0" represents a web api version where the major version is 1 and the minor version is 0 if a device doesn't provide tizen core api, it returns an empty string "" 2 3 http //tizen org/feature/platform core cpu arch domstring the platform returns the cpu architecture e g "armv7", "x86" of a device 2 3 http //tizen org/feature/platform core cpu arch armv6 boolean the platform returns true for this key, if the device runs on the armv6 cpu architecture 2 2 1 http //tizen org/feature/platform core cpu arch armv7 boolean the platform returns true for this key, if the device runs on the armv7 cpu architecture 2 2 1 http //tizen org/feature/platform core cpu arch x86 boolean the platform returns true for this key, if the device runs on the x86 cpu architecture 2 2 1 http //tizen org/feature/platform core cpu frequency long the platform returns the frequency at which a core cpu is running unit mhz 2 3 http //tizen org/feature/platform core fpu arch domstring the platform returns the fpu architecture e g "vfpv3", "ssse3" of a device if there is no fpu on a device, it returns an empty string "" 2 3 http //tizen org/feature/platform core fpu arch sse2 boolean the platform returns true for this key, if the device runs on the sse2 fpu architecture 2 2 1 http //tizen org/feature/platform core fpu arch sse3 boolean the platform returns true for this key, if the device runs on the sse3 fpu architecture 2 2 1 http //tizen org/feature/platform core fpu arch ssse3 boolean the platform returns true for this key, if the device runs on the ssse3 fpu architecture 2 2 1 http //tizen org/feature/platform core fpu arch vfpv2 boolean the platform returns true for this key, if the device runs on the vfpv2 fpu architecture 2 2 1 http //tizen org/feature/platform core fpu arch vfpv3 boolean the platform returns true for this key, if the device runs on the vfpv3 fpu architecture 2 2 1 http //tizen org/feature/platform native api version domstring the version of the native api in the [major] [minor] format for example, 1 0 represents a native api version where the major version is 1 and the minor version is 0 if a device doesn't provide tizen native api, it returns an empty string "" 2 2 1 http //tizen org/feature/platform native osp_compatible boolean the platform returns true for this key, if the device supports the bada compatibility mode 2 2 1 http //tizen org/feature/platform version domstring the version of the platform in the [major] [minor] [patch version] format for example, 1 0 0 represents a platform version where the major version is 1 and the minor and build versions are 0 2 2 1 http //tizen org/feature/platform web api version domstring the version of the web api in the [major] [minor] format for example, 1 0 represents a web api version where the major version is 1 and the minor version is 0 2 2 1 http //tizen org/feature/platform version name domstring the platform return the platform version name e g tizen 2 0 magnolia, tizen 2 1 nectarine 2 3 the following table lists the profile feature keys key type description version http //tizen org/feature/profile systeminfoprofile the platform returns a compliant device profile such as "mobile", "wearable" for this key 2 2 1 the following table lists the sensor feature keys key type description version http //tizen org/feature/sensor accelerometer boolean the platform returns true for this key, if the device supports the acceleration sensor 2 2 1 http //tizen org/feature/sensor accelerometer wakeup boolean the platform returns true for this key and the http //tizen org/feature/sensor accelerometer key, if the device supports the wake-up operation by the acceleration sensor 2 2 1 http //tizen org/feature/sensor activity_recognition boolean the platform returns true for this key, if the device supports activity recognition 2 3 http //tizen org/feature/sensor barometer boolean the platform returns true for this key, if the device supports the barometer pressure sensor 2 2 1 http //tizen org/feature/sensor barometer wakeup boolean the platform returns true for this key and the http //tizen org/feature/sensor barometer key, if the device supports the wake-up operation by the barometer sensor 2 2 1 http //tizen org/feature/sensor gesture_recognition boolean the platform returns true for this key, if the device supports the gesture recognition 2 3 http //tizen org/feature/sensor gravity boolean the platform returns true for this key, if the device supports gravity 2 3 http //tizen org/feature/sensor gyroscope boolean the platform returns true for this key, if the device supports gyroscope 2 2 1 http //tizen org/feature/sensor gyroscope_rotation_vector boolean the platform returns true for this key, if the device supports gyroscope rotation vector 3 0 http //tizen org/feature/sensor gyroscope wakeup boolean the platform returns true for this key and the http //tizen org/feature/sensor gyroscope key, if the device supports the wake-up operation by the gyro sensor 2 2 1 http //tizen org/feature/sensor heart_rate_monitor boolean the platform returns true for this key if the device supports hrm 2 3 http //tizen org/feature/sensor heart_rate_monitor led_green boolean the platform returns true for this key if the device supports green light spectrum 2 3 1 http //tizen org/feature/sensor heart_rate_monitor led_ir boolean the platform returns true for this key if the device supports infrared spectrum 2 3 1 http //tizen org/feature/sensor heart_rate_monitor led_red boolean the platform returns true for this key if the device supports red light spectrum 2 3 1 http //tizen org/feature/sensor humidity boolean the platform returns true for this key, if the device supports the humidity sensor 2 3 http //tizen org/feature/sensor linear_acceleration boolean the platform returns true for this key, if the device supports the linear acceleration sensor 2 3 http //tizen org/feature/sensor magnetometer boolean the platform returns true for this key, if the device supports the magnetic sensor 2 2 1 http //tizen org/feature/sensor magnetometer wakeup boolean the platform returns true for this key and the http //tizen org/feature/sensor magnetometer key, if the device supports the wake-up operation by the magnetic sensor 2 2 1 http //tizen org/feature/sensor pedometer boolean the platform returns true for this key, if the device supports pedometer 2 3 http //tizen org/feature/sensor photometer boolean the platform returns true for this key, if the device supports the photometer sensor 2 2 1 http //tizen org/feature/sensor photometer wakeup boolean the platform returns true for this key and the http //tizen org/feature/sensor photometer key, if the device supports the wake-up operation by the photo sensor 2 2 1 http //tizen org/feature/sensor proximity boolean the platform returns true for this key, if the device supports the proximity sensor 2 2 1 http //tizen org/feature/sensor proximity wakeup boolean the platform returns true for this key and the http //tizen org/feature/sensor proximity key, if the device supports the wake-up operation by the proximity sensor 2 2 1 http //tizen org/feature/sensor rotation_vector boolean the platform returns true for this key, if the device supports the rotation vector sensor 2 3 http //tizen org/feature/sensor sleep_monitor boolean the platform returns true for this key, if the device supports sleep_monitor 3 0 http //tizen org/feature/sensor temperature boolean the platform returns true for this key, if the device supports the temperature sensor 2 3 http //tizen org/feature/sensor tiltmeter boolean the platform returns true for this key, if the device supports the tilt sensor 2 2 1 http //tizen org/feature/sensor tiltmeter wakeup boolean the platform returns true for this key and the http //tizen org/feature/sensor tiltmeter key, if the device supports the wake-up operation by the tilt sensor 2 2 1 http //tizen org/feature/sensor ultraviolet boolean the platform returns true for this key if the device supports ultraviolet sensor 2 3 http //tizen org/feature/sensor wrist_up boolean the platform returns true for this key if the device supports wrist_up 2 3 the following table lists the screen feature keys key type description version http //tizen org/feature/screen boolean the platform returns true for this key, if the device has a display screen 2 3 http //tizen org/feature/screen auto_rotation boolean the platform returns true for this key, if the device supports screen auto-rotation 2 2 1 http //tizen org/feature/screen bpp long the platform returns the number of bits per pixel supported by the device for this key the value depends on the screen, and is typically 8, 16, 24, or 32 2 2 1 http //tizen org/feature/screen coordinate_system size large boolean the platform returns true for this key, if the device supports the large screen size for the coordinate system 2 2 1 http //tizen org/feature/screen coordinate_system size normal boolean the platform returns true for this key, if the device supports the normal screen size for the coordinate system 2 2 1 http //tizen org/feature/screen dpi long the platform returns the number of dots per inch supported by the device for this key 2 2 1 http //tizen org/feature/screen height long the platform returns the height of the screen in pixels supported by the device for this key 2 2 1 http //tizen org/feature/screen output hdmi boolean the platform returns true for this key, if the device supports hdmi output 2 2 1 http //tizen org/feature/screen output rca boolean the platform returns true for this key, if the device supports rca output 2 2 1 http //tizen org/feature/screen shape circle boolean the platform returns true for this key, if the device supports a circular shaped screen 2 3 1 http //tizen org/feature/screen shape rectangle boolean the platform returns true for this key, if the device supports a rectangular shaped screen 2 3 1 http //tizen org/feature/screen size all boolean the platform can return true if the device supports any of screen sizes and resolutions if the device has a display screen, it returns true 2 2 1 http //tizen org/feature/screen size large boolean the platform can return true if the device supports the large screen size 2 2 1 http //tizen org/feature/screen size normal boolean the platform can return true the device supports the normal screen size 2 2 1 http //tizen org/feature/screen size normal 240 400 boolean the platform returns true for this key, if the device supports the 240 x 400 resolution for the normal screen size the platform can return true for multiple resolution keys 2 2 1 http //tizen org/feature/screen size normal 320 320 boolean the platform returns true for this key, if the device supports the 320 x 320 resolution for the normal screen size the platform can return true for multiple resolution keys 2 3 http //tizen org/feature/screen size normal 320 480 boolean the platform returns true for this key, if the device supports the 320 x 480 resolution for the normal screen size the platform can return true for multiple resolution keys 2 2 1 http //tizen org/feature/screen size normal 360 360 boolean the platform returns true for this key, if the device supports the 360 x 360 resolution for the normal screen size the platform can return true for multiple resolution keys 2 3 2 http //tizen org/feature/screen size normal 360 480 boolean the platform returns true for this key, if the device supports the 360 x 480 resolution for the normal screen size the platform can return true for multiple resolution keys 2 3 http //tizen org/feature/screen size normal 480 800 boolean the platform returns true for this key, if the device supports the 480 x 800 resolution for the normal screen size the platform can return true for multiple resolution keys 2 2 1 http //tizen org/feature/screen size normal 540 960 boolean the platform returns true for this key, if the device supports the 540 x 960 resolution for the normal screen size the platform can return true for multiple resolution keys 2 2 1 http //tizen org/feature/screen size normal 600 1024 boolean the platform returns true for this key, if the device supports the 600 x 1024 resolution for the normal screen size the platform can return true for multiple resolution keys 2 2 1 http //tizen org/feature/screen size normal 720 1280 boolean the platform returns true for this key, if the device supports the 720 x 1280 resolution for the normal screen size the platform can return true for multiple resolution keys 2 2 1 http //tizen org/feature/screen size normal 1080 1920 boolean the platform returns true for this key, if the device supports the 1080 x 1920 resolution for the normal screen size the platform can return true for multiple resolution keys 2 2 1 http //tizen org/feature/screen width long the platform returns the width of the screen in pixels supported by the device for this key 2 2 1 the following table lists the shell dynamic box feature keys key type description version http //tizen org/feature/shell appwidget boolean the platform returns true for this key, if the device supports the widget since 2 3 1, this key indicates only native widget 2 2 1 the following table lists the sip feature keys key type description version http //tizen org/feature/sip voip boolean the platform returns true for this key, if the device supports the voice over internet protocol voip 2 2 1 the following table lists the speech feature keys key type description version http //tizen org/feature/speech recognition boolean the platform returns true for this key, if the device supports speech recognition stt 2 2 1 http //tizen org/feature/speech synthesis boolean the platform returns true for this key, if the device supports speech synthesis tts 2 2 1 http //tizen org/feature/speech control boolean the platform returns true for this key, if the device supports speech control 4 0 the following table lists the tv feature keys key type description version http //tizen org/feature/tv audio boolean the platform returns true for this key, if the device supports control of tv audio if it is true, tvaudiocontrol api is supported 2 3 http //tizen org/feature/tv display boolean the platform returns true for this key, if the device supports getting information about the effects of stereoscopy 3d mode if it is true, tv display control api is supported 2 3 http //tizen org/feature/tv inputdevice boolean the platform returns true for this key, if the device supports receiving key events generated when the user presses a key of an input device for example a tv remote control if it is true, tv input device api is supported 2 3 http //tizen org/feature/tv pip boolean the platform returns true for this key, if the device supports control of tv window e g main window, pip window if it is true, tv window api is supported 2 3 the following table lists the usb feature keys key type description version http //tizen org/feature/usb accessory boolean the platform returns true for this key, if the device supports the usb client or accessory mode 2 2 1 http //tizen org/feature/usb host boolean the platform returns true for this key, if the device supports the usb host mode 2 2 1 the following table lists the vision feature keys key type description version http //tizen org/feature/vision face_recognition boolean the platform returns true for this key, if the device supports face recognition 2 2 1 http //tizen org/feature/vision image_recognition boolean the platform returns true for this key, if the device supports image recognition 2 2 1 http //tizen org/feature/vision qrcode_generation boolean the platform returns true for this key, if the device supports qr code generation 2 2 1 http //tizen org/feature/vision qrcode_recognition boolean the platform returns true for this key, if the device supports qr code recognition 2 2 1 the following table lists the web service model feature keys key type description version http //tizen org/feature/web service boolean the platform returns true for this key, if the device supports the web service model 2 3 the following table lists the build information key key type description version http //tizen org/system/build date domstring the platform returns the build date the format yyyy mm dd 2 3 http //tizen org/system/build string domstring the platform returns the build string including build date and time 2 3 http //tizen org/system/build time domstring the platform returns the build time the format hh mm ss 2 3 http //tizen org/system/manufacturer domstring the platform returns the device manufacturer's name 2 3 http //tizen org/system/build release domstring the platform returns the build version information the build version information is made when the platform image is created 3 0 http //tizen org/system/build type domstring the platform returns the build type, such as "user" or "eng" the build type is made when the platform image is created 3 0 http //tizen org/system/build variant domstring the platform returns the variant release information the variant release information is made when the platform image is created 3 0 http //tizen org/system/build id domstring the platform returns the build id the build id is made when the platform image is created 3 0 the following table lists the model name key key type description version http //tizen org/system/model_name domstring the platform returns the model name 2 3 the following table lists the platform system keys key type description version http //tizen org/system/platform communication_processor domstring the platform returns the device communication processor name 2 3 http //tizen org/system/platform name domstring the platform returns the platform name it must be tizen 2 2 1 http //tizen org/system/platform processor domstring the platform returns the device processor name 2 3 the following table lists the tizen id system key key type description version http //tizen org/system/tizenid domstring the platform returns the tizen id it is a randomly generated value based on the model name 2 3
Develop Smart TV
apibilling api to use samsung product api, <script type="text/javascript" src="$webapis/webapis/webapis js"></script> should be loaded in index html this module defines the billing samsung checkout functionalities provided by the tizen samsung product api since 2 4 product tv privilege level public privilege http //developer samsung com/privilege/billing summary of interfaces and methods interface method billingmanagerobject billingmanager void buyitem domstring appid, tvservertype servertype, domstring paymentdetails, billingbuydatasuccesscallback onsuccess, optional errorcallback? onerror ;void getproductslist domstring appid, domstring countrycode, domstring pagesize, domstring pagenumber, domstring checkvalue, tvservertype servertype, billingproductslistcallback onsuccess, optional errorcallback? onerror ;void applyinvoice domstring appid, domstring customid, domstring invoiceid, domstring countrycode, tvservertype servertype, billingapplyinvoicecallback onsuccess, optional errorcallback? onerror ;void verifyinvoice domstring appid, domstring customid, domstring invoiceid, domstring countrycode, tvservertype servertype, billingverifyinvoicecallback onsuccess, optional errorcallback? onerror ;void getservicecountryavailability domstring appid, domstring[] countrycodes, domstring checkvalue, tvservertype servertype, billinggetservicecountryavailabilitycallback onsuccess, optional errorcallback? onerror ;void getuserpurchaselist domstring appid, domstring customid, domstring countrycode, domstring pagenumber, domstring checkvalue, tvservertype servertype, billinggetuserpurchaselistcallback onsuccess, optional errorcallback? onerror ;void cancelsubscription domstring appid, domstring invoiceid, domstring customid, domstring countrycode, tvservertype servertype, billingcancelsubscriptioncallback onsuccess, optional errorcallback? onerror ;void isserviceavailable tvservertype servertype, billingisserviceavailablecallback onsuccess, optional errorcallback? onerror ;domstring getversion ; billingbuydatasuccesscallback void onsuccess billingbuydata data ; billingbuydata billingproductslistcallback void onsuccess productslistdata data ; billingapplyinvoicecallback void onsuccess applyinvoicedata data ; billingverifyinvoicecallback void onsuccess verifyinvoicedata data ; billinggetuserpurchaselistcallback void onsuccess userpurchasedata data ; billinggetservicecountryavailabilitycallback void onsuccess servicecountryavailabilitydata data ; billingcancelsubscriptioncallback void onsuccess cancelsubscriptiondata data ; billingisserviceavailablecallback void onsuccess serviceavailabledata data ; 1 type definitions 1 1 tvservertype specifies billing server types enum tvservertype { "dev", "prd" }; the following values are supported dev staging server prd operating server 1 2 historytype specifies product types for the purchase history enum historytype { "all", "subscription", "non-subscription" }; the following values are supported all all product types this type is not supported since 2019 product subscription subscription products only non-subscription non-subscription products only 1 3 productslistdata defines a dictionary for product list data returned by the getproductslist api dictionary productslistdata { domstring apiresult; }; the following values are supported apiresult getproductslist api result dictionary in json format this value is json string type data, so please use it by json parsing after you parse this value, you can use it in productslistapiresult format at the below 1 4 productslistapiresult defines a dictionary for the productslistdata dictionary apiresult parameter dictionary productslistapiresult { domstring cpstatus; domstring? cpresult; long totalcount; domstring checkvalue; itemdetails[]? itemdetails; }; the following values are supported cpstatus dpi result code returns "100000" on success and other codes on failure cpresult [optional] optional additional message "eof" last page of the product list "hasnext true" product list has further pages other error message, depending on the dpi result code totalcount total number of invoices checkvalue security check value itemdetails [optional] optional dictionary in json format 1 5 itemdetails defines a dictionary for the productslistapiresult dictionary 'itemdetails' parameter dictionary itemdetails { long seq; domstring itemid; domstring itemtitle; long itemtype; long? period; long price; domstring currencyid; productsubscriptioninfo? subscriptioninfo; }; the following values are supported seq sequence number 1 ~ totalcount itemid product id itemtitle product name itemtype product type "1" consumable "2" non-consumable "3" limited-period "4" subscription period [optional] limited period product duration, in minutes price product price, in "xxxx yy" format currencyid currency code subscriptioninfo [optional] subscription information mandatory for subscription products 1 6 productsubscriptioninfo defines a dictionary for the itemdetails dictionary 'subscriptioninfo' parameter dictionary productsubscriptioninfo { domstring paymentcycleperiod; long paymentcyclefrq; long paymentcycle; }; the following values are supported paymentcycleperiod subscription payment period "d" days "w" weeks "m" months paymentcyclefrq payment cycle frequency paymentcycle number of payment cycles 1 7 applyinvoicedata defines a dictionary for data returned by the applyinvoice api dictionary applyinvoicedata { domstring apiresult; }; the following values are supported apiresult applyinvoice api result dictionary in json format this value is json string type data, so please use it by json parsing after you parse this value, you can use it in applyinvoiceapiresult format at the below 1 8 applyinvoiceapiresult defines a dictionary for the applyinvoicedata dictionary 'apiresult' parameter dictionary applyinvoiceapiresult { domstring cpstatus; domstring? cpresult; domstring appliedtime; }; the following values are supported cpstatus dpi result code returns "100000" on success and other codes on failure cpresult [optional] optional additional message "success" other error message, depending on the dpi result code appliedtime time product applied, in 14-digit utc time 1 9 verifyinvoicedata defines a dictionary for data returned by the verifyinvoice api dictionary verifyinvoicedata { domstring apiresult; }; the following values are supported apiresult verifyinvoice api result dictionary in json format this value is json string type data, so please use it by json parsing after you parse this value, you can use it in verifyinvoiceapiresult format at the below 1 10 verifyinvoiceapiresult defines a dictionary for the verifyinvoicedata dictionary 'apiresult' parameter dictionary verifyinvoiceapiresult { domstring cpstatus; domstring? cpresult; domstring appid; domstring invoiceid; }; the following values are supported cpstatus dpi result code returns "100000" on success and other codes on failure cpresult [optional] optional additional message "success" other error message, depending on the dpi result code appid application id invoiceid invoice id that you want to verify whether a purchase was successful 1 11 userpurchasedata defines a dictionary for data returned by the getuserpurchaselist api dictionary userpurchasedata { domstring apiresult; }; the following values are supported apiresult getuserpurchaselist api result dictionary in json format this value is json string type data, so please use it by json parsing after you parse this value, you can use it in getuserpurchaselistapiresult format at the below 1 12 getuserpurchaselistapiresult defines a dictionary for the userpurchasedata dictionary 'apiresult' parameter dictionary getuserpurchaselistapiresult { domstring cpstatus; domstring? cpresult; long totalcount; domstring checkvalue; invoicedetails[]? invoicedetails; }; the following values are supported cpstatus it returns "100000" in success, [errorcode] in failure refer to dpi error code cpresult [optional] optional additional message "eof" last page of the product list "hasnext true" product list has further pages other error message, depending on the dpi result code totalcount total number of invoices checkvalue security check value invoicedetails [optional] optional dictionary in json format 1 13 invoicedetails defines a dictionary for the getuserpurchaselistapiresult dictionary 'invoicedetails' parameter dictionary invoicedetails { long seq; domstring invoiceid; domstring itemid; domstring itemtitle; long itemtype; domstring ordertime; long? period; long price; domstring ordercurrencyid; boolean cancelstatus; boolean appliedstatus; domstring? appliedtime; domstring? limitendtime; domstring? remaintime; purchasesubscriptioninfo? subscriptioninfo; }; the following values are supported seq sequence number 1 ~ totalcount invoiceid invoice id of this purchase history itemid product id itemtitle product name itemtype product type "1" consumable "2" non-consumable "3" limited-period "4" subscription ordertime payment time, in 14-digit utc time period [optional] limited period product duration, in minutes price product price, in "xxxx yy" format ordercurrencyid currency code cancelstatus cancellation status "true" sale canceled "false" sale ongoing appliedstatus product application status "true" applied "false" not applied appliedtime [optional] time product applied, in 14-digit utc time limitendtime [optional] limited period product end time, in 14-digit utc time remaintime [optional] limited period product time remaining, in seconds subscriptioninfo [optional] subscription information mandatory for subscription products 1 14 purchasesubscriptioninfo defines a dictionary for the invoicedetails dictionary 'subscriptioninfo' parameter dictionary purchasesubscriptioninfo { domstring subscriptionid; domstring subsstarttime; domstring subsendtime; domstring subsstatus; }; the following values are supported subscriptionid id of subscription history subsstarttime subscription start time, in 14-digit utc time subsendtime subscription expiry time, in 14-digit utc time subsstatus subscription status "00" active "01" subscription expired "02" canceled by buyer "03" canceled for payment failure "04" canceled by cp "05" canceled by admin 1 15 servicecountryavailabilitydata defines a dictionary for data returned by the getservicecountryavailability api dictionary servicecountryavailabilitydata { domstring apiresult; }; the following values are supported apiresult getservicecountryavailability api result dictionary in json format this value is json string type data, so please use it by json parsing after you parse this value, you can use it in getuserpurchaselistapiresult format at the below 1 16 getservicecountryavailabilityapiresult defines a dictionary for the servicecountryavailabilitydata dictionary 'apiresult' parameter dictionary getservicecountryavailabilityapiresult { domstring cpstatus; domstring? cpresult; countries[]? countryavailability; }; the following values are supported cpstatus it returns "100000" in success, [errorcode] in failure refer to dpi error code cpresult [optional] returns "success" on success countryavailability [optional] list of countries with information of service availability 1 17 countries defines a dictionary for the getservicecountryavailabilityapiresult dictionary 'countryavailability' parameter dictionary countries { domstring countrycode; boolean isbillingsupported; }; the following values are supported countrycode countrycode to check service availability isbillingsupported status "true" service is available "false" service is not available 1 18 cancelsubscriptiondata defines a dictionary for subscription cancellation data returned by the cancelsubscription api dictionary cancelsubscriptiondata { domstring apiresult; }; the following values are supported apiresult cancelsubscription api result dictionary in json format this value is json string type data, so please use it by json parsing after you parse this value, you can use it in cancelsubscriptionapiresult format at the below 1 19 cancelsubscriptionapiresult defines a dictionary for the cancelsubscriptiondata dictionary apiresult parameter dictionary cancelsubscriptionapiresult { domstring cpstatus; domstring? cpresult; domstring invoiceid; domstring? subscanceltime; domstring? subsstatus; }; the following values are supported cpstatus dpi result code returns "100000" on success and other codes on failure cpresult [optional] optional additional message "success" other error message, depending on the dpi result code invoiceid invoice id of subscription that you want to cancel subscanceltime [optional] optional time subscription canceled, in 14-digit utc time subsstatus [optional] optional subscription status "00" active "01" subscription expired "02" canceled by buyer "03" canceled for payment failure "04" canceled by cp "05" canceled by admin 1 20 showregisterpromotionalcodedata this defines data set that is coming from showregisterpromotionalcode api dictionary showregisterpromotionalcodedata { domstring opendeeplinkresult; domstring opendeeplinkdetail; }; the following values are supported opendeeplinkresult it returns "success" in success, "fail" in failure opendeeplinkdetail it returns the detail information of coupon or gift card it is a dictionary in json format, so you have to parse it to use for more information, please refer to "promotionalcodedetail" at the below 1 21 promotionalcodedetail this defines data set of promotionalcodedetail parameter that contains showregisterpromotionalcodedata dictionary dictionary promotionalcodedetail { domstring appliedcouponcount; domstring[] appliedcouponlist; domstring registedbenefitcount; domstring[] registedbenefitlist; }; the following values are supported appliedcouponcount it returns the number of applied coupon count appliedcouponlist it returns the list of applied coupon registedbenefitcount it returns the number of benefit registedbenefitlist it returns the list of benefit code 1 22 showregistercreditcarddata this defines data set that is coming from showregistercreditcard api dictionary showregistercreditcarddata { domstring opendeeplinkresult; domstring? opendeeplinkdetail; }; the following values are supported opendeeplinkresult it returns "success" in success, "fail" in failure opendeeplinkdetail [optional] it is optional and not used now 1 23 showpurchasehistorydata this defines data set that is coming from showpurchaseshistory api dictionary showpurchasehistorydata { domstring opendeeplinkresult; domstring opendeeplinkdetail; }; the following values are supported opendeeplinkresult it returns "success" in success, "fail" in failure opendeeplinkdetail it returns the detail information of refund or cancel it is a dictionary in json format, so you have to parse it to use for more information, please refer to "purchasehistorydetail" at the below 1 24 purchasehistorydetail this defines data set of purchasehistorydetail parameter that contains showpurchasehistorydata dictionary dictionary purchasehistorydetail { domstring invoicerefundcount; domstring[] invoicerefundlist; domstring subscriptioncancelcount; domstring[] subscriptioncancellist; }; the following values are supported invoicerefundcount it returns the number of product that user make refunded invoicerefundlist it returns array that contains the list of refunded invoice id subscriptioncancelcount it returns the number of subscription product that user make cancelled subscriptioncancellist it returns array that contains the list of cancelled subscription 1 25 serviceavailabledata defines a dictionary for data returned by the isserviceavailable api dictionary serviceavailabledata { domstring apiresult; }; the following values are supported apiresult isserviceavailable api result dictionary in json format this value is json string type data, so please use it by json parsing after you parse this value, you can use it in serviceavailableapiresult format at the below 1 26 serviceavailableapiresult defines a dictionary for the serviceavailabledata dictionary 'apiresult' parameter dictionary serviceavailableapiresult { domstring status; domstring result; domstring serviceyn; }; the following values are supported status returns "100000" on success and other codes on failure result returns "success" on success serviceyn returns "y" if the service is available 2 interfaces 2 1 billingmanagerobject defines a webapi object instance of the tizen samsung product api the webapis billing object enables access to billing api functionality [nointerfaceobject] interface billingmanagerobject { readonly attribute billingmanager billing; }; webapi implements billingmanagerobject; since 2 4 attributes readonly billingmanager billing billing api namespace 2 2 billingmanager provides methods for billing functionalities [nointerfaceobject] interface billingmanager { void buyitem domstring appid, tvservertype servertype, domstring paymentdetails, billingbuydatasuccesscallback onsuccess, optional errorcallback? onerror ; void getproductslist domstring appid, domstring countrycode, domstring pagesize, domstring pagenumber, domstring checkvalue, tvservertype servertype, billingproductslistcallback onsuccess, optional errorcallback? onerror ; void applyinvoice domstring appid, domstring customid, domstring invoiceid, domstring countrycode, tvservertype servertype, billingapplyinvoicecallback onsuccess, optional errorcallback? onerror ; void verifyinvoice domstring appid, domstring customid, domstring invoiceid, domstring countrycode, tvservertype servertype, billingverifyinvoicecallback onsuccess, optional errorcallback? onerror ; void getservicecountryavailability domstring appid, domstring[] countrycodes, domstring checkvalue, tvservertype servertype, billinggetservicecountryavailabilitycallback onsuccess, optional errorcallback? onerror ; void getuserpurchaselist domstring appid, domstring customid, domstring countrycode, domstring pagenumber, domstring checkvalue, tvservertype servertype, billinggetuserpurchaselistcallback onsuccess, optional errorcallback? onerror ; void cancelsubscription domstring appid, domstring invoiceid, domstring customid, domstring countrycode, tvservertype servertype, billingcancelsubscriptioncallback onsuccess, optional errorcallback? onerror ; void isserviceavailable tvservertype servertype, billingisserviceavailablecallback onsuccess, optional errorcallback? onerror ; domstring getversion ; }; methods buyitem enables implementing the samsung checkout client module within the application after authenticating the purchase information through the application, the user can proceed to purchase payment void buyitem domstring appid, tvservertype servertype, domstring paymentdetails, billingbuydatasuccesscallback onsuccess, optional errorcallback? onerror ; product tv privilege level public privilege http //developer samsung com/privilege/billing parameters appid application id servertype billing server type paymentdetails payment parameters orderitemid[mandatory]/ordertitle[mandatory]/ordertotal[mandatory]/ordercurrencyid[mandatory]/orderid[optional]/ordercustomid[mandatory] onsuccess returns "payresult" and "paydetail" if there is no internal error occurs until client to server data communication payresult, can still contains error when billing server confirms that the given parameters does not have expected value or have problem while processing it paydetail, can have additional data when it's returned, such as invoiceid please refer to the development guide of "buyitem" for details onerror [optional][nullable] optional callback method to invoke if an internal error occurs before the client to server data communication securityerror, if the application does not have the privilege to call this method unknownerror, if other error occur, such as internal error or "billing client already running" error exceptions webapiexception with error type typemismatcherror, if any of input parameter is not compatible with its expected type with error type invalidvalueserror, if servertype contains an invalid value since 2 4 code example var strappid = ""; var struid = webapis sso getloginuid ; var paymentdetails = new object ; paymentdetails orderitemid="pid_2_consum_cupn"; paymentdetails ordertitle="hello consum us coupon"; paymentdetails ordertotal="2"; paymentdetails ordercurrencyid="usd"; paymentdetails ordercustomid=struid; var stringifyresult = json stringify paymentdetails ; var onsuccess = function data {}; var onerror = function error {}; webapis billing buyitem strappid, "dev", stringifyresult, onsuccess, onerror ; getproductslist retrieves the list of products registered on the billing dpi server void getproductslist domstring appid, domstring countrycode, domstring pagesize, domstring pagenumber, domstring checkvalue, tvservertype servertype, billingproductslistcallback onsuccess, optional errorcallback? onerror ; product tv privilege level public privilege http //developer samsung com/privilege/billing parameters appid application id countrycode tv country code pagesize number of products retrieved per page maximum 100 pagenumber requested page number 1 ~ n checkvalue security check value required parameters = "appid" + "countrycode" the check value is used by the dpi service to verify api requests it is a base64 hash generated by applying the hmac sha256 algorithm on a concatenated string of parameters using the dpi security key you can see the example how to generate checkvalue from the following code example you can use any open library to generate the hmac sha256 hash the following example uses the cryptojs library servertype billing server type onsuccess returns the product list if there is no internal error occurs until client to server data communication apiresult, can still contains error when billing server confirms that the given parameters does not have expected value or have problem while processing it when cpstatus value from apiresult is "100000", it means server communication is done properly and other values are valid in returns onerror [optional][nullable] optional callback method to invoke if an internal error occurs before the client to server data communication securityerror, if the application does not have the privilege to call this method unknownerror, if any other error occurs exceptions webapiexception with error type typemismatcherror, if any of input parameter is not compatible with its expected type with error type invalidvalueserror, if servertype contains an invalid value since 4 0 code example var strsecuritykey = ""; // the dpi security key is issued at the dpi portal var strappid = ""; var strcountrycode = webapis productinfo getsystemconfig webapis productinfo productinfoconfigkey config_key_service_country ; var reqparams = strappid + strcountrycode; var hash = cryptojs hmacsha256 reqparams, strsecuritykey ; var strcheckvalue = cryptojs enc base64 stringify hash ; var onsuccess = function data {}; var onerror = function error {}; webapis billing getproductslist strappid, strcountrycode, "100", "1", strcheckvalue, "dev", onsuccess, onerror ; applyinvoice updates the apply status of purchase item to dpi server void applyinvoice domstring appid, domstring customid, domstring invoiceid, domstring countrycode, tvservertype servertype, billingapplyinvoicecallback onsuccess, optional errorcallback? onerror ; product tv privilege level public privilege http //developer samsung com/privilege/billing parameters appid application id customid same value as "ordercustomid" parameter for the buyitem api samsung account uid invoiceid invoice id of purchased item that you want to update apply status countrycode tv country code servertype billing server type onsuccess returns purchase apply status if there is no internal error occurs until client to server data communication apiresult, can still contains error when billing server confirms that the given parameters does not have expected value or have problem while processing it when cpstatus value from apiresult is "100000", it means server communication is done properly and other values are valid in returns onerror [optional][nullable] optional callback method to invoke if an internal error occurs before the client to server data communication securityerror, if the application does not have the privilege to call this method unknownerror, if any other error occurs exceptions webapiexception with error type typemismatcherror, if any of input parameter is not compatible with its expected type with error type invalidvalueserror, if servertype contains an invalid value since 4 0 code example var strappid = ""; var struid = webapis sso getloginuid ; var invoiceid = ""; // issued by getproductslist var strcountrycode = webapis productinfo getsystemconfig webapis productinfo productinfoconfigkey config_key_service_country ; var onsuccess = function data {}; var onerror = function error {}; webapis billing applyinvoice strappid, struid, invoiceid, strcountrycode, "dev", onsuccess, onerror ; verifyinvoice checks whether a purchase, corresponding to a specific "invoiceid", was successful void verifyinvoice domstring appid, domstring customid, domstring invoiceid, domstring countrycode, tvservertype servertype, billingverifyinvoicecallback onsuccess, optional errorcallback? onerror ; product tv privilege level public privilege http //developer samsung com/privilege/billing parameters appid application id customid same value as "ordercustomid" parameter for the buyitem api samsung account uid invoiceid invoice id that you want to verify whether a purchase was successful countrycode tv country code servertype billing server type onsuccess returns the payment status if there is no internal error occurs until client to server data communication apiresult, can still contains error when billing server confirms that the given parameters does not have expected value or have problem while processing it when cpstatus value from apiresult is "100000", it means server communication is done properly and other values are valid in returns onerror [optional][nullable] optional callback method to invoke if an internal error occurs before the client to server data communication securityerror, if the application does not have the privilege to call this method unknownerror, if any other error occurs exceptions webapiexception with error type typemismatcherror, if any of input parameter is not compatible with its expected type with error type invalidvalueserror, if servertype contains an invalid value since 4 0 code example var strappid = ""; var struid = webapis sso getloginuid ; var invoiceid = ""; // issued by getproductslist var strcountrycode = webapis productinfo getsystemconfig webapis productinfo productinfoconfigkey config_key_service_country ; var onsuccess = function data {}; var onerror = function error {}; webapis billing verifyinvoice strappid, struid, invoiceid, strcountrycode, "dev", onsuccess, onerror ; getservicecountryavailability get service country availability for samsung checkout void getservicecountryavailability domstring appid, domstring[] countrycodes, domstring checkvalue, tvservertype servertype, billinggetservicecountryavailabilitycallback onsuccess, optional errorcallback? onerror ; product tv privilege level public privilege http //developer samsung com/privilege/billing parameters appid application id countrycodes to check multiple countrycodes available add as array, only uppercase allowed ex countrycodes=["de","us","kr"] checkvalue security check value required parameters = "appid" + "countrycodes" the check value is used by the dpi service to verify api requests it is a base64 hash generated by applying the hmac sha256 algorithm on a concatenated string of parameters using the dpi security key you can see the example how to generate checkvalue from the following code example you can use any open library to generate the hmac sha256 hash the following example uses the cryptojs library servertype billing server type onsuccess returns the service availability status of each country if there is no internal error occurs until client to server data communication apiresult, can still contains error when billing server confirms that the given parameters does not have expected value or have problem while processing it when cpstatus value from apiresult is "100000", it means server communication is done properly and other values are valid in returns onerror [optional][nullable] optional callback method to invoke if an internal error occurs before the client to server data communication securityerror, if the application does not have the privilege to call this method unknownerror, if any other error occurs exceptions webapiexception with error type typemismatcherror, if any of input parameter is not compatible with its expected type with error type invalidvalueserror, if servertype contains an invalid value since 5 5 code example var strsecuritykey = ""; // the dpi security key is issued at the dpi portal var strappid = ""; var countrycodes = ["de","us","kr"]; var reqparams = strappid + "deuskr"; var hash = cryptojs hmacsha256 reqparams, strsecuritykey ; var strcheckvalue = cryptojs enc base64 stringify hash ; var onsuccess = function data {}; var onerror = function error {}; webapis billing getservicecountryavailability strappid, countrycodes, strcheckvalue, "dev", onsuccess, onerror ; getuserpurchaselist retrieves the user's purchase list void getuserpurchaselist domstring appid, domstring customid, domstring countrycode, domstring pagenumber, domstring checkvalue, tvservertype servertype, billinggetuserpurchaselistcallback onsuccess, optional errorcallback? onerror ; product tv privilege level public privilege http //developer samsung com/privilege/billing parameters appid application id customid same value as "ordercustomid" parameter for the buyitem api samsung account uid countrycode tv country code pagenumber requested page number 1 ~ n checkvalue security check value required parameters = "appid" + "customid" + "countrycode" + "itemtype" + "pagenumber" itemtype, must use 2 as value "all items" the check value is used by the dpi service to verify api requests it is a base64 hash generated by applying the hmac sha256 algorithm on a concatenated string of parameters using the dpi security key you can see the example how to generate checkvalue from the following code example you can use any open library to generate the hmac sha256 hash the following example uses the cryptojs library servertype billing server type onsuccess returns the purchase list if there is no internal error occurs until client to server data communication apiresult, can still contains error when billing server confirms that the given parameters does not have expected value or have problem while processing it when cpstatus value from apiresult is "100000", it means server communication is done properly and other values are valid in returns onerror [optional][nullable] optional callback method to invoke if an internal error occurs before the client to server data communication securityerror, if the application does not have the privilege to call this method unknownerror, if any other error occurs exceptions webapiexception with error type typemismatcherror, if any of input parameter is not compatible with its expected type with error type invalidvalueserror, if servertype contains an invalid value since 4 0 code example var strsecuritykey = ""; // the dpi security key is issued at the dpi portal var strappid = ""; var struid = webapis sso getloginuid ; var strcountrycode = webapis productinfo getsystemconfig webapis productinfo productinfoconfigkey config_key_service_country ; var strpagenumber = "1"; var reqparams = strappid + struid + strcountrycode + "2" + strpagenumber; var hash = cryptojs hmacsha256 reqparams, strsecuritykey ; var strcheckvalue = cryptojs enc base64 stringify hash ; var onsuccess = function data {}; var onerror = function error {}; webapis billing getuserpurchaselist strappid, struid, strcountrycode, strpagenumber, strcheckvalue, "dev", onsuccess, onerror ; cancelsubscription cancels a subscription product void cancelsubscription domstring appid, domstring invoiceid, domstring customid, domstring countrycode, tvservertype servertype, billingcancelsubscriptioncallback onsuccess, optional errorcallback? onerror ; product tv privilege level public privilege http //developer samsung com/privilege/billing parameters appid application id invoiceid invoice id of subscription that you want to cancel customid same value as "ordercustomid" parameter for the buyitem api samsung account uid countrycode tv country code servertype billing server type onsuccess returns the subscription cancellation status if there is no internal error occurs until client to server data communication apiresult, can still contains error when billing server confirms that the given parameters does not have expected value or have problem while processing it when cpstatus value from apiresult is "100000", it means server communication is done properly and other values are valid in returns onerror [optional][nullable] optional callback method to invoke if an error occurs before the client to server data communication securityerror, if the application does not have the privilege to call this method unknownerror, if any other error occurs exceptions webapiexception with error type typemismatcherror, if any of input parameter is not compatible with its expected type with error type invalidvalueserror, if servertype contains an invalid value since 4 0 code example var strappid = ""; var struid = webapis sso getloginuid ; var invoiceid = ""; // issued by getproductslist var strcountrycode = webapis productinfo getsystemconfig webapis productinfo productinfoconfigkey config_key_service_country ; var onsuccess = function data {}; var onerror = function error {}; webapis billing cancelsubscription strappid, invoiceid, struid , strcountrycode , "dev", onsuccess, onerror ; isserviceavailable checks whether the billing server is available however, this api will be replaced by getservicecountryavailability after deprecation void isserviceavailable tvservertype servertype, billingisserviceavailablecallback onsuccess, optional errorcallback? onerror ; product tv privilege level public privilege http //developer samsung com/privilege/billing parameters servertype billing server onsuccess returns the server availability onerror [optional][nullable] optional callback method to invoke if an internal error occurs before the client to server data communication securityerror, if the application does not have the privilege to call this method unknownerror, if any other error occurs exceptions webapiexception with error type typemismatcherror, if any of input parameter is not compatible with its expected type with error type invalidvalueserror, if any input parameter contains an invalid value since 4 0 deprecated 5 5 code example var onsuccess = function data {}; var onerror = function error {}; webapis billing isserviceavailable "dev", onsuccess, onerror getversion retrieves the billing api version domstring getversion ; product tv privilege level public privilege http //developer samsung com/privilege/billing return value domstring billing api version exceptions webapiexception with error type securityerror, if the application does not have the privilege to call this method with error type notsupportederror, if this feature is not supported with error type unknownerror, for any other error since 4 0 code example var version = webapis billing getversion ; 2 3 billingbuydatasuccesscallback defines the payment success callback [callback = functiononly, nointerfaceobject] interface billingbuydatasuccesscallback { void onsuccess billingbuydata data ; }; methods onsuccess callback method returning the payment status void onsuccess billingbuydata data ; privilege level public privilege http //developer samsung com/privilege/billing parameters data payment status code example void onsuccess data { if data payresult == 'success' { // implement success logic } else { // implement cancel or fail logic } } 2 4 billingbuydata defines the payment result and information [nointerfaceobject] interface billingbuydata { attribute domstring payresult; attribute domstring paydetail; }; attributes domstring payresult payment result domstring paydetail payment information it is same with paymentdetails param of buyitem 2 5 billingproductslistcallback defines the product list success callback [callback = functiononly, nointerfaceobject] interface billingproductslistcallback { void onsuccess productslistdata data ; }; methods onsuccess callback method returning the product list request status void onsuccess productslistdata data ; privilege level public privilege http //developer samsung com/privilege/billing parameters data it includes getproductlist api result but you can't use it as it is you have to parse it as json format data code example void onsuccess data { var resproductslist = json parse data apiresult ; if resproductslist cpstatus == "100000" { // implement success logic } else { // implement cancel or fail logic } } 2 6 billingapplyinvoicecallback defines the apply invoice success callback [callback = functiononly, nointerfaceobject] interface billingapplyinvoicecallback { void onsuccess applyinvoicedata data ; }; methods onsuccess callback method returning the apply invoice request status void onsuccess applyinvoicedata data ; privilege level public privilege http //developer samsung com/privilege/billing parameters data it includes applyinvoice api result but you can't use it as it is you have to parse it as json format data code example void onsuccess data { resapplyproduct = json parse data apiresult ; if resapplyproduct cpstatus == "100000" { // implement success logic } else { // implement cancel or fail logic } } 2 7 billingverifyinvoicecallback defines the payment verification success callback [callback = functiononly, nointerfaceobject] interface billingverifyinvoicecallback { void onsuccess verifyinvoicedata data ; }; methods onsuccess callback method returning the payment verification request status void onsuccess verifyinvoicedata data ; privilege level public privilege http //developer samsung com/privilege/billing parameters data it includes verifyinvoice api result but you can't use it as it is you have to parse it as json format data code example void onsuccess data { resverifypurchase = json parse data apiresult ; if resverifypurchase cpstatus == "100000" { // implement success logic } else { // implement cancel or fail logic } } 2 8 billinggetuserpurchaselistcallback defines the purchase history success callback [callback = functiononly, nointerfaceobject] interface billinggetuserpurchaselistcallback { void onsuccess userpurchasedata data ; }; methods onsuccess callback method returning the purchase history request status void onsuccess userpurchasedata data ; privilege level public privilege http //developer samsung com/privilege/billing parameters data it includes getuserpurchaselist api result but you can't use it as it is you have to parse it as json format data code example void onsuccess data { respurchaseslist = json parse data apiresult ; if respurchaseslist cpstatus == "100000" { // implement success logic } else { // implement cancel or fail logic } } 2 9 billinggetservicecountryavailabilitycallback defines the get service country availability callback [callback = functiononly, nointerfaceobject] interface billinggetservicecountryavailabilitycallback { void onsuccess servicecountryavailabilitydata data ; }; methods onsuccess callback method returning availability of country list status void onsuccess servicecountryavailabilitydata data ; privilege level public privilege http //developer samsung com/privilege/billing parameters data it includes getservicecountryavailability api result but you can't use it as it is you have to parse it as json format data code example void onsuccess data { resservicecountryavailability = json parse data apiresult ; if resservicecountryavailability cpstatus == "100000" { // implement success logic } else { // implement cancel or fail logic } } 2 10 billingcancelsubscriptioncallback defines the subscription cancel success callback [callback = functiononly, nointerfaceobject] interface billingcancelsubscriptioncallback { void onsuccess cancelsubscriptiondata data ; }; methods onsuccess callback method returning the subscription cancel request status void onsuccess cancelsubscriptiondata data ; privilege level public privilege http //developer samsung com/privilege/billing parameters data it includes cancelsubscription api result but you can't use it as it is you have to parse it as json format data code example void onsuccess data { rescancelsubscription = json parse data apiresult ; if rescancelsubscription cpstatus == "100000" { // implement success logic } else { // implement cancel or fail logic } } 2 11 billingisserviceavailablecallback defines the service availability check success callback [callback = functiononly, nointerfaceobject] interface billingisserviceavailablecallback { void onsuccess serviceavailabledata data ; }; deprecated 5 5 methods onsuccess callback method returning the service availability check status void onsuccess serviceavailabledata data ; privilege level public privilege http //developer samsung com/privilege/billing parameters data it includes isserviceavailable api result but you can't use it as it is you have to parse it as json format data code example void onsuccess data { resjson = json parse data apiresult if resjson serviceyn == "y" { // implement success logic } else { // implement cancel or fail logic } } 3 full webidl module billing { enum tvservertype { "dev", "prd" }; enum historytype { "all", "subscription", "non-subscription" }; dictionary productslistdata { domstring apiresult; }; dictionary productslistapiresult { domstring cpstatus; domstring? cpresult; long totalcount; domstring checkvalue; itemdetails[]? itemdetails; }; dictionary itemdetails { long seq; domstring itemid; domstring itemtitle; long itemtype; long? period; long price; domstring currencyid; productsubscriptioninfo? subscriptioninfo; }; dictionary productsubscriptioninfo { domstring paymentcycleperiod; long paymentcyclefrq; long paymentcycle; }; dictionary applyinvoicedata { domstring apiresult; }; dictionary applyinvoiceapiresult { domstring cpstatus; domstring? cpresult; domstring appliedtime; }; dictionary verifyinvoicedata { domstring apiresult; }; dictionary verifyinvoiceapiresult { domstring cpstatus; domstring? cpresult; domstring appid; domstring invoiceid; }; dictionary userpurchasedata { domstring apiresult; }; dictionary getuserpurchaselistapiresult { domstring cpstatus; domstring? cpresult; long totalcount; domstring checkvalue; invoicedetails[]? invoicedetails; }; dictionary invoicedetails { long seq; domstring invoiceid; domstring itemid; domstring itemtitle; long itemtype; domstring ordertime; long? period; long price; domstring ordercurrencyid; boolean cancelstatus; boolean appliedstatus; domstring? appliedtime; domstring? limitendtime; domstring? remaintime; purchasesubscriptioninfo? subscriptioninfo; }; dictionary purchasesubscriptioninfo { domstring subscriptionid; domstring subsstarttime; domstring subsendtime; domstring subsstatus; }; dictionary servicecountryavailabilitydata { domstring apiresult; }; dictionary getservicecountryavailabilityapiresult { domstring cpstatus; domstring? cpresult; countries[]? countryavailability; }; dictionary countries { domstring countrycode; boolean isbillingsupported; }; dictionary cancelsubscriptiondata { domstring apiresult; }; dictionary cancelsubscriptionapiresult { domstring cpstatus; domstring? cpresult; domstring invoiceid; domstring? subscanceltime; domstring? subsstatus; }; dictionary showregisterpromotionalcodedata { domstring opendeeplinkresult; domstring opendeeplinkdetail; }; dictionary promotionalcodedetail { domstring appliedcouponcount; domstring[] appliedcouponlist; domstring registedbenefitcount; domstring[] registedbenefitlist; }; dictionary showregistercreditcarddata { domstring opendeeplinkresult; domstring? opendeeplinkdetail; }; dictionary showpurchasehistorydata { domstring opendeeplinkresult; domstring opendeeplinkdetail; }; dictionary purchasehistorydetail { domstring invoicerefundcount; domstring[] invoicerefundlist; domstring subscriptioncancelcount; domstring[] subscriptioncancellist; }; dictionary serviceavailabledata { domstring apiresult; }; dictionary serviceavailableapiresult { domstring status; domstring result; domstring serviceyn; }; [nointerfaceobject] interface billingmanagerobject { readonly attribute billingmanager billing; }; webapi implements billingmanagerobject; [nointerfaceobject] interface billingmanager { void buyitem domstring appid, tvservertype servertype, domstring paymentdetails, billingbuydatasuccesscallback onsuccess, optional errorcallback? onerror ; void getproductslist domstring appid, domstring countrycode, domstring pagesize, domstring pagenumber, domstring checkvalue, tvservertype servertype, billingproductslistcallback onsuccess, optional errorcallback? onerror ; void applyinvoice domstring appid, domstring customid, domstring invoiceid, domstring countrycode, tvservertype servertype, billingapplyinvoicecallback onsuccess, optional errorcallback? onerror ; void verifyinvoice domstring appid, domstring customid, domstring invoiceid, domstring countrycode, tvservertype servertype, billingverifyinvoicecallback onsuccess, optional errorcallback? onerror ; void getservicecountryavailability domstring appid, domstring[] countrycodes, domstring checkvalue, tvservertype servertype, billinggetservicecountryavailabilitycallback onsuccess, optional errorcallback? onerror ; void getuserpurchaselist domstring appid, domstring customid, domstring countrycode, domstring pagenumber, domstring checkvalue, tvservertype servertype, billinggetuserpurchaselistcallback onsuccess, optional errorcallback? onerror ; void cancelsubscription domstring appid, domstring invoiceid, domstring customid, domstring countrycode, tvservertype servertype, billingcancelsubscriptioncallback onsuccess, optional errorcallback? onerror ; void isserviceavailable tvservertype servertype, billingisserviceavailablecallback onsuccess, optional errorcallback? onerror ; domstring getversion ; }; [callback = functiononly, nointerfaceobject] interface billingbuydatasuccesscallback { void onsuccess billingbuydata data ; }; [nointerfaceobject] interface billingbuydata { attribute domstring payresult; attribute domstring paydetail; }; [callback = functiononly, nointerfaceobject] interface billingproductslistcallback { void onsuccess productslistdata data ; }; [callback = functiononly, nointerfaceobject] interface billingapplyinvoicecallback { void onsuccess applyinvoicedata data ; }; [callback = functiononly, nointerfaceobject] interface billingverifyinvoicecallback { void onsuccess verifyinvoicedata data ; }; [callback = functiononly, nointerfaceobject] interface billinggetuserpurchaselistcallback { void onsuccess userpurchasedata data ; }; [callback = functiononly, nointerfaceobject] interface billinggetservicecountryavailabilitycallback { void onsuccess servicecountryavailabilitydata data ; }; [callback = functiononly, nointerfaceobject] interface billingcancelsubscriptioncallback { void onsuccess cancelsubscriptiondata data ; }; [callback = functiononly, nointerfaceobject] interface billingisserviceavailablecallback { void onsuccess serviceavailabledata data ; }; };
Connect Samsung Developer Conference
webtech square products and services using our new technology are displayed in the space by each field, and you can find details in the keynote speech and sessions. platform innovation home & health experience mobile & screen experience sustainability category platform innovation home & health experience mobile & screen experience sustainability smartthings matter/hub the most comprehensive iot platform for matter. the matter-compatible smartthings hub has been deeply integrated across samsung tvs, family hub refrigerators, smart monitors, and mobile chargers. working together, these hubs can form a multi-hub network for wider coverage and better reliability. setting up a new hub is also easier than ever with our new hub replacement tool. smartthings find & galaxy smarttag2 to keep your belongings and loved ones safe, you can use the newly updated smartthings find and smarttag2. with the new lost mode, someone who has found your misplaced key simply can tap their phone to the tag2 to contact you. you can even use tag2 to keep your pets healthy. attach a tag2 to your dog’s collar and keep track of their walking habits. smartthings home view smartthings home view provides an indoor map of your home, allows you to set the location of rooms and easily control your home devices at once, and displays environmental information such as room temperature and humidity, making your smart device experience easier and more intuitive. we also provide various ways to create indoor maps using ai technology. smartthings tv experience find out more about enhanced tv experiences with smartthings, including ring my phone, built-in smart home hub and home monitoring, and on a galaxy smart phone, the quick tv remote functionality. wwst partner find out about upcoming "works with smartthings" partner devices, including interesting gadgets, harman speakers, and presence sensors. calm onboarding calm onboarding is a stepping stone to a convenient life. it allows the user to complete device registration in the background by linking product purchase information, or by temporarily registering nearby devices and completing the final confirmation - the user just needs to have a previously registered device to connect to. smartthings ecosystem wall smartthings has been developed with support for the matter protocol and hca standards. it's an ever-evolving system, continually expanding user device options and enhancing usability. in close partnership with major home iot companies like philips hue / aeotec and other device-focused allies, we're delivering unique advantages to both partners and end-users. back to previous page vision ai pro cooking: bespoke view camera oven and camera wall oven the vision ai pro cooking camera oven optimizes cooking settings while monitoring food. if the oven is set to cook a recognized dish, it recommends a cooking mode, temperature, and time. the user can see how their meal is coming along in real time. during cooking, the oven detects cooking status, and afterwards, creates a time-lapse. screens everywhere at home we are building a screen ecosystem by expanding the tizen os to all of our home appliances. in this booth, we will display a family hub refrigerator with a 32-inch screen and a wall oven with a 7-inch screen, which you can use to experience various services such as multimedia, iot, and ai. samsung food: food your way samsung food offers a single platform to take you from "what’s for dinner?" to food on the table. discover recipe inspiration and storage, meal planning, nutritional information, automatic shopping lists, guided cooking, and sharing recipes and reviews with your friends. we put the world’s food knowledge at your fingertips! expand your health experience with samsung health making healthy habits easier with samsung health and new galaxy watch. samsung health can help you develop healthy habits by providing insights on what you’re doing well and what needs improvement, based on measurement data. leveraging galaxy watch's advanced health sensors tracking of raw or processed health sensor data from a galaxy watch is available through the samsung privileged health sdk. specialized features of the galaxy watch, like body composition and skin temperature measurements, can easily be utilized in wear os applications. the sdk maintains low watch battery consumption during continuous data tracking. empowering research & clinical experiences with samsung health stack samsung health stack is an open source project that provides end-to-end solutions such as application sdk, web portal, and backend systems for various use cases from medical research studies to clinician services using wearable devices. in this booth, you can explore all features of samsung health stack and check out some of its real-world use cases. back to previous page where gaming comes together gaming hub is an all-in-one platform where users can spend more time together and enjoy a variety of games through streaming, with over 3,000 titles from industry-leading partners. in addition, we'll be demonstrating to game developers how to utilize gamepads effectively with live demos, and have content for gamepad manufacturers interested in tv integration. deliver the best multi-device experience between samsung devices multi-control allows you to control two or more devices at the same time with a keyboard or mouse. you can access content such as news and netflix using your mouse, without needing the remote control, and then immediately continue using the mouse to work with your pc. introduction to iris (instant rendering & immediate sign-off) for hdr10+ gaming iris is a software tool that provides real-time, simulated rendering of hdr10+ gaming, hdr10, or sdr on multiple connected displays. this exhibition covers the overview of hdr10+ gaming, iris features, and how game developers can utilize it for their development and qc process. currently, iris works based on an nvidia api for the hdr10+ gaming communication protocols. feel the pleasure and value of being together with witty conversations chat together lets you talk remotely while watching your favorite tv programs. a click on a pop-up notification will start a chat together session. you can chat using either ai-recommended text and emojis, voice input, or mobile application and web browser. we are also developing other tv applications that provide togetherness experiences with a tv chat open api and platform. camera experience for tv any application that uses a camera can join camera experience. so far, we have a video call, workout, health care and gesture applications. you can easily create camera applications for tv by using our open api and platform. cheering together with emoticons and enjoyable events while watching sports cheer together lets you move beyond just watching tv, by providing experience that family and others can share while watching sports, through cheering emoticons and co-participating in events according to the cheering mood. we are planning to auto-generate emoticons with the user's voice to provide them with more ways to express enjoyment. remote test lab for tv remote test lab is a solution that makes it easy for tv application developers to use any real tvs they want. if you have an internet-connected pc, you can configure a remote development environment using a real tv. we support various models based on product and year, and no further effort is required to get access to specific models. all you need is your pc. smart edge blending - merge screens using two freestyle 2023 projectors. to use smart edge blending, two freestyle projectors are placed horizontally or vertically, and the edge blending function, which connects the images, is set up by taking a picture on the smartthings mobile application. samsung wallet: add to wallet add to samsung wallet is an e-wallet service that allows customers using samsung devices to add various digitized contents to samsung wallet. users can add their event tickets, coupons, boarding passes, and other types of data into samsung wallet using "add to samsung wallet" buttons in applications, web pages, e-mail, or social media messages by various content providers. samsung wallet: online payment check out faster in our payment apps. there's no need to enter your credit card number for in-app or online purchases—simply select samsung pay at checkout and authenticate the purchase with your fingerprint or pin. samsung wallet: student / company id add your student or company id to samsung wallet to make access simple. open doors, get into the library and events, pay for lunch, and more with just a tap of your phone or watch. experience the convenience of your student or company id working when your screen is off and your phone is locked, and even when your battery runs out. samsung wallet: mobile driver’s license / state id users will soon be able to add their driver’s license or state id to samsung wallet. initially, mobile driver’s licenses / state ids will work in a limited number of states at select tsa checkpoints to verify an id with just a tap. advanced professional video codec the advanced professional video (apv) codec is a new video codec for prosumers who want cinematic-quality video recording and post-production with smart phones. the apv codec provides perceptually lossless video quality and consumes 20% less storage compared to existing formats. back to previous page net zero home: build a sustainable home with smartthings energy smartthings energy connects everything from solar panels to your ev chargers to build a sustainable home. through partnership, smartthings energy lets you manage your energy production, storage and consumption and lowers your monthly energy bill and carbon footprint. open license for solar cell remote tech the solar cell remote is eco-friendly remote controller made out of recyclable materials that creates no battery waste, and incorporates improvements based on research into the potential environmental pollutants caused in remote control production. by opening the solar cell remote control technology to everyone, eco-friendly technology can be distributed wider. intelligent power saving intelligent power saving is power reduction based on human vision characteristics. a deep learning algorithm identifies regions of non-interest, which helps in reducing power consumption without letting the user notice any changes in the image. relumino mode relumino mode improves visual accessibility by making it easier to recognize objects. the edge thickness and colors in the image can be controlled depending on the user's vision level. the "together mode" supports a social tv watching experience, by displaying the original and relumino mode videos at the same time, allowing users to watch tv with their families. spoken subtitles people with low vision, or who cannot read the subtitles, will better understand foreign content such as movies if the tv gives them narration by reading the subtitles out loud. resource circulation gallery our goal at samsung is to apply recycled resin to 100% of the plastic components used in our products by 2050. we're using materials like fishing nets and recycled glass for samsung galaxy products, crafting tv covers from low-carbon resin captured from carbon emissions, and developing microplastic-filtering technology to reduce marine pollution. circular factory we’re highlighting samsung's processes for upcycling waste, showing how our research is integrated into products. we’re uncovering recyclable materials from waste products and are creating a roadmap for how that waste can be reintegrated into samsung products. back to previous page
Connect Samsung Developer Conference
webtech sessions dive into the future of connected customer experiences through tech sessions by developers offering further insight into the innovations introduced in the keynote filter filter filter all reset apply there are no results. sessions contents & service, open innovation 8k visual quality and ecosystem in this session, we will present how the genuine 8k contents correctly displayed on 8k display devices could deliver our customers an immersive picture quality experience. we will start with a summary of the previous studies about user perceptions regarding the 8k visual quality. we then will explain why the full-frequency 8k contents are superior to the lower resolution in producing fine details on the image. we will also discuss some technical challenges we face toward adopting and utilizing 8k contents in a real-world environment and describe how we can overcome these hurdles. specifically, we will discuss technologies such as super-resolution and new image sensors to overcome the full-frequency barrier of 8k content. last, we will introduce the 8k association (8ka), a non-profit organization composed of key technology companies in the consumer and professional 8k ecosystem, and briefly mention 8ka's ongoing effects on the research, standardization, and promotion of 8k visual quality. sessions contents & service, developer program, mobile add samsung pay as your payment method in this session, we will share learnings from our experience developing the samsung pay mobile payment service, revealing insights that can be applied to your own platforms. we will also take a look at the samsung pay development kit and how you can use this for your own service. sessions game, ar, mobile ar emoji: your avatar, your experience the ar emoji feature on samsung devices enables users to create a 3d avatar model that can be used in other applications. similar to avatars currently available in games or in the metaverse, our ar emojis are a chance for users to express themselves, their style and their personality, digitally. but this is only the beginning. in this session, we’ll explore the future of ar emojis and how the ar emoji sdk is opening more opportunities for developers to collaborate with samsung to bring to life new services featuring these avatars and optimize them for the metaverse though our collaboration with unity. sessions ai, iot, smart appliances bixby 2022 what’s new what’s new with bixby in 2022? in this session, you will hear about some of the exciting improvements to the nlu and on-device bixby as well as updates to the bixby developer studio, which introduces a brand new javascript runtime that provides a modern, secure, high-performance environment. we will also take a closer look at the brand new bixby home studio, which allows smart device developers to customize and optimize voice control of smart devices, including allowing a single command to intelligently control multiple smart home devices. sessions contents & service, game creating spectacular galaxy game audio experiences with dolby atmos galaxy smartphones and tablets can produce spectacular game audio with dolby atmos. discover how you can create deeper emotional connections with players, keep them playing for longer, and earn their loyalty by unleashing the full power of samsung galaxy mobile game audio. in this session you will hear from dolby’s partner audiokinetic who will discuss how developers can make dolby atmos games, including a walkthrough of how to use dolby atmos plug-ins in audiokinetic's wwise audio middleware. moong labs – creators of epic cricket one, of india's most popular sports games – will also share how dolby atmos benefitted their game and you will find out how dolby supports game developers and other activities on our website. sessions health, wearable expand health experiences with galaxy watch the galaxy watch’s powerful bioactive sensor, together with the wear os powered by samsung, is transforming mobile health experiences. and now, this technology is even more powerful thanks to the samsung privileged health sdk. find out how the samsung privileged health sdk is allowing developers to retrieve raw or analyzed sensor data for their applications, including bia, ecg, blood oxygen level or sweat loss, and help users’ to accurately monitor their health stats. sessions web flexible and private web experience on samsung internet in this session, you will learn how to enhance and optimize your web experience for foldable devices using device posture api and viewport segment media query. we'll also take a closer look at how samsung internet protects users’ privacy online. sessions mobile, enterprise, developer program google and samsung strengthen enterprise ecosystem together samsung’s global mobile b2b team is working closely with the android enterprise team to build a galaxy ecosystem of partners who are bringing innovation into workplaces. discover how partner solutions create unique experiences on samsung devices and how we plan to work together to help future partners step into the samsung android ecosystem for enterprises and smbs. sessions contents & service, developer program, enterprise hdr10+/salt and automatic hdr video creations for productions hdr10+ is an essential technology for premium hdr viewing experience and it is widely reach to consumer displays including mobile devices. in order to provide hdr content services, it requires changing service provider's infra structure or workflows and video processing technology from sdr to hdr with a lot of engineering efforts. then, hdr10+/salt solutions and partnership program from samsung is designed to build an extremely cost effective automatic solution up for content creators, post production houses and ott service providers even including game developers. the solution package is designed with various standalone applications, reference apps, sdks on various oses and partnership programs to help 3rd parties for creation of hdr contents. hdr10+/salt partnership program provides full compatibility to hdr10+ llc certification program and major studios, ott service providers and tool makers are already partners of the program and samsung provides them the best hdr content quality. sessions developer program, open innovation, health healthcare research hub our open source project provides end-to-end solutions such as sdk, platform, and portal for various use cases from medical research studies to clinician services using wearable devices. medical research does not have to stay complicated. anyone can easily build and customize their own research studies or clinician services using this open source. recently, as the accuracy of sensors installed on wearable devices has improved, interest in healthcare research using wearable health data is increasing. however, it takes a lot of time for researchers to develop research applications and server infrastructure for storing and analyzing data from scratch. sr is developing android sdk and data platform solutions that support healthcare research using health data from our wearable devices (watch 4 and later versions) and provide them as open source in order to solve the pain points of these researchers and establish a digital health care research ecosystem centered on our wearable devices. sessions iot, monetization, smart appliances home connectivity alliance introduction of home connectivity alliance and how appliance manufactures can enable interoperability across brands. hear how hca interoperability can benefit consumers and partners including b2b (home builders, mfu, etc). join the hca and become a leader in innovation within the connected iot ecosystem. sessions ai, ar immersive audio we will demonstrate an audio system with dramatically improved immersive 3d audio experience. hardware will be similar to samsung’s critically acclaimed hw-q990b soundbar, but will include several new technologies that will be found in future samsung products. these technologies automatically correct for room acoustics and the location of the listeners and loudspeakers. visitors will compare the sound of the system before and after the system’s unique automated calibration process. listeners will enjoy improved spatial and timbral performance in stereo, surround and immersive audio formats with both music and cinematic content. sessions security & privacy introducing blockchain wallet with knox vault in this session, we introduce blockchain wallet for samsung smart tv. blockchain wallet allows our smart tv users to manage their blockchain accounts and transfer their cryptocurrency to another blockchain account. it ensures to retain a key for blockchain transactions in a secure way. dapp developers can build their tv dapp with blockchain wallet for blockchain functions such as blockchain connection and transaction signing. knox vault is an enhanced hardware-based security solution to protect sensitive data such as cryptographic keys, passwords and personal data. knox vault provides strong security guarantees against hardware attacks such as physical attack, side-channel attack and fault attack. as a core component of the knox security platform, knox vault is an isolated, tamper-proof, secure subsystem with its own secure processor and memory. sessions developer program, enterprise, android introducing samsung galaxy camera ecosystem discover how advanced camera technologies, based on samsung’s leading hardware and software, can enable developers to create more powerful camera experiences for their users. we will take a look at some of the incredible partnerships samsung has already formed with numerous app developers and reveal how these collaborations enriched users’ camera experiences. sessions mobile, android, productivity intuitive multitasking experience based upon android 12l join us to see how samsung continues to enhance the large screen user experience further with fast app switching and intuitive multitasking capabilities. to maximize the galaxy foldable experience, we're expanding flex mode even further with more apps and partners as well as google's ongoing collaborative effort in android 12l. sessions iot, mobile, uwb joint efforts on standardization toward open ecosystem of uwb services the presentation will introduce samsung's joint efforts with industry partners on the uwb tech/service standardization, which is essential for creating an interoperable open ecosystem of uwb products and services. especially, it will introduce activities at fira consortium, which was established by samsung jointly with industry leaders to provide interoperability specifications as well as certification programs. it may also include target uwb services and relevant standardization status & plan. sessions ar, game, tizen journey to immersive interactive exp in big screen with xr and avatar fw xr framework webapis enable developers to build xr applications on the tizen platform. we will go over features of the webapis, share some demos, and provide information on how to get started. additionally we will show you a sample code of how to capture and handle user's gestures and full body movement. avatar framework for tizen is a unified solution providing high level apis that allow samsung developers to easily include the 3d avatar models and features in their samsung tv applications. we will go over all the cool features and options of our framework in this video. sessions connectivity, android, mobile le audio: the future of wireless sound introducing le audio: a new standard for bluetooth technology on galaxy devices. le audio will enhance the performance of classic bluetooth audio and introduce isochronous communication, creating whole new wireless audio experience on galaxy devices. in this session, we will introduce the technical features of le audio, what it means for the galaxy ux and how you could enhance wireless audio experience of your app with le audio. sessions design, ui/ux one ui design principles in partnership one ui creates a unified experience across our galaxy devices, from phones and tablets to watches and galaxy books. in creating and refining one ui, we've followed four key principles: simplicity, effortlessness, consistency, and authenticity. with one ui, we've also made a commitment to openness, which means some of the best things in one ui come from partnerships. in this session, we'll talk about some of those partnerships and how we aligned them with our four design principles to get great results. sessions ui/ux, design, android one ui: customer centric design one ui starts with a true understanding what our customers want. hear more about what samsung have learned from listening to extensive customer feedback and usage data, and how we have adapted our designs in response. we'll take a look at some real-life examples of how the ux design of the calendar, settings and samsung health app has evolved over time to better meet customer needs. sessions enterprise, data, security & privacy our journey to responsibly handling data at samsung, we place personal data protection as one of our top priorities. learn how we responsibly handle personal data in our applications and platforms. we'll share with you our journey in protecting personal data. we'll talk about what it means to responsibly govern and access data in samsung's enterprise environment. we'll cover specifics on how to classify & protect data as a whole. pick up insights on privacy technologies and design patterns we apply in our data intensive applications today. sessions developer program, tizen, ui/ux prism: the new ux development tool and process in today’s environment of rapid and unpredictable transformation, establishing a creative and increasingly collaborative tech culture is one of the most challenging requirements. in this session, we would like to introduce a new method to revolutionize the tizen platform-based app development process. a new development process named prism automates most of the inefficient overheads from design to implementation of app ui, innovatively improving app development productivity. we will introduce prism-based development process and deliver this innovative app development culture to developers through the sessions. sessions developer program, smart appliances, tizen remote test lab: what’s new in tv development environment the current tizen tv development environment, represented by emulator and tv, is a very limited support method for developers. depending on the version of emulator, the latest features currently supported by the tv may not be available, and various models of physical tvs may be required to verify actual operation. rtl tv tries to overcome the limitations of the current development environment. sessions contents & service, monetization, data samsung tv plus: the advanced ad-tech and partnerships that fund free tv samsung’s free ad-supported tv (fast) service “tv plus” has been a breakout success. although it looks and feels like traditional tv, it is anything but! behind the scenes of this slick tv & mobile experience is high-performance technology, vast amounts of data & algorithms, and a thriving partner ecosystem. join this session to learn more about the mind-boggling world of advertising technology, how it works, and how multiple companies come together to provide free tv to millions of consumers worldwide. sessions android, contents & service samsung wallet, it's convenient, personal and safe as the growth of digital wallets skyrockets, samsung recently announced samsung wallet – a new platform bringing almost all of the cards you’d typically find in a physical wallet, as well as important documents, into one easy-to-use and secure mobile application. as samsung wallet rapidly expands its content set, find out more about the future of digital wallets and how open api’s can allow developers to build integrations for this service. sessions iot, security & privacy smartthings edge: the next level experience discover how samsung is transitioning the smartthings-published groovy dths to edge drivers while maintaining a seamless experience for our users. we’ll walk through the process of onboarding edge-based devices and how to set up an automation with an edge device that runs locally. sessions iot, monetization, smart appliances smartthings energy service introduction of smartthings energy service and how partners (energy companies, smart device mfgs, etc) can integrate to provide a seamless energy management service for their consumers leveraging samsung's smartthings energy ecosystem. sessions iot, contents & service, open innovation smartthings find: find alongside 200+ million users smartthings find is samsung’s fastest growing service, powered by more than 200 million galaxy users. discover some of the new features and functions added over the past year and learn how partners can leverage the service to innovate their own solutions to meet the needs of businesses and consumers alike. sessions iot, contents & service, open innovation smartthings platform enhancements for openness and interoperability the smartthings platform continues to evolve to promote openness and interoperability. in this session, we will share some exciting new updates to the smartthings platform to support matter and thread, and discuss the home connectivity alliance. sessions health, tizen telehealth in samsung devices samsung display device (smart tvs & smart monitors) users will be able to launch telemedicine service within the samsung products. once you pick your physician, you can use one of the approved usb cameras to connect to the tv and jump on a video call with a physician via external service provider's built-in web applications. after a few account setup process on mobile / pc, you can easily start your session any time on tv without any additional complicated inputs. at your session, you can also receive a prescription to be filled in at a mail-in online pharmacy (pc or mobile) to receive prescription drugs at your doorstep. sessions open innovation, enterprise, productivity the next generation samsung retail solutions in a mobile-first world, device convergence, simplification, ergonomically designed accessories, sw solutions and the connected galaxy ecosystem are helping to boost productivity and efficiency in the retail industry. in this session, we will explore how the next generation of retail solutions are shaping the industry’s future and will take a closer look at samsung’s three major retail solutions - data capturing, payment, and push-to-talk. sessions developer program, mobile, android the samsung knox partner program: partner success journey the samsung knox partner program (kpp) equips you with everything you need to build ideas and market your mobile solutions. in this session, we will take a look at some of our partners’ solutions and how collaborating with the samsung kpp has helped enhance their user experience. join us to see why kpp is causing a stir in the business developer community! sessions enterprise, tizen tizen everywhere this session highlighted samsung's direction and goals for the enterprise and b2b markets, focused on taking tizen to the next level on so many platforms. various enterpriser displays based on tizen and solutions suitable for business purposes will always be together. tizen enterprise platform will provide all the technology infrastructure you need, including the samsung developers portal for b2b for developer support and the samsung apps tv seller office for custom application support in your own business. after announcing "tizen open" at sdc in 2019, samsung established licensing system to provide tizen tv os to other tv makers. in order for partners to develop tizen tv products faster, samsung prepared reference tv solution. in europe, australia, türkiye, tizen tvs have been released sequentially through more than 10 tv brands since september 22. sessions wearable, design, android watch face studio's first journey and expectation for next a must-have to create beautiful watch faces! watch face studio (wfs) is now a little over a year old. hear the developers of wsh share the highs and lows of bringing the tool to life and meet the designers responsible for creating the eco watch face. this session is an insight into the year-long journey to create wfs – and the story of where we’re going next. sessions iot, tizen, ui/ux what's new in tizen? are you curious about the direction in which intelligent iot platform “tizen” is developing? this session introduces ui assistant technology and extended 3d ui framework for providing advanced user experience, and explains innovative technologies that make run the tizen platform on top of the android hardware abstraction layer to facilitate securing new hws. and introduce the iot standard 'matter', which will be newly supported on tizen. finally, we provide a guide and tip for cross platform application development. sessions ai, iot, smart appliances what’s new in bixby for smart home bixby brings the smart home experience to life with the power of voice. find out how our new tool, bixby home studio, will enable device manufacturers to build more intelligent, more engaging voice experiences for smartthings-connected devices. sessions mobile, design, ui/ux what’s new in one ui 5 one ui 5 pushes personalization and productivity to the next level. explore new features that enable you to build a galaxy experience that reflects your personal style and help you to get more done on all your devices, wherever or whenever you need to.
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
docseason 3, episode 4 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 chris benjaminsen, frvr games, galaxy store chris benjaminsen, founder of frvr, the super successful game publisher with over 70 titles on samsung services not only do we chat about monetization and game revenue strategies, but how the frvr platform has allowed them to scale their global reach all music from today's show is from frvr games, composed by rasmus hartvig listen download this episode topics covered frvr publishing on galaxy store marketing discoverability monetization generating revenue in-app purchase iap in-app advertising iaa interstitial ads galaxy badge best of galaxy store awards acquiring games/studios diversity and inclusion helpful links frvr - frvr com frvr careers - careers frvr com frvr linkedin - linkedin com/company/frvr frvr youtube - youtube com/c/frvrgames gold train frvr - goldtrain frvr com chris benjaminsen linkedin - linkedin com/in/chrisbenjaminsen/ chris benjaminsen twitter - twitter com/benjaminsen galaxy badges - developer samsung com/galaxy-store/gsb-promotion samsung iap - developer samsung com/iap 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 four on today's show, i'm joined by chris benjaminsen, founder of frvr, the super successful game publisher with over 70 titles on samsung services not only do we chat about monetization and game revenue strategies, but how the frvr platform has allowed them to scale their global reach and the music from today's show is from frvr games, all composed by rasmus hartvig, enjoy hey, chris, welcome to the podcast chris benjaminsen 00 50 hey, tony thanks for having me yeah, so tony morelan 00 52 so i'm excited to chat with you because, you know, we've had game developers on the podcast, but never a game publisher let me first ask you though, who is chris benjaminsen? chris benjaminsen 01 02 like? that's a good question like, if i were to define myself, i think there's like two defining characteristics, like one is i must make things and the second one is, i detest repetition so if you come to my place, it's not unlikely i will cook but it's very unlikely i'm cooking something i made before so you know, it might be good might not be good, right? but you know, that, that drives and making things like it, it can be origami, it can be computer games that can be like, doesn't really matter, as long as i'm sort of producing something, and then i really don't like doing things twice right you know, like, anything that's routine is just boring tony morelan 01 41 so you're an explorer, then? chris benjaminsen 01 43 i guess so i guess so yeah tony morelan 01 47 so you're with frvr? what exactly is your role? and what is frvr? chris benjaminsen 01 53 like, like, i'm the i'm the original founder, the company, right? you know, and my role today is mostly around working together with massive companies such as samsung, i lead a team at frvr that does that and if you're, if you were to describe frvr, as a company, we're a platform and a publisher okay, so we have a platform that allows game developers to make fantastic games and with all the services that they need to do to do so basically, anything in between a, a game developer and a consumer, and then we also the publisher, we actually make sure that the games get in front of the right user, and they have an opportunity to play those games tony morelan 02 29 okay, what does frvr stand for? it's an acronym, does it have a deep meaning? chris benjaminsen 02 35 no, it's not like, like, a lot of people are sort of asking us if we have french vr company, which we're not yeah, but, but like, like, if rbis is technically forever, without the vowels okay, you can trademark frvr you can trademark forever, at least, not unless you have apple liberal money, right? so so if we say if i'm yeah, because if you could locally use you sort of the full pronunciation you can actually use the trademark so there's a bunch of stupid rules there tony morelan 03 07 interesting interesting so before we dive into frvr, tell me about your journey what led you into the mobile gaming area, and then specifically into creating frvr, chris benjaminsen 03 17 i've been in the, in the games industry for like, more than 20 years, my first job, sort of professional job ever was to make a real time multiplayer games in javascript and if i'd be honest, my seventh startup in total and my second year, and my third platform company over also have like a long history of sort of building companies in this space and i've been very fortunate i never managed to go bankrupt but one of these companies so far, right, you know, so little bit proud about that tony morelan 03 48 oh, that's great it definitely plays into you know, when you first started, you had said that, you know, you're not going to repeat much so you said seven companies that you've started, chris benjaminsen 03 58 you had all very different companies, and some of them were like, like, like, very small and, and never got successful, anything like that right? it's just like the companies apparently gets bigger and bigger every time i try yeah, there might be there might be new startups in the future as well but for now, if rbis is a very exciting company to work at, and definitely want to want to spend my time tony morelan 04 20 so i know one of those companies you had started you actually, it was a pretty successful company that you ended up selling but you came away with that from with a lot of lessons learned, i would say is that correct? chris benjaminsen 04 33 yeah so like, like, in a previous life, build a platform company that did infrastructure for cash or mobile, social and in that company, there was a lot of people building games on top of our infrastructure and 1000s of developers right and, and there was there's a few significant learnings from that so one was that building a company that just charges other people for services is not a particularly good business, a lot of money was made by the developers on top of our platform where we are not making quite a lot of money so you know, make sure that that you actually participate where, where the value is if you want to be a publisher and then the second learning was that the successful developers were not the ones who had the best at making games, right? so there's, there's not a strong connection between sort of making games that are fun to play and the economic success that those developers were able to see so if you want to be successful in the game space, and this is particularly true in the in the mobile game space, you need to be good at a lot of other things that has nothing to do with game development, such as a user acquisition, and revenue optimization, and data and all these things and that, you know, i don't think there's anything wrong with that but if you are somebody who really loves making kickass games, you're missing the 90% if you also want to be successful at that tony morelan 05 57 it's interesting you say that, you know, i had on the podcast a few weeks ago, peter and tobias from biodome games, they have their game gold digger, frvr yeah and it was peter, who had a great quote, saying that he was chatting with one of his partners, who had said, you know, for once, can you stop trying to be so artistic in your games and just build a game that can be successful? and, you know, we all had a good laugh at that chris benjaminsen 06 23 yeah and, you know, i think all industries are like that, right you know, you probably have to be good at a multitude of different disciplines to be successful but, but the games industry, being one of the most valuable entertainment industry, two worlds is, of course, also one of the most competitive and that competitive landscape it's a very, it's a very hard place for, for most people to compete and, and the market sentiment is sort of dominated by survival bias yeah right you know, like, like, the people who won the lottery yeah you know, like, like an among us are like flappy birds so like these, these small teams that had an outsized hit, right, but that's like winning the lottery good luck with that yeah and tony morelan 07 04 i think a great example of that right now is wordle, in the phenomenon behind that chris benjaminsen 07 08 absolutely fantastic game, right you know, and i like these small puzzle games once in a while to come along i was like, 2048, as well, which was also originally made, i think, by an italian game developer, you know, just as a small example, fantastic, fantastic game as well yeah, tony morelan 07 25 definitely, in kind of going back to, you know, what i mentioned, peter, and tobias, they said that for them, you know, the key to their success was partnering with someone like frvr, so that they could just focus on creating the game and let everybody on your team handle everything that when it comes to publishing and marketing, so i think there's a huge value with where you guys are in this space chris benjaminsen 07 47 i hope so like, that's what we're trying to do we're trying to allow developers focusing on making fantastic games and then we took care of all the nitty gritty details of making those games available and i think we published the 39 platforms and then while also helping those developers make sure that the right users come into the games yeah, yeah because it's not it's not only just about the volume of people who play a game, it's more important to make sure that the right user plays the game sure, to get the kind of games that i like, it's not necessarily the kind of games that you like, right, for tony morelan 08 17 sure so let's talk a bit about the history how long has frvr been in existence? chris benjaminsen 08 22 so i think i think technically, they were written, sort of in the integration of the company was founded in must be 2016 okay and their written version of frb apps was decided to be the biggest, baddest lifestyle company you have ever heard of, and sort of sort of allowed me to go and travel the world without having to worry about expenses and it did that it did that very well like, very successfully however, like i'd had a corporate job in corporate america, i had moved to san francisco at this point in my life after having sold a previous company and i sort of managed to convince myself that everything that was wrong with my life was working it turned out everything that was wrong with my life was working for corporate america and it took me it took me like three weeks and a whole bunch of success to realize that and decide, oh, wow, there's a big opportunity here in what inevitably came if ivr that exists today yeah, i teamed up with a guy called brian meidell they joining co-founder came in and we started sort of getting serious about the company a few years after the original founding tony morelan 09 28 and it was brian actually, who had told peter, hey, for once, put artistic stuff aside and let's focus on you know, how to be successful here chris benjaminsen 09 36 yeah and like he's a fantastic executor right, you know, and that's, like, due to building big teams and sort of running productions a lot of repetition stuff i don't like right, yes really good at that tony morelan 09 48 that's great so how many employees are at frvr? chris benjaminsen 09 52 yeah, so i think we are 130 now so as of today, but yeah, like we find ourselves in a situation right now, where we are onboarding around 11 new people a month, so you're growing? yeah, every time you ask that question, the number would have changed? tony morelan 10 08 no, are these people are you focused in one headquarters? are you guys you know, all around the globe? chris benjaminsen 10 13 we have most of our people in in lisbon in portugal and that's predominantly where we are focusing on hiring okay, you know, post covid, the world has changed and, you know, we absolutely accept that some people want to be wherever it is they want to be so we also we also have offices in denmark, we have offices in united kingdom and we have a small office in malta as well, and a small office in spain so we have we have sort of different opportunities for people who wants to work in an office got it and then the majority of people are now in in disband portugal and that's also where we are mostly doing a tony morelan 10 50 hiring you yourself, though you are in the uk is that correct? yeah, i'm chris benjaminsen 10 53 in london, right? you know, i get to i get to be a special snowflake and decide where i want to live so i live in tony morelan 11 01 wonderful now under the frvr brand how many game studios do you guys have that you're working with? chris benjaminsen 11 07 we are publisher right? you know, so? we i think presently we work with around 20 okay, yeah other studios, right? so it's a non-insignificant amount but we have high aspirations, we want to get to a place where we can work with hundreds, if not 1000s of developers sure to do fantastic things tony morelan 11 28 so how many monthly players? do you get playing frvr games on all channels? chris benjaminsen 11 34 i get to it various, right like, like a lot of our success comes from viral traffic right okay so active users can range from i got a really bad month, 50 million to get month where we were we peek into, like, like 100 plus million mark wow, tony morelan 11 50 monthly active users that's crazy yeah, it's chris benjaminsen 11 53 a lot of people so far, i think like, like it's a number we track we think we've had around 1 6 billion absolute unique for the lifetime of the company tony morelan 12 03 wow and that is just in you know, you said the 2016 was the start of frvr chris benjaminsen 12 09 have you? i failed to remember it might have been 15 right but yeah, like plus minus a year sure tony morelan 12 16 so now let's talk about samsung and galaxy store with frvr, what are some of the popular titles that you guys offer on galaxy store? chris benjaminsen 12 24 so particularly on the galaxy store, like we have, i think we have like 12 games live, their most notice would be it's called tigger, frvr which, which is built by peter and team and then we have sort of our higher end games like a basketball and a hex and however, we do work with samsung in other ways, as well, they have this instance type product as well, where we are also present and we have i don't know; i think we've done like seven or eight different integration with samsung along the year so we are sort of everywhere on a samsung phone, including the galaxy appstore tony morelan 12 57 okay, so not just the galaxy app store but there's other different platforms that samsung offers frvr is involved in chris benjaminsen 13 04 yeah, so we work with, we work with samsung about building an experience in our first integration with what's in the product called bixby minus one home screen so when you swipe left on your on your phone, like we will be wearing, we had a cart where there was sort of quick links to our games, okay, we build an instant games type product together with samsung, we work quite a lot of that together and we have our games live there we also have integrations with the with the browser and like we exploring, basically, a big part of what frvr is, rather than trying to drag the user to where we want them to be, say, a mobile app store, we try to take the model and turn it inside out and bring people great games wherever they have already decided to want to be because it's very costly to drag a user somewhere else, right tony morelan 13 50 i see so if they're already there, you want to make your game available to them chris benjaminsen 13 54 yeah, yeah it's like, you know, if you're, if you're starbucks, right, people won't care if you can only get it in the airport, you actually have to be on a street corner close to where people sort of walk around, otherwise nobody is ever going to drink their coffee tony morelan 14 05 yeah, that's true that's true so how did this relationship with samsung for start? chris benjaminsen 14 10 we met samsung at a at a conference and they were like, can you give us games in like, four months? i think was the was the original question and we got the games to them in two days so wow so the answer was yes yeah tony morelan 14 24 that's a great way to start the relationship oh, yeah so why would you say it's important to offer your game on galaxy store? chris benjaminsen 14 31 like, again, you know, that those users there who love the galaxy store, and we want to have our games available to those users in that space and galaxy store is actually well performing? right you know, it's a samsung product and samsung phones are very high-end devices generally it's very, not only is it it's great to meet a consumer where they are they are also very high value users when people are playing from the front of samsung galaxy app store tony morelan 14 54 yeah, in what ways would you say galaxy store has helped you promote frvr games chris benjaminsen 14 59 for is the organic installs a fairly competent product? and it has all the features you would expect as a game developer, right? you know, so, so great access to in app purchases, great access to notifications, great access to distribution, right but we've also, we also really enjoyed working together with the samsung galaxy team and we have, like, among other things, we have an frvr category in the galaxy store that sort of exclusive to us it's only our games oh, no, no and we work together on seasonal featuring and to give feedbacks to us, you know, saying, hey, we think it would be fantastic if we could do some something around easter, for instance and then we go and work on that together and sort of find a, a process that works well together for both of us tony morelan 15 42 that's great and i'm sure that banner promotions are part of that is that chris benjaminsen 15 45 yeah, banner promotion, and i can promotions and like there's a lot of tools that samsung has in the toolbox to help out right? yeah and then we also push on the galaxy team to do more like we, we've sent a lot of feedback on the on the back-end tools and things like that and fantastically, it has impact, like we get better product right so for us, that's a fantastic partnership tony morelan 16 09 yeah and that's one of the things that actually pulled me into working for samsung was how open they were to feedback in wanting to improve their platform fantastic you know, you'd mentioned gold digger, frvr those are the guys they won our 2021 best of galaxy store award for best instant play game awesome game awesome guys, we were so happy to give that award tell me what it did mean for frvr to have one of your games win a best of galaxy store award? chris benjaminsen 16 37 it's a privilege, right? you know, and the credit goes to the game developer, they made that game? yeah right you know, we supported them along the way and, and of course, came with a lot of feedback and help them with technical issues and things like that but at the end of the day, you know, we have to be honest about the fact that the great games are made by the great developers, right, and also, as a platform publisher, provide the tools to make that a possibility but games are fundamentally a creative endeavor and you need massively traded people to make to make those games sure i'm, i'm a game developer myself as well, right you know, and i'm almost more proud of some of the games i've built and, you know, the very successful company that and if rbis, right, you know, because, you know, so it's sort of like an expression of something where you sat down and said, here's the thing i want to create, and now i've gotten it out right and i think to be as impede completely deserves getting that, that recognition from galaxy tony morelan 17 35 yeah success for a game definitely revolves around revenue tell me as far as frvr, what has been your strategy for generating revenue? chris benjaminsen 17 46 like so so from a, from a technical side, right, you know, we try to we try to make all avenues of generating revenue available in our platform, right so that means interstitial-based advertisement, it means reward the best advertisement? it means in app purchases, it means subscriptions it actually does not mean, banner advertisement, we don't do that because i don't like it no, really but you know, yeah, other than that, like, like, we sort of have all the technical capabilities, and then what we find and what we try to optimize for, it's not revenue, we try to optimize for engagement okay and there's a multitude of reasons for that, like so so like, one is the fact that i can't remember the specific number, but it's more than 90% of all value that is captured in the game is made by people who play the game more than once yeah, right you really want to have these long engagements with people, right and another fairly simple reason is it's a lot easier to take a game that has huge engagement, and turn it into a good business than it is to take a game with a with a strong monetization model and turn it into a great game right? so fundamentally, everything we focus on all our kpis, all our visions, and missions are around building experiences that people want to engage with for a long time and then revenue is something that happens as a result, they're off, rather than being sort of a driving factor and because we are good at distribution it because we, we are not sort of participating in the race to the bottom that is cost positive user acquisition on app stores, we can take the privilege that it is to be less aggressively monetizing than some of our competitors tony morelan 19 22 yeah, yeah so let's talk about some of the specifics here, when it comes to, you know, different ways to generate revenue you know, there's developers out there that may just be getting started in this space and so i want to help explain what some of those are so ip is in app purchase, kind of explain, like what is in app purchase chris benjaminsen 19 39 so new in app purchases, if you can somehow convince a user to pay for something in the game, right, you know, and, and how they pay it's actually quite different across the world so northern europe or usa, right? america has a distributor for a credit card, okay but if you're talking about a consumer in india, it's typically through a gift card or something like that why? they've gone into install and sort of funded a wallet, right but the fact of the matter is, what essentially ends up happening is you have you have an experience in your game that the user feels is worth the value of paying for and again, you know, like, like, like talking about engagement in games, right? why would a user be willing to, to sort of exchange money for something in a game? and that's typically related to the user's expectation of also playing this game two weeks from now? right? yes, they're investing yeah, you're investing in your future experience in this game? right? you know, so so it's another place where this this long-term engagement becomes very important, right? but a lot of times what people are buying are like, simple things, like more lives, or an item, or whatever it is that sort of, and in some of our games that are multiplayer, we even have people playing for things that are purely sort of cosmetic, buying a different hat, because then other people can see the hat that hat, but the hat, the hat has no function, right? sure tony morelan 20 57 so it's just being able to create their own identity, you know, within that game, chris benjaminsen 21 02 it's no different than people buying clothes in the real world, you know? tony morelan 21 05 sure, sure so how do you look at your player demographics for getting the best returns on iap? chris benjaminsen 21 10 i? well, first of all, that's a per game thing right? you know, we have, we have games that appeal to 50 plus women and we have games that appeal to like, like, a young male audience right so that's, that's very individualized per game fundamentally, though, there are some there are some core mechanics that always worked really well, if you can proposition a user to, to exchange money for time yeah so something where they can progress faster if they if they put money in is typically a very strong mechanic, regardless of who the consumer is and then, like we do the thing that successful game developers, do, we spend a lot of time looking at data and looking at, you know, what are the flows that leads to a conversion? so somebody's actually putting money into the system? how do we how do we balance those metrics such that we sort of get the most statistical value of, and we use, we use tools such as ad split testing, okay, where you run, run two versions of the game at the same time, and then you measure which one performs better? and then you make that diversion that everybody plays? tony morelan 22 16 yeah, yeah, no, that's great i've heard that that is a pretty important aspect, not just in the gaming industry, but just with, you know, ads and marketing to do a b testing chris benjaminsen 22 26 yeah, we even do something it's called multi variant testing, right and we should not go into the details, but it becomes very complex very quickly tony morelan 22 33 sure, sure so what other mobile game monetization models do you consider like, you know, premium paid apps or paid user acquisitions, you had mentioned that chris benjaminsen 22 43 we did experiment a little bit with premium paid apps, but it's a very, it's a very tough market and, and it's not, it's not something where we found a lot of a lot of success, like we generally see more successful, and we can just sort of allow anyone to play the games, and not without having that limitation, right and we do both interstitial based advertisement, which is unprompted and then rewarded video type advertisement, where the user gets a reward for watching an advertisement but when a user sort of opts to watch an ad, right, you know, so you could imagine that, so this tony morelan 23 14 is during gameplay, there would be a moment where then a video would play, and they would watch that chris benjaminsen 23 18 yeah so a simple example could be you know, that you have just died yeah and you can revive by watching an advertisement and not paying a coin okay right so giving the user the choice between, say, watching an advertisement and spending a bit of time versus spending a bit of their money, right, you know, so and it's a very high value format because the user has elected to watch an advertisement so you know, the users there, yes, you know, they're engaged and they're just sitting there waiting, right? so advertisements are typically willing to pay a high price for that type of advertising tony morelan 23 54 and you'd mentioned interstitial ads so explain what that is for someone who's new to game development? chris benjaminsen 24 00 yeah so it's a bit like to have to get on television so something is happening on your screen, and then suddenly does an advertisement and something else is happening, right? you know, so it's an ad that is that is shown to the user, like interstitial technically means an advertisement that runs before something starts, right but it's used interchangeably in the games industry to mean like an ad before something starts on ad in the middle of something on that after something happened okay, we try to be cautious of using those type of advertisements sort of out of order like we don't want to interrupt a user while they're playing yeah so we will typically only put those in so like, for whatever reason, your game session has ended, and you have just elected to press play again and that's where we would put in those type of advertisements you do have games out there, which are you can imagine you're playing a solitaire game and then put an ad pops up in the middle of it right and you have to sit down wait till you can continue your game and we try to stay away from that tony morelan 24 55 i see i see what about subscriptions have you guys read any subscription models on your games? so, yeah, we've chris benjaminsen 25 00 run a, we run a few experiments here and it's a relatively new area of monetization for us but we have run experiments where our games have been sort of presented as a games club so rather than having advertisement or having, you know, purchases in the game, you can just play them completely for free if you had a subscription through a third party, right and some of our debug games to the kind of stuff we're building now definitely lends itself well towards being able to support subscriptions subscriptions to free to play games these days, mostly expresses themselves as season passes so you like buy a season pass subscription, and then you get like, extra rewards while you play for a period of time and then that time period is up and then you know, you can buy the next season pass as well, or continue your subscription or whatever it is, right you know, that's, that's the model of like, a, like a fortnight or those type of games tony morelan 25 52 got it so we've talked about in app purchase, aap, you know, there's another category to monetization called ia, which is in app advertising and i think, under that falls, the, you know, the rewarded videos, these interstitial ads have also heard of something called offer walls can you explain what is an offer wall? chris benjaminsen 26 11 yeah, we actually don't think we have any games library or footballs anywhere but it's, it's basically, you know, you can get a reward in your game for doing another action right? so again, it's user opt in the use of one something and find alpha wallets typically, like extra coins, or whatever in the game and to get a get sort of a list of different options for things they could be doing right now to have some level of value and that can go all the way from, you know, signing up to a website, all the way up to you know, committing yourself to four years of sirius xm radio in the us, oh, really, you know, or whatever right? you know, and as there's different types of reward levels of that, right so but they can be significant, right so like that it's, it's sort of a way for other companies to interact with that consumer and get them to do something that has value to them and date and pay you for that service so it's a bit sort of a direct affiliate program or something like okay, okay yeah okay tony morelan 27 11 interesting so, you know, a lot of what we talked about now have been in game, you know, advertising for monetization so what about paid user acquisition? so actually going out there and advertising for your game? so you guys are active in that area? chris benjaminsen 27 23 not particularly, it's something we are exploring, and it is something that i believe it's going to be very important for the future of frp yeah but historically, it's not something that we done to a huge extent however, it is an area where we actually partner with the samsung galaxy appstore team, where we were looking at what is the best path for somebody who is publishing on the samsung galaxy app store to find sort of pockets of uses that can be that can be purchased right? tony morelan 27 51 okay okay so of all these different ways that we've talked about when it comes to monetization, what would you say is the most effective way in why? chris benjaminsen 28 00 and so there's many answers to that what has been the most successful for frvr suffice advertisement, that has mostly down to the kind of games that we have been building historically and the kind of games we've been building historically has mostly been the result of the capabilities for the platforms, our games has been available on, which, by and large, have not supported in app purchases however, if you were to look at where is the most potential value, it's most definitely in the in-app purchase space, right? like the potential value that you can derive from a single user is larger in app purchases than any other way you can monetize that user, even with subscriptions, right? make some simple math, you know, rewarded video is considered valuable, right but if you have a player, sort of watching 1000 ads a month, that might sort of in the united states be worth $20, or thereabouts, where $20 is not an uncommon average transactions for a central user to spending in app purchases, right and people typically buy more than once sort of the opportunity to create a great business around in app purchases is much higher, and opportunity to create a great business purely from advertisement tony morelan 29 08 got it? what would you say would be some advice that you can give for a developer looking to integrate iap? chris benjaminsen 29 15 like, like, it goes back to what we talked about earlier right? you know, build deep experiences, right? sure for like engagements, yeah, long engagements, and then then allow people to buy something that they, you know, feel like they're going to get value from a long period of time right and i think an important thing there is you must be trustworthy as a developer yeah right you know, like, like, like, the player must trust you to not to screw them over so if you have all kinds of other stuff into games, where they feel cheated, they're not going to give you their money or if you cheat them, they're only going to do it once right? yeah you know, so you actually have to provide something that brings real value to the user otherwise, they're, they're not going to engage with that thing right like they're not, they're not stupid they are very clever tony morelan 29 57 yeah so let's talk about a how you guys go about acquiring games for frvr? what do you look for? chris benjaminsen 30 03 like we look for, for great teams and i think it's important here that we are publisher, right? so we work with developers who take a fair amount of that total risk of building a game sometimes you find the games, right but predominantly, we work with great teams that is passionate about the game that they're working on and that's, that's mostly what we look for okay and then we help though, those developers to go and, and build fantastic games, right but due to the nature of our platform, at least how its structured right? now, you must basically build the game from scratch on top of stuff so so we're not a publisher that can sort of accept a game that somebody's already built, and say, yeah, we'll publish that it's more sort of a cool collaborative co development process, where we work together with developers to create fantastic things that work on top of our platform tony morelan 30 51 you know, i heard somewhere that between 50 to 1000 games are added to the app store's every day so i know it's a huge competition when it comes to games what's your strategy for discoverability? chris benjaminsen 31 03 i like as we talked about, go to the user where they are, rather than trying to drag them to the app store where it's very competitive, right and, like we use, we use all the tricks including branding, like we now have significant volume of people just searching for our games every day, both in app stores and on google, right and i truly did that basic strategy of saying let's bring our games to where the users are, has been very, very successful for us, and allowed us to sort of get in front of all of these consumers without diving deep into cost positive user acquisition and things like that and dental labs though, say they're hyper competitive, it gets very, very hard to get your game there, right and people talk about all of these things like influencer, marketing, and whatever and they don't call it user acquisition, but that's just what it is right? you know, it's just a different way of doing it right you know, it's all of these hacks to try to get in front of the user tony morelan 31 54 so are you using tools like creating promotional trailer videos and posting them on youtube? chris benjaminsen 32 00 we do we do that for some of our debug games, like a game like wells frvr yeah there's like there's a content team that creates content for social media that being you know; youtube and facebook and i think we even have posts on tik tok okay, tony morelan 32 14 so you guys have a ton of experience now, when it when it comes to publishing games? i'm sure you faced a few challenges can you share some stories and how you overcame those challenges? chris benjaminsen 32 24 a lot of our challenges is around scale right? you know, so we have 70 games on 39 platforms right wow and that didn't that in itself is a big number, right? to sort of, sort of manage this, like, that's more than 2000 combinations, almost 3000 combinations, right? we also have all of those games in 20 languages so when you when you sort of factor in those combinations, that's 50,000 combinations, right? and if you want localize screenshots, yeah, that's no way you could do that with humans, right and a lot of ways we try to solve with technology, right? that's what the what the frvr platform does, okay, encapsulate just the complexity of trying to do all of these things into sort of a unified platform and that goes for what is a good experience on the samsung galaxy appstore, like the samsung galaxy appstore has specific capabilities and specific api's and specific sort of things that work particularly well on a platform and if every developer had to consider that for all the platforms we were on, they would be spending none of their time making great games so we encapsulate that complexity into our platform and that's sort of the recipe that makes frvr work that's sort of removing humans from the equation, basically, tony morelan 33 42 that's interesting i mean, i can totally see how you guys are able to scale your reach with having so many games, but you've got quite a team behind so it's not all automated, you still do need to have those employees to support that chris benjaminsen 33 56 yeah, but like, 95% of those people work on the platform, right? to build the to build the infrastructure, right and frvr is also a company that's been growing quite a lot, i think, okay, two years ago, we were we were fewer than 20 people right? so a lot of the people who actually worked at frvr now people who joined us in the last year tony morelan 34 15 so what are some of the trends that you've seen in the in the gaming industry chris benjaminsen 34 19 or hotels that there's a lot of them right you know, there's a like i think the status trend i see is when you have say and among us or a fall guys or a flappy birds come out and be successful, like, like older people who try to get success by just following that recipe right? not realizing that the reasons those game were successful originally were sort of a bit of luck and timing and typically some external factors, like among us grew with discord and discord grew it among us yeah, right and that was sort of sort of the game to play on that platform, right and all the other games in that in that category by and large failed because it was just like it and not again but that right and, and a thing i think a lot of people have forgotten is that the game industry is cyclical, right? so you get a new channel it comes out it's very cheap and easy to get users on it initially and then that's the value of that platform goes up, it just becomes more and more expensive, right and people have sort of forgotten that's how the games industry used to work because mobile came along yeah and stuck around for a very long time to do to sort of these stores that were tied to specific devices right which, which is something you didn't really have on a on a pc, where there was more open competition on who could sort of have an app store tony morelan 35 40 yeah, yeah, for sure so tell me what is in the future for frvr chris benjaminsen 35 45 a lot more high-quality games? like that's basically our focus right now we are very fortunate, we just closed out a round funding wonderful yeah, thank you and like, the entire theme of that funding is we need, we need games of a completely different quality, right? so we are we are looking for fantastic studios who can come in and build games with sort of that depth that can support in app purchases that's the thing that we really want to focus on we want to want to have games that can have people play for years, not just once, right? tony morelan 36 18 yeah so as far vr is seeing this growth, what are you guys doing related to diversity and inclusion? chris benjaminsen 36 26 and we do a lot of things, right, like diversity and inclusion is something that we try to sort of have both across our games and across our company culture, right? so it can be everything from i personally created the hex frvr game so yeah, i got a nice email from somebody said, i love this game, but it can they call us i can see the different things, right so making sure that you're aware of the different kinds of colorblind people can be sure, sure and it also it also means a lot for hiring, like, like, what's the best candidate for the job is not necessarily the person that fits the checklist, the best that you see that you put on your yeah, other requirements yeah, in like diverse teams perform better so diversity is a is a virtue in the hiring process and it can be advantageous to hire the more diverse candidate if you have an opportunity to hire too, and like, but it means a lot like you have to be mindful of it everywhere those like natural biases, right now, a simple example of that is that the more bullet points you put on a on a job post about specific requirements, the less likely it is that females would, will apply for a job interesting, like a male candidate would sort of look at a long bullet point and see two things that good and go, yeah, i could totally do this, right? where if fema will see a long list and sort of say, i can only do two of these things i shouldn't apply for this right so you have to be mindful of those things all the way tony morelan 37 52 interesting yeah, i think giving someone the opportunity to really talk about their personality, and their value is probably the best way to go about finding that that good candidate chris benjaminsen 38 02 yeah and it's a big part of our it's a big part of our sort of, sort of, sort of hiring flow is the values right? you know, we also a, a company in portugal, that doesn't behave like a portuguese company, this particular company, company structure in particular is very hierarchical, right you know, some people might call it a bit old fashioned that's not the company we are, that's not the company we want to be so we want people that resonates with sort of a more flat structure, modern ways of working tony morelan 38 34 wonderful so if someone is interested, either in working for frvr, or their a game studio that want to bring their games to you, what's the best way for them to reach out to frvr? chris benjaminsen 38 45 like, like, send me an email first, right? you know, and, you know, i'll redirect you to the right person, my email is chris@frvr com so it's fairly straightforward, right? like, always happy to chat with people who do fantastic things tony morelan 38 57 yeah, that's great and we'll include links in the show notes too much about what we talked about today and into frvr websites so chris, i got to say, it was great to have you on the podcast i love learning all about frvr and what you guys are doing but let me ask when you're not working for frp or what is it that you'd like to do for fun? chris benjaminsen 39 15 i find most of my spare time is taken up by you know, walking the dog, or, you know, cooking food if it's some like i'm probably not good at cooking food in the winter but you know, like i like to grill outdoors and whatever right you know, and i actually try to keep a fairly strict work life balance wonderful so you know i am one of the people who like go into the office but mostly yes a way to not work while i'm at home tony morelan 39 40 that's great well hey, we're just about to hit the springtime of the year and soon will come summer so i'm sure you're going to enjoy lots of outdoor grilling when the when the season comes chris benjaminsen 39 49 hopefully, you never know where they're somewhere in london right? you know, that might be like two days where it's impossible that's tony morelan 39 56 awesome hey, chris, really appreciate you coming on the podcast today chris benjaminsen 39 59 no, thank do so much for having me closing 40 01 looking to start creating for samsung, download the latest tools to code your next app, or get software for designing apps without coding it 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 40 17 the samsung developers podcast is hosted by tony morelan and produced by jeanne hsu
Distribute Galaxy Store
doccontent publish api reference this page lists the parameters, country codes, and language codes used with the view seller’s app details response and modify app data request in the content publish api [ { "contentid" "000007654321", "apptitle" "the best app ever!", "icon" "https //img samsungapps com/content/d33aazz11a/2021/0214/iconimage_20210214000000000 png", "iconkey" null, "contentstatus" "registering", "defaultlanguagecode" "eng", "applicationtype" "android", "longdescription" "the app that solves all your problems ", "shortdescription" "", "newfeature" "", "agelimit" "0", "chinaagelimit" "0", "opensourceurl" "", "privatepolicyurl" "", "youtubeurl" "", "copyrightholder" "", "supportemail" "support@mycompany com", "supportedsiteurl" "", "binarylist" [ { "filename" "app_filename apk", "versioncode" "3", "versionname" "3", "packagename" "my package name", "nativeplatforms" null, "apiminsdkversion" "26", "apimaxsdkversion" null, "iapsdk" "n", "gms" "y", "filekey" null } ], "standardprice" "0", "paid" "n", "autoaddcountry" false, "publicationtype" "01", "startpublicationdate" null, "stoppublicationdate" "2023-01-02", "usexportlaws" true, "reviewcomment" null, "reviewfilename" null, "reviewfilekey" null, "edgescreen" null, "edgescreenkey" null, "edgescreenplus" null, "edgescreenpluskey" null, "notifyresult" [], "sellcountrylist" [ {"countrycode" "aut", "price" "0"}, {"countrycode" "deu", "price" "0"}, {"countrycode" "esp", "price" "0"}, {"countrycode" "fra", "price" "0"}, {"countrycode" "ita", "price" "0"}, {"countrycode" "jpn", "price" "0"}, {"countrycode" "kor", "price" "0"}, {"countrycode" "nld", "price" "0"}, {"countrycode" "tur", "price" "0"} ], "supportedlanguages" ["deu", "eng", "fra", "ita", "jpn", "kor"], "addlanguage" [ { "languagecode" "deu", "newfeature" "", "description" "the app that solves all your problems ", "apptitle" "the best app ever!", "screenshots" [ { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0223/deu/screenimage_202102230000000002 png", "screenshotkey" "screenimage_202102230000000002_filekey", "reuseyn" false }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0223/deu/screenimage_2021022300000000 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0223/deu/screenimage_20210223000000009 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0223/deu/screenimage_202102230000000001 jpeg", "screenshotkey" null, "reuseyn" true } ] } ], "screenshots" [ { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0218/eng/screenimage_20210218000000000 png", "screenshotkey" "screenimage_20210218000000000_filekey", "reuseyn" false }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0218/eng/screenimage_20210218000000001 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0218/eng/screenimage_20210218000000002 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0218/eng/screenimage_20210218000000003 png", "screenshotkey" null, "reuseyn" true } ], "category" [ { "name" "others", "type" "one_depth_category" }, { "name" "music", "type" "general_category" } ], "heroimage" "https //img samsungapps com/content/d33aazz11a/2021/0219/eng/coverimage_20210219000000007 png", "heroimagekey" null } ] general parameters name type description addlanguage addlanguage[] add local languages in which you want to provide application information dismiss when null is entered neither add nor delete content , remove all when an empty distribution is entered see addlanguage parameters agelimit int the samsung age rating of the app see age category under age rating for more information valid values 0, 4, 12, 16, 18 chinaagelimit string age restriction for china required value if any of the code values in the defaultlanguagecode or addlanguage list are in chinese valid values 0, 3, 8, 12, 16, 18 apptitle string the name of the app that is displayed in your galaxy store listing maximum 100 bytes the app title can be unique or the same as any other app title registered in seller portal or distributed in galaxy store per the app id policy, if you register an app title with an app id that are the same title and id of a previously registered app, then you cannot choose the distribution devices and countries as the previously registered app autoaddcountry boolean automatically distribute the app to a new country or group when it initially becomes available y distribute your app to a new country or group n do not distribute your app to a new country or group binarylist binaryinfo[] dismiss when null is entered neither add nor delete content , remove all when an empty distribution is entered see binarylist parameters category category[] one or more app store groups that best describe the app see category parameters cannot be modified contentid string required in a request the unique 12-digit identifier of the app copyrightholder string for apps that have copyrighted content, the name of the copyright holder of the app maximum 100 bytes if a company is the holder, enter the company name if an individual is the holder, enter the individual's name when specified, the copyright holder's name is displayed in the galaxy store listing instead of the seller's name when not specified, the seller's name is displayed as the copyright holder defaultlanguagecode string required in a request the language in which you provide application information see language codes for addlanguage and defaultlanguagecode for a list of supported languages note if the app is published in more than one country, in order to pass app review, this must be set to "eng" edgescreen image file name of the image file app icon or logo file that must be a png file, 160x2560 pixels, and up to 1024 kb edgescreenkey string the filekey associated with the uploaded file in a request, you must create a session id and then upload the file to obtain the filekey edgescreenplus image file name of the image file app icon or logo file that must be a png file, 550x2560 pixels, and up to 1024 kb edgescreenpluskey string the filekey associated with the uploaded file in a request, you must create a session id and then upload the file to obtain the filekey heroimage image file name of the image file in some countries, the image file displayed at the top of the app detail page jpg or png file, 1200x675 pixels, and up to 1024 kb you can use this field if you select a category name of games heroimagekey string the filekey associated with the uploaded file in a request, you must create a session id and then upload the file to obtain the filekey icon image file name of the image file app icon or logo file for an android app, it must be a png file, 512x512 pixels, and up to 1024 kb iconkey string the filekey associated with the uploaded file in a request, you must create a session id and then upload the file to obtain the filekey longdescription string explanation of the app including a description, features, requirements, and supported languages that is displayed in your galaxy store listing maximum 4000 bytes if the app has two or more distribution countries, the description must be in english for non-english apps, the description must contain a warning stating that the full features of the application may not be available on devices that do not support the app's languages for link-follower galaxy watch apps, the description must inform users that the linked app must be installed newfeature string explanation of the changes made to an updated app maximum 4000 bytes use this field if the app is being updated notifyresult string[] email address es that are notified when the status of the app registration changes maximum 20 email addresses opensourceurl string for apps that use or include open source software, the url of the open source license maximum 200 bytes paid boolean required in a request whether or not app download requires a user payment y users must pay to download the app n the app is free, users can download it without payment privatepolicyurl string for apps that have a privacy policy that require a separate notification, the url of the app privacy policy maximum 200 bytes if a privacy policy is not specified, the category may be changed during certification required if the kids category is selected optional for all other app categories publicationtype string required in a request when the app is published 01 publish automatically publishes the app after the pre-review phase has completed 02 publish on date when the app has passed the pre-review phase, the app sale starts automatically on the date specified by startpublicationdate 03 publish manually the seller must publish the app after all phases of the review process have successfully completed reviewcomment string information to help with the evaluation of the app to determine whether or not the app is to be distributed maximum 4000 bytes reviewfilekey string the filekey associated with the uploaded file in a request, you must create a session id and then upload the file to obtain the filekey screenshots screenshot[] dismiss when null is entered neither add nor delete content , remove all when empty distribution is entered see screenshots parameters sellcountrylist sellcountry[] countries and groups of countries to which the app is to be distributed dismiss when null is entered neither add nor delete content , remove all when empty distribution is entered see sellcountrylist parameters shortdescription string brief explanation of the app displayed in the chinese galaxy store listing maximum 40 bytes use this field if simplified chinese is one of your selected languages standardprice string standard price in usd united states of america dollars that determines the default country-specific price for all distribution countries startpublicationdate string enter as yyyy-mm-dd hh mm ss when distribution of the app in galaxy store begins when publicationtype is set to 02 stoppublicationdate string enter as yyyy-mm-dd when distribution of the app in galaxy store stops supportedlanguages string[] one or more languages that the app presents graphically or audibly in its ux, instructions, or other ways communicating to users see language codes for supportedlanguages for a list of supported languages supportemail string email address of the person to whom app end-users can send inquiries maximum 100 bytes supportedsiteurl string url of the available end-user support site for the app maximum 200 bytes usexportlaws boolean whether or not you certify that the app is in compliance with all applicable u s export laws for export to other countries y you certify your app is in compliance n you do not certify your app if your app is not in compliance, it cannot be submitted for validation and distribution youtubeurl string youtube video id of a youtube video related to the app 11 characters the initial screenshot and hyperlink of the video is automatically displayed in the first screenshot location of the galaxy store listing addlanguage parameters "addlanguage" [ { "languagecode" "deu", "newfeature" "", "description" "the app that solves all your problems ", "apptitle" "the best app ever!", "screenshots" [ { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0223/deu/screenimage_202102230000000002 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0223/deu/screenimage_2021022300000000 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0223/deu/screenimage_20210223000000009 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0223/deu/screenimage_202102230000000001 jpeg", "screenshotkey" null, "reuseyn" true } ] } ] name type description languagecode string required if you are updating addlanguage add a language in which you want to provide application information see language codes for addlanguage and defaultlanguagecode for a list of supported languages newfeature string explanation of the changes made to an updated app maximum 4000 bytes description string required if you are updating addlanguage explanation of the app including a description, features, requirements, and supported languages that is displayed in your galaxy store listing maximum 4000 bytes for non-english apps, the description must contain a warning stating that the full features of the application may not be available on devices that do not support the app's languages for link-follower galaxy watch apps, the description must inform users that the linked app must be installed apptitle string required if you are updating addlanguage the name of the app in the selected language that is displayed in your listing of a galaxy store that supports the language screenshots screenshot[] dismiss when null is entered, remove all when an empty distribution is entered see screenshots parameters to remove all content from this parameter, leave it blank in the request for example, "addlanguage" "" to keep the existing content for this parameter neither add nor delete content , set it to null for example, "addlanguage" "null" binarylist parameters "binarylist" [ { "filename" "app_filename apk", "binaryseq" "1", "versioncode" "3", "versionname" "3", "packagename" "my package name", "nativeplatforms" null, "apiminsdkversion" "26", "apimaxsdkversion" null, "iapsdk" "n", "gms" "y", "filekey" null } ] name type description apimaxsdkversion int the maximum api level or os version supported by the binary file apiminsdkversion int the minimum api level or os version supported by the binary file binaryseq int required when changing existing binary data copy the value from the contentinfo response this value is not visible in seller portal filekey string required for new registration or replacement of a binary file the filekey associated with the uploaded file in a request, you must create a session id and then upload the file to obtain the filekey filename string name of the binary file gms boolean required if you are updating binarylist whether or not the app provides the user with any google™ services such as google maps™, gmail™, and talk y the app provides one or more google services n the app does not provide any google services the distribution of an app that provides the user with any google services is prohibited in some countries such as china and is automatically enforced by seller portal when registering a new version of a binary file, this setting can be changed, if needed iapsdk boolean whether or not the app provides in-app purchase items using samsung in-app purchase iap sdk y the app uses samsung iap n the app does not use samsung iap nativeplatforms string supported architecture information valid values null, 32bit, 32/64bit, or 64bit packagename string the app id maximum 1,000 bytes versioncode string integer value that represents the version of the app code in the binary file relative to other versions versionname string the release version of the app code in the binary file that is displayed in galaxy store to add a new binary to your app, append a new set of the parameters to the existing binarylist you can register up to 20 binary files and the extensions of all binaries registered for an app must be identical to remove all content from this parameter, leave it blank in the request for example, "binarylist" "" to keep the existing content for this parameter neither add nor delete content , set it to null for example, "binarylist" "null" for example, to add a new binary, if this is the binarylist in the contentinfo response "binarylist" [ { "filename" "app_filename apk", "binaryseq" "1", "versioncode" "3", "versionname" "3", "packagename" "my package name", "nativeplatforms" null, "apiminsdkversion" "26", "apimaxsdkversion" null, "iapsdk" "n", "gms" "y", "filekey" null } ] change the binarylist parameter to this in the request to add the new binary uploaded with the fileupload api "binarylist" [ { "filename" "app_filename apk", "binaryseq" "1", "versioncode" "3", "versionname" "3", "packagename" "my package name", "nativeplatforms" null, "apiminsdkversion" "26", "apimaxsdkversion" null, "iapsdk" "n", "gms" "y", "filekey" null }, { "binaryseq" "2", "gms" "y", "filekey" "<new-binary-filekey>" } ] or, to replace the existing binary instead of appending a new one "binarylist" [ { "binaryseq" "1", "gms" "y", "filekey" "<new-binary-filekey>" } ] see app binary registration for more details category parameters "category" [ { "name" "others", "type" "one_depth_category" }, { "name" "music", "type" "general_category" } ] name type description name string one or more app store groups that best describe the app available categories and sub-categories depend on the platform, binary files, permissions, and other factors unless governed by distribution country requirements, the app is listed in galaxy store under one or both categories and sub-categories if the category selected is not suitable for the application, it may be changed automatically select from one of the following kids, games, travel, social, music, decoration, office, photo, book, lifestyle, tool, video, system, finance, shopping, education, or traffic health type string required if a name is specified that has a subcategory see next table one or more app store sub-groups that best describe the app category name sub-category type kids valid values play, learning, story games valid values puzzle, online game, action/adventure, shooting, racing, strategy, board, role playing, arcade, card, casino, casual, music, simulation, sports, trivia, wordby selecting a specific game sub-category arcade, card, casino, casual, music, simulation, sports, trivia, word , you are not allowed to select china for the country of sale screenshots parameters "screenshots" [ { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0223/deu/screenimage_202102230000000002 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0223/deu/screenimage_2021022300000000 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0223/deu/screenimage_20210223000000009 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0223/deu/screenimage_202102230000000001 jpeg", "screenshotkey" null, "reuseyn" true } ] name type description screenshotpath image file image file of app screenshot to be displayed in your galaxy store listing jpg or png file, 320-3840 pixels with a maximum 2 1 aspect ratio you must register 4-8 screenshots if more than eight screenshots are uploaded, only the first eight images are displayed if you register a link to a youtube video, a screenshot of the video and the link is displayed automatically in the first screenshot location of the galaxy store listing screenshotkey string set to null if you are re-using the same screenshot if you want to replace the screenshot, set this to the image filekey create a session id and then upload the file to obtain the filekey and set the reuseyn parameter to false reuseyn boolean required if you are updating screenshots whether you want to continue using the existing screenshot true re-use the screenshot false replace the screenshot enter the filekey to the image using the screenshotkey parameter to remove all content from this parameter, leave it blank in the request for example, "screenshots" "" to keep the existing content for this parameter neither add nor delete content , set it to null for example, "screenshots" "null" if you want to remove one or more screenshots, remove it from the request parameters for example, if these are the screenshots parameters in the contentinfo response "screenshots" [ { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0218/eng/screenimage_20210218000000000 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0218/eng/screenimage_20210218000000001 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0218/eng/screenimage_20210218000000002 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0218/eng/screenimage_20210218000000003 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0218/eng/screenimage_20210218000000004 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0218/eng/screenimage_20210218000000005 png", "screenshotkey" null, "reuseyn" true } ] to remove the last two screenshots, change the screenshots parameters to this in the request "screenshots" [ { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0218/eng/screenimage_20210218000000000 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0218/eng/screenimage_20210218000000001 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0218/eng/screenimage_20210218000000002 png", "screenshotkey" null, "reuseyn" true }, { "screenshotpath" "https //img samsungapps com/content/d33aazz11a/2021/0218/eng/screenimage_20210218000000003 png", "screenshotkey" null, "reuseyn" true } ] sellcountrylist parameters "sellcountrylist" [ {"countrycode" "aut", "price" "0"}, {"countrycode" "deu", "price" "0"}, {"countrycode" "esp", "price" "0"} ] name type description countrycode string required if you are updating sellcountrylist countries and groups of countries to which the app is to be distributed see country codes for sellcountrylist for the list of country codes price double country-specific price in the local currency the price must fall within the minimum and maximum allowable price for the country, if applicable prices may vary by country if the price is below the minimum allowable price for a country, it is changed to the minimum payment amount if the price is above the maximum allowable price for a country, it is changed to the maximum payment amount if the price is null or is not set, the standard price is applied if this is a paid app, the price cannot be set to 0 zero if this is a paid app and the price is set to 0, an error is returned see entering information on country/region and price for more details to remove all content from this parameter, leave it blank in the request for example, "sellcountrylist" "" to keep the existing content for this parameter neither add nor delete content , set it to null for example, "sellcountrylist" "null" country codes for sellcountrylist sorted by region, then alphabetically by country name europe "aut" "austria", "bel" "belgium", "bgr" "bulgaria", "hrv" "croatia", "cze" "czech", "dnk" "denmark", "est" "estonia", "fin" "finland", "fra" "france", "deu" "germany", "grc" "greece", "hun" "hungary", "irl" "ireland", "ita" "italy", "lva" "latvia", "ltu" "lithuania", "lux" "luxembourg", "nld" "netherlands", "nor" "norway", "pol" "poland", "prt" "portugal", "rou" "romania", "srb" "serbia", "svk" "slovakia", "esp" "spain", "swe" "sweden", "che" "switzerland", "tur" "turkey", "gbr" "united kingdom" cis "blr" "belarus", "kaz" "kazakhstan", "rus" "russia", "ukr" "ukraine" asia "aus" "australia", "chn" "chinese", "hkg" "chinese hong kong", "twn" "chinese taiwan", "ind" "india", "idn" "indonesia", "jpn" "japan", "kor" "korea", "mys" "malaysia", "nzl" "new zealand", "phl" "philippines", "sgp" "singapore", "tha" "thailand", "vnm" "vietnam" america "arg" "argentina", "bra" "brazil", "can" "canada", "chl" "chile", "col" "colombia", "mex" "mexico", "per" "peru", "usa" "usa" middle east and africa "dza" "algeria", "bhr" "bahrain", "egy" "egypt", "irn" "iran", "irq" "iraq", "isr" "israel", "jor" "jordan", "kwt" "kuwait", "lbn" "lebanon", // only free applications are available "lby" "libya", "mar" "morocco", "omn" "oman", "qat" "qatar", "sau" "saudi arabia", "zaf" "south africa", "tun" "tunisia", "are" "united arab emirates", "yem" "yemen" groups "glb" "global a", "glf" "global a free", // only free applications are available "isu" "global free", // only free applications are available "gpb" "pan latin free", // only free applications are available "gpf" "pan-africa english ", // only free applications are available "gpa" "pan-africa french ", // only free applications are available "gpl" "pan-latin" "bts" "beta test store" // only free applications are available language codes for addlanguage and defaultlanguagecode sorted alphabetically by language "ara" "arabic", "bul" "bulgarian", "zho" "chinese simplified", "002" "chinese traditional", "hrv" "croatian", "ces" "czech", "dan" "danish", "nld" "dutch", "eng" "english", "est" "estonian", "fin" "finnish", "fra" "french", "gla" "gaelic", "deu" "german", "ell" "greek", "heb" "hebrew", "hun" "hungarian", "ind" "indonesian", "ita" "italian", "jpn" "japanese", "kaz" "kazakh", "kor" "korean", "lav" "latvian", "lit" "lithuanian", "nor" "norwegian", "fas" "persian", "pol" "polish", "por" "portuguese", "ron" "romanian", "rus" "russian", "srp" "serbian", "slk" "slovakian", "spa" "spanish", "swe" "swedish", "tha" "thai", "tur" "turkish", "ukr" "ukrainian", "vie" "vietnamese" language codes for supportedlanguages sorted alphabetically by language "ara" "arabic", "hye" "armenian", "asn" "assamese", "aze" "azerbaijani", "eus" "basque", "ben" "bengali", "bul" "bulgarian", "cat" "catalan", "zho" "chinese simplified", "002" "chinese traditional", "hrv" "croatian", "ces" "czech", "dan" "danish", "nld" "dutch", "eng" "english", "est" "estonian", "fas" "farsi", "fin" "finnish", "fra" "french", "glg" "galician", "kat" "georgian", "deu" "german", "ell" "greek", "guj" "gujarati", "hau" "hausa", "heb" "hebrew", "hin" "hindi", "hun" "hungarian", "isl" "icelandic", "ibo" "igbo", "ind" "indonesian", "gle" "irish", "ita" "italian", "jpn" "japanese", "kan" "kannada", "kaz" "kazakh", "khm" "khmer", "kor" "korean", "lao" "lao", "lav" "latvian", "lit" "lithuanian", "mkd" "macedonian", "msa" "malay", "mal" "malayalam", "mar" "marathi", "mon" "mongolian", "bur" "myanmar", "nep" "nepali", "nor" "norwegian", "ori" "oriya", "pol" "polish", "por" "portuguese", "pan" "punjabi", "ron" "romanian", "rus" "russian", "srp" "serbian", "sin" "sinhala", "slk" "slovakian", "slv" "slovenian", "spa" "spanish", "lat" "spanish_latin", "swe" "swedish", "tam" "tamil", "tel" "telugu", "tha" "thai", "tur" "turkish", "ukr" "ukrainian", "urd" "urdu", "uzb" "uzbek", "vie" "vietnamese", "yor" "yoruba"
Learn Developers Podcast
docseason 1, episode 2 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 dan appelquist samsung internet developer advocacy in this episode of pow, i interview dan appelquist, director of developer advocacy for samsung internet dan first got involved with web browsers way back when the internet first got started, and he was heavily involved with the web standards movement that was established at that time soon after, dan relocated to london, england, and remains there today, working out of the samsung uk office listen download this episode topics covered the beginning of mobile web web standards and user experiences the benefits of samsung internet browser privacy and security web developer ecosystem progressive web apps samsung internet and ar/vr augmented reality / virtual reality 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 i sat down with dan appelquist, director of developer advocacy for samsung internet dan first got involved with internet browsers way back when the internet first became a thing and he was heavily involved with the web standards movement that was established at that time soon after dan relocated to london, england and remains there today working out of the samsung, uk office hey, dan, thanks for coming on to the podcast i'm going to start with a real simple question who exactly is dan appelquist? dan appelquist 00 47 well, first of all, thanks for having me on the podcast i really appreciate it so i am director of developer advocacy for samsung internet, which is samsung's web browser i'm also somebody who's been working on the web since before there was a web so i have a background i started working in startups in the early nine, early and mid 90s, that were kind of working on web sites and web services for the publishing industry i went on and became a com, cto, being sent over to the uk from new york, to be cto for the street com at uk, which was this the uk arm of the street com i became a com refugee and because i was here in europe at the time in the early 2000s, i became involved in a lot of projects that were helping to bring the web to mobile, and were happening to helping to create digital mobile services, which was something where europe at that time was a lot farther ahead than the us so it's very interesting and exciting time to kind of be working with companies like vodafone, later telefonica to help build these kinds of services, emerging services for emerging devices and handsets and that kind of thing tony morelan 02 10 yeah, that must have been pretty exciting to have been, you know, working on technology, really, at the very beginning of something that was going to, you know, honestly, change our world forever so why is it that you would say that europe is further along than the us when it came to the start of the whole mobile web? dan appelquist 02 25 well, when in say 2001 2002, there were already color web phones that were coming onto the market here in the uk and elsewhere in europe that we're delivering digital services, like very simple digital services, but still digital services, news and online information on that kind of thing whereas i still had to really explain to my parents what it is that i was doing you know, people at that time in the us who really didn't think of their mobile phone as being for anything besides calling, even text messaging was not very well understood as a medium because the interoperability wasn't there between the different carriers around text messaging and it was only later that mobile digital services started to really develop and then the mobile internet came out of that whereas in europe, i would say my experience of it anyway has been was that with the standardization of gsm, across the continent, you had a much stronger base for delivery of mobile services across a standard range of handsets, standard range of networks, all that all that kind of thing all the technology was pretty, it was pretty standard tony morelan 03 36 and gsm is global system for mobile communications that's right dan appelquist 03 39 yeah yeah tony morelan 03 41 so the samsung internet, what exactly is samsung internet? dan appelquist 03 44 right so first of all, samsung internet is a web browser and for those who are familiar with web browsers, immune to other commonly known commonly used web browsers, especially on desktop computers, include google chrome, mozilla firefox, internet explorer from microsoft, which is increasingly being subsumed by microsoft's new browser, which is edge and then apple's safari browser probably are the biggies, the ones that people most people have heard about when it comes to market share, and especially on mobile samsung internet is also a browser that has a very strong market position and that's because we ship by default with every samsung device we're also part of the chromium project we're a browser that's built on top of the chromium, open source, project and code base that is the same code base at google chrome is built on top of it's also the same code base that microsoft edge is built on top of so there's a community of companies and organizations that are contributing into that into that open source project, including samsung and what we're doing is we're taking that and we're delivering samsung internet for android which is our kind of premium browser for the provides what we think of as the best user experience for the web on definitely on samsung devices, but we are also available across all android devices so any android device, you can download and install samsung internet and use it as your as your primary browser tony morelan 05 21 you know, of course, my android phone is a samsung phone so i didn't know that that a samsung internet browser is available for all android phones that's pretty cool yeah do you have an idea of how many people use the sampling internet browser? dan appelquist 05 34 on samsung devices? we're very high on other devices we're not that high but part of the point of being on other devices is that we it's it was very much a developer play to get it was a minimal extra effort i shouldn't say that because our engineering team it's probably gritting their teeth and saying are you kidding me? this was not minimal effort but anyway, it was it was it was definitely worth the effort? because one of the key things that we go out to developers and talk about is testing and the importance of testing on samsung internet one of the things that we're hearing very early on when we started work in 2016, on developer advocacy for samsung internet was, well, we can't test we don't have a samsung device can you lend us a samsung device? well, being available on non-samsung devices really made that conversation a lot easier, because we could just say, look, just download samsung internet and run it on whatever device you have and you'll get the get that experience and you'll be able to test and testing across browsers is so important when you're building any kind of application or any kind of web application tony morelan 06 41 and that was the reason why the whole web standard movement started, wasn't it? because we had so many different browsers that, you know, often developers were having to create different versions of their website just to be compatible with the different browsers dan appelquist 06 51 yeah, certainly the adherence to web standards has been a constant issue across the web i think that things are a lot better now than they used to be there are still differences in, in how the in the user experience of the browser itself, it can cause issues i'm going to be one example like, we have a feature on our browser, which is a scroll to the top of screen, which is a little button that appears over overlaid on top of the web content that allows the user to wherever they are to scroll right back up to the top of the screen now, if the web developer didn't test their application in samsung internet, they might put a key piece of ui underneath that section of screen where we overlay the button so it you know it things like that are these little micro issues that testing really helps and that is not necessarily about web standards compliance it's more about how you make sure that your web application runs correctly and all the ui is correct for the ui choices that that browser has made and how it displays it to you you know, tony morelan 08 01 i actually have a lot of experience with designing watch faces for samsung watches and the same is true yeah, it's best to design around the system icons that may appear under certain circumstances so that you don't have any, you know, usability issues 08 13 yeah tony morelan 08 15 so what is samsung internet done to drive awareness for developers? dan appelquist 08 19 so a lot of the work that we started off with when we started the team in 2016, was trying to drive market awareness of something and we already knew that, because we had some stats that we had strong usage numbers so we are roughly 10% of all mobile browsing in europe, for instance, the issue was actually driving awareness amongst developers that they really needed to, to understand those numbers and therefore pay attention to testing and you basically why they should pay attention to us as a browser so we started off by working with people like stat counter, that actually is one source that people use recordable stats of different browsers we then went on to work with google analytics so we after we've gotten counter to kind of separate us off from google chrome, we then went to google analytics and we got them to separate us off from google chrome and amazingly, after that happened, we started to get all these calls from different people uk government was one example where they started to say, hey, we've just had this amazing jump in usage from samsung internet, while they didn't actually have a jump they had, they always had very high usage of samsung internet but they just never knew it because google analytics was lumping us together with google chrome so and that's the problem with a lot of these stats keeper sites is that they weren't if they were just if they were not paying attention to that your specific browser, they were lumping you together with the particular engine that the browser based on so getting that right was like a key element and then we can take those numbers to other places and we can say like, look, this is how many of your users or what percentage of users using samsung internet, we really think you would benefit from talking to us or you would benefit from testing on samsung internet would you like to come do some joint projects with us all that kind of stuff we also have been working with places like mdn so mozilla developer network, or mdn, has recently or within the last few years has changed from a very mozilla specific website into basically a documentation website for the web, across browsers and what's underpin that is that they now have a product advisory board, which includes people from microsoft, samsung, mozilla, obviously google they also have people from a couple of smaller organizations such as boku, which is the north kind of open source development shop so they have been doing a lot to, to kind of create, and to reinforce the understanding that developers have it that's a cross platform development site so as part of our work there, we made sure that when there's a documentation page about a particular api, and they have a list of browsers underneath that documentation, that is the listed, supported browsers, versions for that particular api that said, some internet appears in that list can i use comm is another example of a website that people use when they want to find out if they can use a particular api and a particular browser, they were also not separating yourself from chrome so actually working with them, and then working with them through mdn we actually got them to use all of the mdn compatibility data, which is data that we update, that's data that our team goes in the background and updates through github, through an open source procedure, so that all that data is up to date both on mdn and on can i use so that developers have up to date information about which api's they can use and which versions of which browser and then in general, we've been doing a lot of things like writing blog posts, we write a lot of technical blog posts about the use of different api's, the use of different technologies, opinion pieces about topics on the web, we tend to focus on things where samsung has some kind of engineering investment so things like progressive web apps, that's one area where we've done a lot of work recently we've also done a lot of work on web xr and the immersive web and things like web payment, that kind of thing we also sponsor conferences, and we go out and speak at conferences and events these days, we're obviously we're doing a lot of virtual events and we're really trying to play a leadership role in how the developer advocacy community deals with the current situation with a lockdown by showing how you can very effectively engage with the developers and create conversation with developers using virtual needs tony morelan 13 04 you know, i couldn't agree with you more, you know, the timing with the launch of our new podcast here is actually right in line with probably what's going to be a huge change for all of the industries as we move forward in this new world of information sharing virtually, yeah, you know, i actually attended one of your virtual office hours and it was nice, because, you know, you brought in some outside people, some industry people to participate dan appelquist 13 28 and that's, and that's something that we that's the kind of ethos that we have had from the beginning we actually ran a two-day event in san jose a couple years ago, called samsung create and the whole idea of that was to feature samsung people yes, but at least half the speakers that we had were front were third party speakers that we brought in from the industry and we had an mdn speaker we had a microsoft speaker, later google speaker you know, it also fits together with the fact that our team besides doing the developer advocacy and outreach we're also doing a lot of industry work so we do work in w three c, i co-chair, a group in w three c, which is the world wide web consortium that sets standards for the web, i co-chair a group there called the technical architecture group, which is a kind of technical steering group for web standards my colleague, ada co-chairs, the immersive web working group, which is working on technologies that bring ar and vr to the web so we're not only playing a role in terms of getting the word out about these technologies, but we're also playing a role in terms of setting the standards tony morelan 14 40 is simply internet just for android dan appelquist 14 42 the work that we're doing is on samsung internet for android and the team that we're attached to a samsung internet for android if you have a samsung tv or if you have a samsung watch, you may also know that there are other versions of samsung internet they have the same logo and they are also based on chromium, but they're actually built by different teams within samsung divisions so there's some cross working between those different groups, especially because they're all using the chromium base and so they share a lot of knowledge and they share a lot of information but actually, the work that we're doing, we focus on samsung internet for android, tony morelan 15 20 when you have improvements that you want to make to the samsung internet browser are those released at the same time when new devices are released dan appelquist 15 28 so one of the things that we did very early on, and i think this was right around the time when i started in 2016, is we unlinked browser releases from device releases, we're now rolling out on a regular cadence, new releases of the browser that are released through play store and also through galaxy store and we do sometimes do releases that are timed to device releases, but those are still in the in the context of our of our regular software release schedule so and that's really important for the web, because the web needs to be evergreen when there's a security vulnerability, or some kind of new feature that web developers want to use, they don't want to have to wait for a new device to come out in order to be able to use that feature likewise, when there are features or technologies that are deprecated, from the web stack, you really want to, either because they're vulnerable, or they're, they're difficult to use, or they're just not very performant or however, you want to be able to make sure that you can update all the browsers to remove that feature tony morelan 16 31 and that's great to hear that, that the updates are not tied to new device releases, you know, because i'm sure that developers are wanting to get those updates just as soon as soon as possible and you can get those features out to the to the developer community that's right yeah, yeah so tell me what is the benefit of using samsung internet over another browser, like say google chrome, dan appelquist 16 51 one of the things that we pride ourselves on is a focus on user privacy so we think that we have better privacy features than google chrome and that's certainly a goal that we have and something that you can see, as evidenced through a lot of the features that we ship with the browser so for instance, we have secret browsing mode, which is secured by knox and also linkedin to our to biometrics on the device, so that you can secure it with your fingerprint or your face id or however, we also integrated into samsung pay currently, that's only in the us but there's a web feature called web payment, which integrates into samsung pay for us customers that allows you to pay directly from your web page using samsung pay using the on-device payment technology, we integrate into one ui so that's the samsung specific ui across the device, which our browser is based on top of as also as part of the whole privacy consideration we allow our users to download and install ad blockers we allow to download and install extensions, which can be privacy helping or can be other things like shopping related for instance, we also allow you to choose your own default search engine so we have for a while now allowed you to choose duckduckgo is a search engine, which is a very privacy focused search engine but with the release 11 2, that's about to come out we've actually even increased that list for and we have way more search engines that you can choose as your default search engine you can't do that with google chrome and we have our own built in smart anti tracking technology that uses machine learning on the phone to in a very privacy focused way shield your browsing activity from an unwanted tracking on the web, which is a major issue right now, for a lot of users tony morelan 18 49 you know, it's pretty safe to say that just about everybody at some point has had something hacked whether it's you know, a credit card or maybe it's an online account, so always happy to hear about, you know, new technologies that will definitely help keep the internet safer tony morelan 19 03 can we talk a little bit about revenue? tony morelan 19 04 how does samsung internet create revenue? dan appelquist 19 07 well, we are getting revenue from search referral that's the same as every other browser that's out there i mean, how do browsers make money browsers usually make money from search referral we also have opportunities for business development when it comes to our quick access bar, which is region specific so when you first load the browser, you're going to see a number of links that show up, you know, on your kind of quick access screen, that all of that is user configurable, and the user can change those whenever they want to it's about what the defaults are those are really how samsung is making money i think the other part of it is more of a strategic play there are billions of users using the web why would samsung want to see to that territory to somebody else? instead of being able to control that user experience and provide the best user experience, and we can, that's great so how does the web developer ecosystem differ from other developer ecosystems? one thing that is important to think about what the web developer ecosystem is that it's inherently cross browser, cross device and cross ios, and that's true of the web in general, the web needs to be able to exist across different browsers across different classes across different form factors you need to be able to bring up your web page and have it work on your television as well as your laptop screen as well as your phone responsive design and progressive enhancement have been some of the key technologies that web developers have been using to ensure that that can be the case, feature detection these kinds of things are really important when it comes to building websites you're not just building for one particular device you're not just building for one particular vendor you're you've really got to be listening to and paying attention to a lot of different voices, when you enroll in a developer program for a specific platform, you tend to be focusing on one particular device or one particular brand, one particular os and that also provides some clarity, you know, which can be a good thing however, when you're developing for the web, you need to pay attention all these different platforms and devices that's where something where mdn can come in, and why we're putting so much energy into that because it can be a place where developers can come and find out information across different platforms tony morelan 21 36 you had mentioned a little bit about progressive web apps for new developers out there can you explain what exactly is a progressive web app? dan appelquist 21 42 so a progressive web app is i mean, i mentioned technologies like progressive enhancement and responsive web design, which help developers build web applications that can that can work well across different browsers, different oss, different devices, different form factors the idea of progressive web apps brings that to the next level where we try and learn a little bit from the success of native applications on the mobile platform in particular, and are able to provide a very app like user experience for the web application itself so a really good example of a progressive web app, probably one of the best ones out there is the twitter pw a lot of people are removing twitter from their phones entirely and simply using you're removing the native app, i should say, from their phones entirely and just using the progressive web app, because it provides almost all of the same features, but in a much more lightweight and much more privacy centric kind of kind of way because when you're using the twitter progressive web app, it's been saved from the browser, and therefore it runs inside of the browser even though from a user perspective, it appears like any other application on the phone, it's actually running inside of the browser so it's running in the same context, as saw the other browser tabs that you have going so it's a bit like, i've called it having your cake and eating it too in terms of being able to build something really easily build something cross platform, but also be able to enjoy that real estate on the phone home screen push notifications that keep bringing the user attention back ability to have through a service worker kind of offline experience, all the kind of features that users expect from a regular native application they can begin to expect from these kinds of progressive web apps tony morelan 23 35 yeah talk a little bit about ar and vr as they relate to samsung internet can you share a little bit about what you were doing in those areas? dan appelquist 23 42 so samsung internet was one of the first browsers to launch the web vr api that api has actually been recently deprecated in favor of the web xr api, which is the api that my colleague ada has been sharing working group to create webex r is a way to bring ar and vr into the browser now, if you are familiar with kind of ar and vr, in a kind of game, console type environment or scenario, or with various specialized equipment, then you might be scratching your head and thinking, well, why? why do i need ar and vr in my browser is the target it's because the target audience for these kinds of ar and vr applications in the web are a little bit more like casual games are to the gaming industry we fully expected we have seen the development of web applications in the gaming space and also in the kind of enterprise space where they take advantage of the technology in the browser to enable you to deliver a kind of virtual environment, a shared virtual environment that provides a lot of those kinds of advantages to a rm vr experience, but you don't have to download any software, you don't have to make sure that your, your whole set of download software is correct and it works progressively across different environments so a couple years ago, we worked with bbc here in london to deliver a doctor who gave that was coming out alongside of the launch of one of their seasons of doctor who it's basically like a very simple navigating the tardis it was called the time vortex, navigating the tardis along a vortex and avoiding obstacles and that kind of thing but the reason they were they were so interested in web vr at the time, was that it's available across multiple browsers they have a public service mandate where they're trying to get that application into as many hands as possible into the hands of kids that may have like a, you know, an older phone that aren't going to have the latest up to date technology and an ar headset or a vr headset those are the kinds of use cases that i'm interested in how do we get these tools have ar and vr into everybody's hands? and i think the web is well positioned to be that platform definitely tony morelan 26 08 let's talk a little bit about success and challenges can you first tell me about some of the challenges that samsung internet has faced? dan appelquist 26 14 i think one of the challenges and i alluded to it before maybe is just recognition recognition of samsung internet as a as a key browser we know we are, we are increasingly driving that awareness amongst the developer community but we still run a cross a lot of people who just never heard of us or if they heard of us that kind of dismissed us alongside of all the other oem browsers we like to say we're not actually like any of the other oem browsers because first of all, we have enormous market share compared to our market share it doesn't even near mcateer doesn't compare to ours second of all, we put a lot back into the web platform and that's extremely important to us we put a lot back into the open source side of it and we put a lot back into the and standard cipher so driving that has been a challenge and continues to be a challenge but it's something that we took on and we understand that and i think we're turning that corner on that one tony morelan 27 11 sure and there's a huge value when there are multiple browsers out there i mean, if you go back to when internet explorer dominated the market, and then firefox came on board, that's when we started to see a much better browser experience correct? dan appelquist 27 23 yes and in fact, that's another kind of philosophical point that drives the work of our team is that we strongly we strongly believe in browser diversity it's not a web where one browser dominates, is not actually going to be a healthy web ecosystem we are based on top of chromium but we have made different ui decisions and different decisions in terms of browser features than chrome and that's something that we think is important and helps drive the ecosystem forward we also work with people through standards and through web developer advocacy in companies that are competitors, i mean, i work with people from apple in the context of web standards, and wcc quite often and choices that they make in safari help to drive the web forward in different areas than the choices that we make in samsung android, the choices that google makes in chrome it's a good example tony morelan 28 23 definitely so what are some of the areas of success for samsung internet? dan appelquist 28 28 so from the beginning, when we started things off in 2016, we, we started off with some ideas around how we were going to treat developer advocacy differently one decision that we took was to ensure that our team is attached to the engineering group that is producing samsung internet and so we have a strong connection to our own engineering team and we work very closely with them and we do joint work and when we've done our own events, for instance, we've had members of our engineering team come over from korea and speak at those events and we have a strong relationship with them and we see ourselves as primarily web developer engineers that are also doing advocacy so that's one element and i think the other thing that we're very keen on is promoting diversity and inclusion in the tech community in general and in the web developer community specifically so for instance, we have a diversity inclusion statement about conference participation many organizations have these now i'm very glad to see that many do we started rs in 2016 when we put that in place, i actually used as a template, a statement that the uk government digital service had come up with which so we were basically using, what they had put in place and adapting it for our needs with reference to their work, obviously, where we will not participate in an event that doesn't have good diversity credentials that isn't doesn't have a code of conduct an enforcement policy, that kind of thing that's why very often, if you attend any of our virtual meetings and meetups, you'll always see me at the beginning talking about the code of conduct and just reinforcing the enforcement procedure for it so we take that very seriously and we also put energy into events and activities that are specifically focused on driving better diversity and inclusion in tech so there's something called global diversity cfp day, which is a yearly event that happens across the world where you were people who are new to speaking on tech conferences can come and get mentorship from people who have more experience speaking in tech conferences about how to submit their proposals for tech conferences, and it's specifically focusing on getting more diverse speakers out there, and driving more diversity and inclusion into the tech conference circuit in general so that's something we participate in and we also sponsor events that are focused on particular on inclusion queer js is a very good example where we were we sponsored that and then we, we sponsored that in berlin and then we were very happy to see that it grew into a bigger thing after that, yeah, that's something that we're putting a lot of energy into and we've seen that come back to us in the form of, i think people really appreciate that anyway, the kind of developers that we want to work with appreciate that and we really appreciate that kind of feedback cycle tony morelan 31 31 that's great so what advice do you have for developers looking to build for samsung internet? dan appelquist 31 36 sure, you can follow us on twitter, first of all, at samsung internet you can also follow us individually i'm at torgo always talking about i'm torgo on twitter, to our geo and i'm always talking about web standards and other web technologies you can go to our developer hub, which is samsung inter dotnet and then links off to all kinds of places like our blog, we actually repost articles from our blog onto samsung into dotnet our blog is on medium so you can follow us on medium at samsung internet dev, you can attend an office hours event so if you go to meetup calm, and you subscribe to our meetup group, so we're running a series of events through that meetup group other than that, the best way to kind of keep tabs on what we're doing is to pay attention to our twitter and we're also by the way posting all of those events on the samsung developer platform on developer samsung com and you can pay attention to our linkedin page, we have a linkedin page, we search for samsung internet, you'll find it on linkedin and we're actually posting all of those blog posts and event notifications and all that kind of stuff there as well trying to engage with that community tony morelan 32 50 that's excellent but hey, dan, i really appreciate you taking the time to sit down and do this podcast with me, you know, yeah, it was a lot of fun to not only learn about you, but also learn about samsung internet dan appelquist 33 00 thank you really appreciate it outro 33 03 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
Learn Developers Podcast
docseason 3, episode 7 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 guests guy merin, senior director of engineering, surface duo developer experience, microsoft ade oshineye, senior staff developer advocate, google søren lambæk, developer relations engineer, samsung foldables, games not only do we chat about the emerging trends in the foldable industry but how companies are working together to help developers create for this new and innovative technology listen download to this episode topics covered foldable industry trends growth of foldables target audience making foldables mainstream benefits of the foldable form factor extending a traditional app to a foldable device process for supporting foldables foldable device example apps consumer adoption challenges developer opportunities resources for developers companies working together on foldables helpful links large screen/foldable guidance large screen app quality jetpack windowmanager jetpack slidingpanelayout jetpack windowmanager foldable/dual-screens surface duo layout libraries surface duo android emulator figma - surface duo design kit surface duo blog surface duo twitch surface duo twitter adopting native language discover quality apps on large screens foldables design/development perspectives learn about foldables case studies 5 steps to large screen designing understanding layout code lab testing window size classes jetnews different screen sizes migrate to responsive layouts compose/activity embedding unfolding gaming potential samsung remote test lab samsung developer program website samsung developer program newsletter samsung developer program blog samsung developer program news samsung developer program facebook samsung developer program instagram samsung developer program twitter samsung developer program youtube samsung developer program linkedin tony morelan linkedin guy merin, microsoft, linkedin ade oshineye, google, linkedin søren lambæk, samsung, linkedin 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 seven recently i hosted a roundtable discussion on developing for foldable devices not only do we chat about the emerging trends in the foldable industry, but how companies are working together to help developers create for this new and innovative technology enjoy today's show, we're doing something pretty special i've got three guests on the podcast all from leading companies in the foldable space i've got guy merin, senior director of engineering on the surface duo developer experience team at microsoft guy merin 00 53 hi tony, good morning great to be here tony morelan 00 55 excellent i've also got ade oshineye, senior staff developer advocate at google ade oshineye 01 00 hi nice to be here tony morelan 01 03 and i've also got søren lambæk, developer relations engineer at samsung søren lambæk 01 09 hello good to be here tony morelan 01 11 this is amazing i've got all of you on the podcast at the same time we actually haven't tried this format before so let's take him for a ride and see how much fun we can have let me start with guy over at microsoft tell me who is guy merin? guy merin 01 25 hey, yeah, hey, folks so i'm guy the journey in microsoft a few years back started that windows went through the windows mobile, because mobile gadgets and devices are really my passion and then the last five or so years, i've been working full time on android, building a couple of software products, and recently the surface duo so this mobile and android is really my passion and i'm really at my dream job now working with developers, you know, reaching out really great on the personal level, i got recently into mountain climbing so just last weekend, we had a big expedition to summit, one of the washington mountains i live in seattle in washington, okay and that was a very, very fun experience that i found a lot of similarities to, you know, projects we have at work, climbing a mountain and summit thing is really a project on its own with preparation and planning and found a lot of interesting similarities tony morelan 02 29 it gives you a lot of time to think also, i'm sure that when you're climbing so are you like with ropes and rappelling or yeah, rope really guy merin 02 38 is, is more snow so it's ropes and ice axes and stuff but oh, gosh tony morelan 02 45 that is great how many feet would you say? was the summit? guy merin 02 50 close to 11,000 tony morelan 02 52 wow, that is absolutely impressive what was your journey to get to the state of washington? were you born there? or is this? the accent i'm picking up? i'm not quite sure is from the northwest? guy merin 03 07 no, no so no, i was born and raised in israel okay and i moved over to washington eight years ago, i've been working at microsoft in israel, actually doing some fun stuff with windows phone in israel and then pretty much my wife wanted to move over to seattle and that that made us take the trip and we love it here tony morelan 03 32 so now let's move over to google tell me who is ade oshineye? ade oshineye 03 38 so i work in android developer relations i've worked all over the different aspects of google over the last 15 years before that was in consultancy, when i'm not at a desk in front of cameras and things i'm out with a camera, taking photos in zurich, where we have really nice mountains that i like to climb them by sitting in a train that just gently takes you to the top and then i also play badminton and play go so between that i'm pretty busy i tony morelan 04 05 wonder if i understand you actually were born and raised in england is that correct? yes ade oshineye 04 09 so i'm an east londoner but now i live in switzerland, which is strange and very different to east london but i also live in the middle of a whole collection of british shops, so that i can get british food very easily really? okay yes tony morelan 04 27 tell me how did you get involved with foldables at google? ade oshineye 04 30 well, let's see well, me specifically, i mean, i started out with the samsung flip and then we've got this planet of surface duo for us as a company, it's more around the whole beat together not the same idea that the point of the entity ecosystem is that all of these oem can try different things users can try different kinds of experiences developer can try to serve all of them and we power all of that with the platform tony morelan 04 57 and from samsung tell me who is søren lambæk? søren lambæk 05 02 hello, i work at samsung as a developer relations engineer and basically, i building relationships between the games industry and samsung there are so many mobile games out there so we were reaching out to them at a technical level and try to help their games to run smooth on certain devices on a more personal level, i am one of those artists that just got obsessed with programming sure so my background is actually a lot of with art, drawing and music and that kind of thing but i just could see, the programming hat was so powerful so i just, i got this obsession is programming tony morelan 05 48 excellent and i know that you guys can't see on the podcast but soren has some beautiful guitars behind him and before we hit the record button, we were all having a nice conversation about music now, i understand you were born in chile, but raised in england that correct søren lambæk 06 04 and so i was born i was born in chile that's correct and i was raised up in denmark, hence my name and my name is danish and okay because then i guess such a small country and at the time, i wanted to do get a career we didn't have any games industry in denmark so i decided i wanted to go to england and when university studying games design, because there was art, but then i realized programming that's where the future is, for me and then so i was one of the only students that went from art to programming is usually the other way around yeah, tony morelan 06 47 so yeah, i would definitely think so so let's talk foldables back in 2019, samsung released the galaxy fold, which was the first foldable device to really hit the mainstream market since then, other companies like microsoft, motorola, huawei, have released foldable devices and in such a short amount of time, we've seen some really great improvements with this technology guy, you've been from microsoft, what are some of the trends that you've noticed in the foldable industry? guy merin 07 17 some of the trends one we're seeing, as you said, more, more oems picking those up? are you seeing more and more companies bringing for the world? and it's really starting to become a commodity but the cool thing about it that each one has their own different angle to it so you know, for the microsoft one, it's, you know, mainly around productivity and two screens, for others is mainly around more real estate or something that is a small form that can then go to, to a bigger form and it's all really about the form factors and the posters that you can really do with it so how does the phone react when it's folded when it's open when it's tilted 90 degrees? and i think we'll see more of those in the future tony morelan 08 07 are they are you seeing different trends for the way developers are designing and building apps? ade oshineye 08 12 so i think we're seeing three main trends one is the oems exploring the space of possible designs, does the device folding fold out full vertically filled horizontally full three times, there's so many different things oems are doing second stylus is becoming more and more mainstream, that's changing the set of available postures and then the final thing is the way keyboards and trackpads are blurring the distinctions between phones, phablets tablets so the whole notion of what is an android app is becoming this flexible, multi-dimensional space and there's always people exploring that space and trying new things yeah, tony morelan 08 55 yeah soren, what about the growth in this industry? is this been something that you think, you know, over the past several years, it's really been, you know, going much higher? søren lambæk 09 04 yeah so last year, we had 150% growth, and we are expecting that in the future, more and more people seem to get foldable phones and when it comes to games, it does have like quite a lot of benefits because you can use the second screen if you're put it in like a folder but sure you can you can change this from full screen to a two completely different mode where the bottom screen, you can use it for items or mini map and that kind of thing tony morelan 09 35 yeah, yeah you know, this technology is so new that it's at this time, i think we're still trying to figure out what is this this target audience a day? what are your thoughts on who is the target audience for foldables? ade oshineye 09 49 well, i think a good way of thinking about it would be to look at the flips and the surface drill as capturing the two sets of ordinances we see there are very often younger people woohoo, looking for cool new experiences, i tend to see a lot of those people walking around with a samsung flip but then you also see a set of people at the high end with a lot more money tend to be more business people, they tend to have the larger the fold or a duel or something like that, that has a stylus that runs multiple apps at the same time, that sort of almost a replacement laptop and those are the two sets of people i tend to see using foldables tony morelan 10 25 guy, do you have any thoughts on them? on the demographic of who is attracted to foldables? guy merin 10 31 i don't see it as a demographic thing i think i think it will become a commodity that more and more users across the world will? we'll see i think right now we're still seeing trends, because he's on the higher end, of course, yeah so we're seeing trend around there but when this becomes more of a commodity, and i think it will, and more of a mainstream device, i don't think it's going to be a demographic thing, just like we've seen with other form, form factors that are spread across the world tony morelan 11 00 yeah, yeah in certain you'd mentioned about gamers and tell me your thoughts on you know why something like foldable device would be attracted to the gaming community? søren lambæk 11 09 well, obviously, a big screen will have a big effect, not only can you see like a lot of graphics do you like and can change and you can have like, a different benefits doing tony morelan 11 20 that so what would it take for foldables to become more mainstream? søren lambæk 11 24 the price is it's a major one for reforms are quite pricey sure, reducing the price wouldn't make it more accessible for a lot of people tony morelan 11 34 yeah and i also think that really trying to teach developers how to build apps, you know, more education on app adoption is also important søren lambæk 11 43 yeah, definitely, we see a lot of games developer don't even consider foldable phones yet so i hope that is something that is going to change, where they could like start maybe changing the ui before they actually building the game guy merin 11 58 i think it would only if i may add one thing i think it's is a triangle of three things there is, you know, the users and the users’ need to see the benefit of why they should, you know, try a foldable phone or a large screen and then what drives that is apps so the more apps that we see that utilize it, that gives them benefits over using just a single screen, smaller device, the more apps that will use things like side by side or split screen or drag and drop between and just productivity and thinks that users can get more out of these apps when running on these new form factors i think that's another key factor and i think the third piece of this triangle is, in order to make the app better on those, you need to support it, that sdk level and the platform yeah, that's a lot of work that has been done by everybody here so mainly by google, because they of course, own the platform so the more we will see those things as standard like jetpack compose so how do you support foldables? there? how do you support all the other sdks, the more they will come native, the better the apps will get, the better the users will benefit from them? and i think that triangle, doing it correctly, will make it much more mainstream in the future ade oshineye 13 20 i agree with that i think one other thing that we've been pushing is getting developers across the chasm of thinking about this so we have a code lab, we put together with microsoft shows developers how to build for a world where the devices can be radically different sizes i mean, on my desk here, i have a samsung flip and a samsung ultra and they are radically different sizes, one of them can fold to be even smaller so if you want to build for both of these devices, and all the things in between, you have to think about am i going to be a responsive design app or when adaptive app, i had to think about which layouts i'm going to support which postures are going to support which aspect ratios, which resolutions, and developers for a long time, we've been able to sort of not really think very hard about that because most phones for a long time were fairly similar sizes now, the same kindle app that has to fold nicely on a surface duo has to also work on a giant tablet, for example, we have duo and meet and the same apk more or less that runs on your phone also runs on your television when we think of this as large screens, the screens can be very tony morelan 14 35 large what about google's quality guidelines? so the challenge for ade oshineye 14 39 us with quality guidelines is we don't want to stifle innovation but we do want to make sure that when a user downloads an app from our store, that it works well on the device, and that there are there's a well-lit path for developers in how do i give users the best possible experience so we have fatal guidelines and implemented shouldn't advice on what is a high-quality experience and then we have tiers of quality, so that you don't have to take a big jump, you don't have to eat the elephant in one bite you can, i think it's eat the rhinoceros in one bite, you can do it in, in lots of little bites so there are steps you can take to improve your quality and we have an easy-to-understand website that shows you, here's all the things you haven't done yet and you can decide which ones to invest in and when tony morelan 15 29 yeah, and i'll mention here that i know throughout this podcast that you guys will be referencing lots of resources for developers to really learn more about how to create for foldables, i'll be sure to include links in the show notes so that you guys can easily find this content so guy, tell me who do you think would benefit by developing for the foldable form factor and why guy merin 15 52 i think everybody will benefit from it the bottom of the funnel is the apps and the user so the users would benefit the most but i think you're asking more about the developers, i think every developer should look at is how they said here before my app is not going to run now only on a single screen, small device, it will span across others, every developer should think about their app what else can i do now that i have more real estate? and again, if it's a game, okay, what do i do with the second screen? how will my game maybe if i run the game, in a split screen with discord on the other side, because i'm using that for gaming as well, to start thinking about all these new scenarios that your app can now do? how can i provide content to the app that sits just beside me with drag and drop functionalities with these kinds of things? and i think every app, every developer, can benefit from those and you should start thinking about that, because this is preparing for, for the future and for more and more of these devices showing in market yeah, tony morelan 17 02 and i know the other day, a day and i were actually having a conversation about multi app user journeys ade oshineye 17 08 so we've tried to move away from thinking of use cases or scenarios to what we call cjs critical user journeys and part of that is because if i'm at home during the pandemic, i tend to have google docs open with meeting notes and then google meat open that if you move that to a foldable, well, that's one screen each but then i need to drag and drop things across them which means both developers need to think, am i a good citizen? does my app play well with others? historically, developers have tended to think about the user journey only within their own app but if you're a video chat app, you need to think okay, how do i work well, with a game with video content, somebody's watching, if i'm a video app, do i have picture in picture, if i have picture and picture, it unlocks all sorts of interesting new user journeys for the user if i'm a game, and i support multi window scenarios, it becomes possible somebody to play a game and live, stream it or play a game and have a chat conversation going on at the same time so trying to think about the user journey that's not just inside your one app, but it's across your app and other apps or even across multiple instances of your app tony morelan 18 17 store and tell me, what should the developer with an existing app do to extend it to foldables? søren lambæk 18 23 so there's quite a lot of sdk is that can be used already jetpack? windows manager is an android library that can help you with detecting if your app is expanding over multiple screens or not tony morelan 18 39 what about specifically game developers? maybe someone who's developing, you know, for unity or for unreal? are there resources out there to help them? søren lambæk 18 47 yeah, so samsung got like, some tutorials that will help you to set up phone apps for unity and unreal, boston guy merin 18 56 tony, if i may i can add one thing on the first question, what can developers do with an existing app, we put up a three-step guide and it's not specifically for the microsoft surface device for large screen on older foldables and the really the three steps are crawl, walk, run so you should start with taking your app and just trying it out on these new form factors if you have access to one of these devices, just try it there if you don't, there is emulators for everything for foldables for a duo for a large screen so just try your app on the emulator that's step one just see that it behaves well on these new form factors using an email lender step two is what we call the low hanging fruit so don't super invest but start small, as they say, maybe think about how can my app behave when it's running within other apps? so maybe support drag and drop either is a source of or is or is a destination cause doing picture and picture, things like that these are things that are super easy that you know, there's samples, there's code snippets, and you can just go in and copy paste into your app and just support that these are really small additions you can do and then it will really shine on those new devices and step three, is where really all the magic can happen you know, you have more real estate now so there's many new design patterns, you can think about lease details, you can think about a companion plane and a few others so what now will you do in your app that, you know, you have more real estate, you can do things differently? this is step three, which is i think, you know, where all the big value will come but it's a journey towards getting there ade oshineye 20 43 definitely, i think one other thing you may want to include is, at the most basic level, you check things like if i rotate my phone, does your device crash? does the app crash? or does it handle it? and then use thing? okay, so you handle rotation, you don't lose state if i'm halfway through typing a message, and i accidentally rotate my tablet, do you lose my message? that's bad yeah so that continuity is an important thing, all the way up to things like handling hinge occlusion so if you've got a surface duo, there's a hinge down the middle, you've got to remember that there we have an api for that, handling different postures of the device, and even trying to see if you can use those postures to offer new functionality but for a lot of developers, it's stepping back thinking about all the different contexts in which people are going to try to use your app and then making sure that you've handled them tony morelan 21 31 yeah, and guy you had mentioned about them testing, i wanted to also bring up that samsung has their remote tests lab, where you can online access a real device for testing your app so another great resource for developers to, to work with guy merin 21 49 definitely, it's also that in the emulator, the emulator is also an amazing resource, because you can run it locally, you can run it on the cloud, we have some workflows that connect to a cloud emulator so every time you know we have a few samples, so every time we do a check in for the sample, it spins off an emulator and test it looks great so we have all these test steps and none of that is specific to us to the to the demo, you can run it with any other devices well, tony morelan 22 15 tell me what is the figma design kit guy merin 22 18 figma design kit is a tool for designers to start thinking about foldables and large screens and dual screens so when we started the journey with developers, we first were thinking about the developers, how do we support you with sdks and with samples and with documentation, that's step two, actually, step one is thinking about your designs and then we started looking at what are the tools that designers use so figma is one of them and there are others so we just created figma design kit for foldables so it lists out all the layouts that are possible again, the list detail, the companion pane and a few others, gives you all the frames and really helps you think about the scenarios you want to cover in your in your app for these new form factors and then you start working with the developers and the sdk, there's actually a step three that we're trying to do in the future, which is, how do we make it easy? taking a figma design kit or another slope and making that into code? that's going to be the next step in the future? tony morelan 23 30 are they tell me about the jetpack window manager and the jet news demo app? ade oshineye 23 36 so like many people, we have quite some quite old demos that were written in a world where you had a phone and you had a tablet and so we like everybody else had to think about, okay, how do we change this to handle different postures, different aspect ratios so we have an article where we walked through the process we went through to use jetpack window manager to handle a lot of these configuration changes to handle continuity, rotation, a lot of those things so we got actually pretty good article about this i think one of the things we don't touch on in that article that i think is really important, is if i have an existing app that people like, and it's too expensive for me to do a complete rewrite, how do i start adding some of the new things into it so we have a new thing called activity embedding, which lets you get a foot in the door of compose, or we're starting to add these new, more complex layouts so maybe your app was just, oh, i have a bunch of cards that go vertically up and down the screen but it's actually no longer a phone it's a device that folds out is not twice the size so now i need to think, okay, i need to go to a list detail view gmail is a good example of this you do that unfold or you rotate and now you have so much more screen estate the challenge is, how do i embed the new more complex layout index? system set of layouts i already have without having to do a rewrite so there's a lot of that functionality that we're trying to show people because we don't want to fall in the trap of the only way you can get to the new world is to burn everything down and start again we want to give people an incremental path from where they are to where they need to get tony morelan 25 18 i was at gdc, this past year in samsung had a great presentation this morning did you get a chance to see that that presentation at gdc? where they talked about developing for foldables? søren lambæk 25 30 yeah, yeah yeah, yeah, it was one of our team members, mike there was doing a presentation tony morelan 25 37 yeah, i'll make sure to include a link to that to that presentation it was great because they covered foldable optimizations for game engines like unity and unreal, talked about android jetpack apis, and window manager showed examples of things like flex mode and ui scaling, and even had an engineer from unity talk about adaptive performance 4 0 ade tell me what should a developer consider when writing a new app for foldables? ade oshineye 25 46 my immediate reaction to this is, first of all, should i use views? or should i use compose, but i'm talking to more and more of my colleagues, they all go? well, obviously, they should compose because composers the future so the official google recommendation, if you're starting from scratch, start with compose, it will mature as your app matures the other things to think about is what makes foldable special, it's the fact they have all these postures, they have all of these different kinds of usage scenarios that they offer and then you want to avoid littering your code with designs that are attached to a specific screen size, or a specific aspect ratio, or a specific resolution and instead, you've got to decide am i adaptive or responsive? will i try to scale the same design? or will i move the components around when the posture or the orientation or the size changes? it's a difference between an app with a list of cards and the cards just get bigger? and an app that says, well, when you rotate me, i go to a list detail view? tony morelan 26 52 guy, what are your thoughts on what a developer should consider when they're writing a new app for foldables guy merin 26 59 so i think a developer should consider a couple of things one, there's folding features specifically for duo, we have, we have a hinge in the middle so if you have like controls, do you want to put them in the middle, or maybe you want to lay them out a little? a little differently for game developers, we did a lot of work for example, with xbox so when you play a game, you can have the controls on one screen and the game on the other screen so the controls, you know, are now have their own dedicated space so maybe you can do some stuff with it so for example, the one thing we did is depending on where you are in the game itself, the controller themes and the way they look change so if you're now a pirate on a ship, and you're in a sword fight or something, the controller is changed to be a sword, for example, or things like that and then other considerations are the posters so what happens when the device is folded? what happens when it's open? what happens when you rotate it? and all these will change the layout of the app and show different controls and options for the use of yeah, tony morelan 28 12 yeah soren, what would you say are some of the common issues that could come up when designing around foldables? søren lambæk 28 22 i think it's important for developers to consider the ui because on the samsung fold, when the phone is folded, we got like a single display so the aspect ratio on that one is very different to when you're when you got it unfolded so the ui, you will have much less space for ui so that is something that's very important that the transition from going from single display to what's the display, that the ui will change so it fits, there's no point on like, you can see all the ui on when it's when it's unfolded and then when you go to the single screen, half of the ui is not a clickable or you can see it so that's very, very important that you test that on your on your phone tony morelan 29 11 yeah, and i know it's a gdc presentation that's one of the things that mike covered was how to have your game go from the single screen and then when you open up the device, how it transitions to the to the door screen søren lambæk 29 25 yeah, exactly ade oshineye 29 26 oh, actually, that reminds me one thing i, i keep mentioning continuity and mostly people think, oh, i have my device, let's say to tablet like this ultra i have in my hand and in in the vertical orientation that's easy and if i rotate, i don't want to lose my state that's typically what we've always meant by continuity but once you have a device that falls, especially if you've got something that has three screens and how to screen them into screens, i may launch something on the outer screen then i open it up and then the app has to move on or the activity as we found that out the screen to now maybe spread out across both screens and then if i fold it the other way, so i'm now on one of the inner screens, the app has to not lose state now we have a bunch of guidance on how you define normal apps, where it gets especially tricky is when it's things like camera, where you may not just be moving an activity across screens, but it may actually move it across cameras okay, so this is one of those places where, if you have a real device in your hand, you can see it and you can see how for a user, this would be a very comfortable, obvious thing, they would expect holding the device in their hands but for you sitting behind your keyboard, it might not leap out as you as an obvious thing for a user to do yeah, so if you sit with erica, with us a samsung flip, you can take a selfie on it, but you might just very easily rotating your hand and because you want to take a selfie with the other camera for your app that's a very complicated thing for the user it's the most natural thing in the world sure so it's important to think about continuity across the different surfaces of the foldable yeah, guy merin 31 07 yeah and let me give, let me give another example with an email app can be gmail, it can be outlook, it can be whatever it whatever you're using and i think foldable or dual screen is really a great way to read emails so if, if until now, i was used to, you know, in the morning to get to my emails on a single screen device so i just have a list of emails, and then i go into each one of them, read it, go back, go to each one of them, read it, go back reply, what have you, if you don't have a larger screen, you can have the least detail so i see all the emails in one place, i click them and then the other side, i see the actual email that i need to address and now if i have to, is a lengthy email, if i have to read it, i can rotate the device and then i get into this a form, that i across the whole screen, i just see the whole email as detail and then when i hit the reply button, it can go into this laptop mode that you know, the keyboard goes from the bottom and then i could start replying to it and when i'm done, i get back to the least detail up to my next email so it really can serve as a laptop replacement yeah, because you have a larger screen, you can do pretty much in a productive manner, which you can do with your regular pc or mac tony morelan 32 27 yeah, for sure so guy, do you think it's a misconception that developers need to do a lot of custom work, that's only going to be that's only going to add value to a foldable device guy merin 32 38 i think it's a misconception, definitely, there's actually not a lot of work you need to do as i said before, you could start small with just adding drag and drop functionality or picture in picture and that will work across every place, every form factor around large screen small screen, and you're using native api's and sdk to support a foldable, you don't need to pick up another sdk for it it's all supported natively and whatever you do will work across all these devices and again, in the future, it can work on the tv or other on a watch so whatever your app will do, consider all these layouts provide layout screens, for each one of those new form factors, a single app will work on all of it ade oshineye 33 28 yeah, i think something i did this weekend is i went and dug up all my old android devices, i have android devices, going back to the g one and even the ones before the g one that i'm not sure i'm allowed to talk about in public, all the way to the latest ones from today and as developer, handling all of these different scenarios, is actually increasing the maintainability of your app because if i think about the screen on the g one and the resolution of that, and i think about that, compared to the resolution, the pixel six, it's a huge jump, and the screens are so much bigger so think about the kinds of devices we'll have five years from now, how much bigger how much higher resolution will those screens be? how often do you want to rewrite your app between now and then? versus oh, it's just a bigger screen at all it's a different posture and being able to make it a relatively simple migration or maintenance that versus a yet another rewrite tony morelan 34 31 so tell me, soren, what are some good examples of existing apps that are taking advantage of the foldable form factor? søren lambæk 34 39 so we have seen a lot of retro games actually, you are utilizing the phone a lot so because retro games don't really have that much heavy graphics so they've got like, plenty of space that they can use so we have seen where people are using a virtual gamepad on one screen and using live small mini maps and that kind of thing so that's okay seems but i also think that like when you're watching it like a video and you start like folding it, and you just see the video slide up on just one screen, because it assumes that you want to put it on tape or something i think that is really clever and i would like to see more of that thinking tony morelan 35 19 in a day, what are some great examples of existing apps that are taking advantage of the foldable form factor? ade oshineye 35 24 so we see a lot, but actually, my two favorites were shown to me by guy, one was a battleships game where you basically have the device in a tabletop posture, and you basically rotate it the other way for the other person to play oh, i thought that was beautiful yes love that and the second thing he showed me was just the kindle yes so basically be able to have the kindle open like a book, but also be able to fold it the other way so like a like a cheap paperback, where you fold it and you hold him in one hand exactly i would never do that for any of my books, but been able to do that and like surface to that field like that is so nicely that i think was really compelling tony morelan 36 02 and that was the first thing when i when i pulled out the surface duo showed my wife, the first thing she did was grab it in, folded it around like it was a traditional paperback book that was so easy to hold she absolutely loved that that aspect of it guy tell me, what are some other examples of some great apps that are already taking advantage of a foldable, guy merin 36 25 i think two kinds of app one is apps for consuming and i think the kindle is a good example of flipping a page, which is supernatural i really liked that experience as well, but also apps around creation so for example, if you need to edit a video, or edit your photos, or edit the blog post, it's very easy with dual screen or with the foldable or our screen to have the actual video or photo on one side, and on the other side, all the controls, and then you hit a control and you see it real time, what happens, how does it change the other, it's really, really helpful to create and edit your memories that way so it's really a great creation tool, as well, not just for consuming tony morelan 37 12 yeah, i could definitely see that also be a great value with a program like adobe acrobat you know, i'm often editing pdfs and so i could see that would be a great use case for, you know, not only being able to read documents, but then you know, making edits ade oshineye 37 28 i can also imagine with that sort of notebook, passport, sort of novel types, device, where if it's light enough and thin enough, you can sort of fold it in half with a stylus, and just scribble it like you would have a normal notebook, basically, like a moleskin but it's a moleskin with an infinite number of pages there's, guy merin 37 49 there's also psychological sense here, about the folding, and that you can close it so for example, if i'm writing or scribbling or journaling with a stylus on the device, when it's open, when i'm done, consider if you're doing it on a regular notebook, what are you doing, you're closing it, and it gives you a sense that you're done you accomplished something and i think this is where foldables really shine because you're doing something you're reading an email, you're journaling, you're even playing a game, once you're done, you close it, even you hear that little click yes and it gives you a sense, you know, it's like checking a box in your to do and i think this is something that you don't see in other form factors and you see it only on this folding devices that really helps users stay in their flow and then move away to, you know, do something else that is not related to the phone so leave it off and you know, digital wellbeing and stuff tony morelan 38 46 yeah, it's funny that you say that, because that was the one of the first things i noticed when i closed my duo hearing that little click sound it's sitting on my desk i was like, ah, okay, put that away ade oshineye 38 56 yeah, yeah, that's actually not the interesting effectiveness is that with the foldables, initially, because of weight, and then eventually, because of new user journeys, they switch from being in your trouser pocket, at least for me to being in a jacket pocket and that's something changes all the places i use them tony morelan 39 14 interesting yeah and i know when i first got my hands on the z flip, folding it to that such small form factor and putting it in my pocket just felt so much better than some of the bulky devices that i seem to carry around with me søren lambæk 39 30 i actually heard that people who using the ac flip, use the phone less because they have to open it manually so for them, it actually helps them a lot to not like spend too much time on the phone so there, i guess there's some psychological effect ade oshineye 39 47 i mean, i've had the opposite with my flip in that because it's so small, and because it sorts of made me take more selfies i don't usually take selfies because well, i usually have a real camera with me, but i have this thing, it's small enough that it's in the back pocket of my jeans and it's just arms were nice and i would normally just take a photo of the place but as thing i can pull it out, then basically without having to unfold it, or unlock it just pointed on my face, click selfie, put it in my pocket again so for that one particular user journey, i use it more tony morelan 40 20 interesting yeah, i could, i could totally see that but tell me a day, what are some of the challenges that foldable technology needs to overcome to increase consumer adoption? ade oshineye 40 31 i mean, if i look at the variety of devices, i have the flip back pocket of jeans every time when it comes to the fold, i have to sort of look at the jacket i'm wearing and think about, okay, will the material the lining handles the weight, or should it go into my bag, if i'm carrying this surface duo, it's light enough that i can just casually put it in my jacket pocket, it'll be fine but it's too bulky for me to put in the front pocket of any of my jeans and it feels dangerous to put in the back pocket so weight is an issue cost is also an issue because the more expensive it is, the more careful you have to be when you put it away to think, will it be safe in this pocket but as these things get thinner, lighter, cheaper, and we discover more and more user journeys, i think that's going to be really interesting if i give an example, i have the surface level one, and it's great but every now and again, i see somebody surface two or two and i go, oh, they have a pen oh, that's interesting and i find myself thinking, well, that might be an interesting upgrade if it were thin enough and light enough, but then i'm thinking, but will it fit in my jacket? pocket? tony morelan 41 37 sure that's interesting guy tell me what do you think are some of the challenges that the foldable technology needs to overcome? i guy merin 41 45 think the first obvious one is the price point, they're still more expensive than other form factors so i think we're going to see the prices, the prices go down? for sure i think that would be probably my biggest one i think we did not hit the point of, you know, apps, enough apps are there, we'll see more and more apps, and then everybody will want to join the party i don't think we are in that stage yet and i think that will come soon tony morelan 42 13 and so on, what are your thoughts on what sort of challenges that the foldable technology needs to overcome? søren lambæk 42 19 the foldable phone at the moment is very bulky, and it's very heavy, it will be great that it was if it's lighter, i'd know that people that it actually puts people off some people that it is so bulky and heavy, where they will rather i get the flip phone for that reason i also think speaking of the flip, i think battery life is an it's very important i don't know how much bigger battery they can put in them without even giving more bulky and heavier but when you have like on the samsung one, there are three displays and if you use it for game watching films, it's really draining battery so that is i will say that is the big ones for me tony morelan 43 03 so guy, what resources would you recommend for developers interested in creating foldable apps, guy merin 43 09 i think you know; our modal is really meeting the developers where they're at so continue using whatever you're using if you're using a mac or pc, we have emulators for each one of those things so i would start with just following the recommendations you know, we have documentation samsung has google, start there, download an emulator, try it out and then just write a sample app, there was a code lab that we built with google, you could try there to test some of these new capabilities on the emulator on a specific device and then start your journey from there to commutations samples emulator we post a weekly blog, a weekly developer blog every thursday, that brings new information, for example, how to write again, how to use drag and drop, how to run side by side with another app, how to address the post changes, well, layout changes so we have a blog every week that covers code it's a developer blog with specific code and tips and tricks, try those resources and just reach out if you have a question and if you're blocked on anything, we are really here to help you out with your journey because we're creating the future and we want you to be successful with your app on all these new form factors tony morelan 44 34 yeah are there any conferences or events the that you know that you'll be attending? guy merin 44 40 definitely so google io was just completed a few weeks back, a lot of talks around large screens, you can still follow that and see some of the talks droidcon is coming up we just had droidcon san francisco a couple of days ago, and the next one is in berlin, and it's a worldwide conference google's probably going to have a few to prevent samsung has a few events microsoft build was just a couple of weeks ago and we also had to talk about tony morelan 45 08 foldables excellent and i know a day you shared with me a large list of links tells me, you know, what are some of these resources the developers can utilize ade oshineye 45 19 so for us, it's really three buckets there are introductory materials, such as our quality guidelines that i think are really important to sort of absorb into your bones so you can feel what a good experience will be like, and it will nudge you as you go on then we have a large collection of design resources, often at the material design website, but also woven through developers@android com and then the final piece is a set of resources for the developers things like how do i do testing the code library with microsoft but those three buckets of resources are the right ones for you to start with i'd also recommend come to door con berlin, were given a talk a teammate of mine, romano, france will be their co presenting with somebody from microsoft and again, you can go grill those people get lots of questions and of course, there will be future android events, where we'll have more stuff to share tony morelan 46 14 wonderful insight on what does samsung have to offer to help developers søren lambæk 46 20 so sometimes we got our own a game dev space where we posted blocks and tutorials, articles and we will have some when this podcast is out, we should have some tutorials available we also got the gdc presentation that mike did tony morelan 46 37 excellent so any more thoughts as we close the podcasts on this new technology in foldables ade oshineye 46 45 from my perspective, looking at my desk, i've got a flip duo, a samsung tab and that really captures just the variety of form factors that are happening on the android platform and i look forward to seeing more i think that's one of the things i learned here is that there's so much going on and there's so much more to come søren lambæk 47 06 i'm really looking forward to the future to see what new technology and what new devices coming out how the foldable phones will hopefully be more like lighter and more affordable and yeah, i'm really looking forward to see how developers is going to utilize them for all kinds of different apps guy merin 47 28 i think i think this is super exciting times, we are really in a pivotal point of, you know, something new, something a new generation of four factors evolving, and it's happening right now we started seeing the version one of the foldables and tools, we're now seeing a second version and a third version and i think we're going to see more of that and this is just amazing we are creating the future right now and i think developers are the most important part of it, because it will succeed based on the apps, and what developers will do with it and this is a great time now to join this ride and really create the future because i think 10 years from now, we will see things that really start happening right now with apps that take you to the next steps with foldables yeah, tony morelan 48 21 my key takeaway with the foldable industry is how many of these big companies in this industry are working together to further the technology it was great to have you know, someone from google from microsoft, and of course, from samsung, all on the podcast today before we close this out, i want to ask a question of each of you soren, what is it that you do for fun and when you're not at your desk working for samsung? søren lambæk 48 46 as i already said that i do like art to play music and draw and i have an eight-month-old son that's taking up a lot of my time at the moment tony morelan 49 00 wonderful wonderful yeah, congratulations on that thank you in a day, what is it the you do for fun when you can step away from your role at ade oshineye 49 09 google? so i do a lot of things but i think the main thing that occupies my time nowadays has been playing badminton it's an it's a huge part of the swiss culture and there's just a lot of people who play badminton, so it's a great game you can actually get seriously injured in it but you can also get very good at it so i'd recommend it tony morelan 49 32 in guy what is it that you do for fun up in the great northwest? when you get to put aside your responsibilities at microsoft i can see in your background now i noticed on your wall, you've got your own indoor rock-climbing gym guy merin 49 45 yeah, exactly so trivia in the last six months i've been training really, really hard to climb and summit some of the mountains around north washington goal is to get even bigger mountains but we did a couple of summits last weekend and really into climbing and something mountains now wow takes a lot of mental prep, nutrition, fitness level and i've seen a lot of similarities between the experiences i have with preparing for a climb, to even things i do at work it's really managing a project, a lot of insights i got from climbing that i apply in other places tony morelan 50 25 that's great that's great hey, i wanted to thank all of you for being on the podcast today it was wonderful to hear the different voices and get a chance to chat with you all ade oshineye 50 34 thank you very much for having us you closing 50 35 just 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 samsung developers podcast is hosted by tony morelan and produced by jeanne hsu
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.