Filter
-
Content Type
-
Category
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Recommendations
Filter
FAQ
docfaq q01 if i create a watch face using watch face studio, is it supported on all wear os watch devices? watch face studio is compatible with all wear os watch devices running api level 30 and higher if you create a watch face in watch face studio, you can use it on all wear os watch devices, regardless of manufacturer however, because of limitations with deprecated apis, your watch face may not be available on devices that are still using deprecated apis the galaxy watch studio serves tizen’s galaxy watch 1, 2, and 3 q02 does watch face studio support all types of watch face shapes, including circular and square? in watch face studio, the watch shape is set to a circle by default to support other watch face shapes, disable the apply circular crop option in the watch face canvas properties when circular crop is disabled, the watch face shape is determined by the user’s device to ensure watch face components display correctly, avoid placing components directly on the edges of the watch face the image can shift on some devices to prevent screen burn-in watch face studio creates a project with a single screen resolution, but the created watch face supports all device resolutions q03 how can i design my watch face to save battery? you can reduce battery usage through the following strategies use darker colors on the watch face make sure the images are fitted to the screen make sure you have removed all unused layers before building the watch face package for more information, see performance tips q04 how can i improve the performance of my watch face? using too many components in your watch face can degrade the performance of the watch face and consume the device battery more to optimize the use of components make sure fewer than 8 complications are visible in both ambient and normal modes make sure there are no hidden layers in either ambient or normal modes q05 how does my watch face work in always-on ambient mode? the second hand is not supported in ambient mode design your watch face to hide the second hand in ambient mode the on-pixel ratio opr varies between device models to find the opr for a specific device, check the device specification to examine the on-pixel performance of your design in ambient mode for various device shapes, in the run preview, select analyze you can also analyze the on-pixel performance for circular devices when you use the run on device and publish features in watch face studio q06 how can i enable users to customize their watch face? to enable watch face customization, define themes and styles for the watch face in the style property window the user can select from the themes and styles you have defined you can define a theme color palette and apply those colors to the component layers you can also implement multiple images for the analog hands, image, multimedia, and index components remember to give each component and style a clear, descriptive name the names appear when the user uses the customize mode to personalize their watch face you can also implement localized component names using text ids for more information, see project settings q07 what is the difference between the step counter tag expressions [sc], [sc_per], and [sc_goal]? the [sc] tag is the measured step count the [sc_goal] tag represents the step goal the user’s step goal can be synchronized from a supported health application, or you can define a step goal for the watch face to configure the step goal for your watch face, in wfs, go to file > project > settings > health the [sc_per] tag is the percentage of the step goal achieved, automatically calculated from the step count and step goal q08 how do i sell my watch face in a region that is not supported by the play store? watch faces can be sold in unsupported countries through the device manufacturer’s own app store for example, watch faces for galaxy watch can be sold through galaxy apps for more information, see galaxy store seller portal different app stores can support different file types for watch faces, such as apk or aab you must create the appropriate watch face package for each store q09 why can't i find the 'enable debugging over the bluetooth' setting in galaxy wearable application on my phone? check that your wearable device supports bluetooth debugging debug over bluetooth is not supported on wear 3 devices for more information, see debug over bluetooth q10 why can’t i use lottie multimedia files on my watch face anymore? lottie files are no longer supported since watch face studio version 1 4 13 you must replace them with animations in a supported format, such as webp or animated gif q11 how does the step goal "sync to device" feature work? the sync to device feature enables your watch face to use the step goal defined by the user on their device’s health application it is supported on watch devices running api level 33 and higher wear 4 and later on wear 3 devices, because sync to device is not supported, the step goal is fixed to 6000 if you want to set a different step goal for wear 3 devices, you must create a separate watch face version for wear 3, disable sync to device, and define the step goal directly q12 why are some heart rate tag expressions and features not supported for my watch face? some tag expressions and features related to measuring heart rate on wear os watch devices running api level 30 are not supported by watch face studio v1 4 13 however, wfs supports synchronizing the measured heart rate value with the value displayed on the screen on wear os watch devices running api level 33 and higher and galaxy watch devices for wear os powered by samsung, the open app feature supports opening the health application to view heart rate information on those devices q13 why can't i group a complication slot with other components or combine multiple complications? in watch face studio, complications must be implemented independently they cannot be grouped with or be part of another element complications can only contain elements within them
FAQ health
docfaq what are the main features of the samsung health sensor sdk? the main features of the samsung health sensor sdk include track raw and processed health sensor data on galaxy watch receive data from multiple health sensors for information about the available trackers, see what data is provided the continuous health tracker types are accelerometer heart rate photoplethysmogram ppg skin temperature continuous tracker types measured sensor data and periodically invokes a tracking event listener this enables the watch’s sensor data to be tracked continuously and provide more granular results while conserving battery life how do i get access to the samsung health sensor sdk? you can download the samsung health sensor sdk on the samsung developer site and develop your application and develop the application with enabling the health platform's developer mode to distribute your application using the samsung health sensor sdk, request for the samsung partner program when your request is reviewed, you receive information about how to access the sdk content for more information, see process does the samsung health sensor sdk work on android phones? no the samsung health sensor sdk supports only galaxy watch4 and later models running wear os powered by samsung it does not support other mobile devices, such as smartphones can supported health tracker types of the samsung health sensor sdk differ depending on the galaxy watch model or wear os version? yes the supported health tracker types can differ depending on the specific galaxy watch model and the watch software version the samsung health sensor sdk provides a capability check api it retrieves which tracker types are available on the user’s watch and can therefore be used by your application can i read data from more than 1 health tracker type simultaneously? yes, depending on the tracker type there are 2 tracker types on-demand tracker type, such as bia body composition and ecg electrocardiogram continuous tracker type, such as accelerometer and heart rate only 1 on-demand tracker type can be used at a time multiple continuous tracker types can be used simultaneously the measure blood oxygen level and heart rate on galaxy watch code lab demonstrates how to implement running on-demand and continuous tracker types is an emulator available for developing applications with the samsung health sensor sdk? no the samsung health sensor sdk doesn't support the emulator development with the sdk requires the galaxy watch device can i detect when users take the galaxy watch off their wrist? yes, depending on the tracker for the heart rate, spo2, bia body composition , and sweat loss trackers, you can use the samsung health sensor sdk to monitor the status field with the update listener for example, a heart rate status value of “-3” means that the wearable is not being worn for information about other status values and trackers, refer to the api reference alternatively, you can check the sensor type_low_latency_offbody_detect value for more information, see heart rate tracking with the off-body sensor does the samsung health sensor sdk receive its data through samsung health? no the samsung health sensor sdk does not share data with samsung health health services also provides heart rate tracking how is heart rate tracking with the samsung health sensor sdk different? the samsung health sensor sdk provides heart rate data tracking with ibi inter-beat interval , which can be used to calculate hrv heart rate variability this information can be used for more detailed analysis the android sensor manager also provides accelerometer tracking how is accelerometer tracking with the samsung health sensor sdk different? the accelerometer tracking provided by the samsung health sensor sdk records data samples with 25hz resolution continuously the sdk gathers sensor data in an application processor without waking up the cpu and sends an event at specific periods to a watch application this minimizes the watch's battery consumption and enables a watch application to track the user's status for the entire day
Develop Health
docheart rate tracking with the off-body sensor battery consumption is a critical factor when developing applications that use device sensors to prolong battery life, the samsung health sensor sdk allows you to implement batching trackers, which send multiple data points in a single callback event another way you can extend battery life is by stopping sensor tracking when it is not needed, such as when the watch is not being worn this blog describes the “hr tracker” sample application, which implements the batching heart rate tracker in combination with the off-body sensor the application enables heart rate tracking only when the watch is worn if the user tries to start tracking without wearing the watch, they are informed to put it on if the watch is removed during tracking, the tracking is stopped if you have a galaxy watch4 or higher device running wear os powered by samsung, you can download the sample application and test it on your device hr tracker v1 2 0 139 3 kb sep 14 , 2024 prerequisites to implement off-body sensor and heart rate tracking in the application in the androidmanifest xml file for the application, declare the body sensors permission <uses-permission android name="android permission body_sensors" /> in the heartrateactivity java application code file, check whether the user has granted permission to use the body sensors on their galaxy watch if they have not, request it if checkselfpermission manifest permission body_sensors == packagemanager permission_denied { requestpermissions new string[]{manifest permission body_sensors}, offbody_request ; } implementing on and off-body detection to detect when the galaxy watch is being worn on the wrist create an instance of the sensormanager class msensormanager = sensormanager getsystemservice sensor_service ; from the sensormanager class, create an instance of the sensor class that contains the low-latency off-body sensor offbodysensor = msensormanager getdefaultsensor sensor type_low_latency_offbody_detect ; in the onresume method, register an event listener for changes to the offbodysensor value when the application is in the foreground msensormanager registerlistener skintemperatureactivity this, offbodysensor, sensormanager sensor_delay_normal ; in the onpause method, unregister the event listener when the application is in the background msensormanager unregisterlistener this ; override the onsensorchanged method to react to the offbodydata sensor value change when the watch is worn or removed from the wrist because the sensor value is a float, you must convert the value to an integer final float offbodydatafloat = sensorevent values[0]; final int offbodydata = math round offbodydatafloat ; if the value of offbodydata is 1, the watch is being worn we set the variable, which describes worn status, to true deviceworn set true ; if the value of offbodydata is 0, the watch is not being worn set the status variable to false and if measurement was being done at that time - end it and notify the user deviceworn set false ; if ismeasurementrunning get { endmeasurement ; toast maketext this, r string device_removed_during_measurement, toast length_long show ; } in the sample application - a toast message is shown, if the watch is removed while tracker is working watch removed during measurement measuring the heart rate to measure the user’s heart rate check which trackers are supported on the watch using the checkcapabilities method final list<healthtrackertype> availabletrackers = healthtrackingservice gettrackingcapability getsupporthealthtrackertypes ; and return if the heart rate tracker is supported return availabletrackers contains healthtrackertype heart_rate_continuous ; initialize the heart rate tracker heartratetracker = healthtrackingservice gethealthtracker healthtrackertype heart_rate_continuous ; when "measure" button is pressed - check if watch is being worn before starting tracker and cancel execution if its not if !deviceworn get { toast maketext this, r string device_not_worn, toast length_short show ; return; } set an event listener to receive and handle the tracked heart rate data if !ishandlerrunning { heartratehandler post -> heartratetracker seteventlistener heartratelistener ; ishandlerrunning = true; } a listener is an object, which will process incoming data in this blog we will focus on one of the functions included in it - ondatareceived it contains data gathered by the samsung health sensor sdk as list of datapoint type public void ondatareceived @nonnull list<datapoint> list { for datapoint data list { updateheartrate data ; } } for the heart rate sensor, each tracking result consists of a heart rate reading in beats per minute and its status parameter, and a list of inter-beat intervals and the corresponding status for each value because we are interested in the heart rate, extract the beats per minute reading and status final int status = data getvalue valuekey heartrateset heart_rate_status ; int heartratevalue = data getvalue valuekey heartrateset heart_rate ; trackerdatasubject notifyheartratetrackerobservers status, heartratevalue ; if the heart rate reading was successful, the status value is “1” to interpret other status values, see the api documentation display the heart rate and status value on the application screen activityheartratebinding txtheartratebpmvalue settext string format locale getdefault , "%d", heartratevalue ; activityheartratebinding txtheartratestatusvalue settext string format locale getdefault , "%d", status ; "hr tracker" sample application ui if the measurement is stopped by either user input, or watch being removed - stop the heart rate tracker if heartratelistener != null { heartratelistener stoptracker ; } this demonstration has shown how you can combine multiple strategies to enhance battery life when implementing sensor tracking in your watch applications, such as using batching tracker, and to disable tracking when the user is not wearing the device we encourage you to try doing it by yourself and explore other available features provided by samsung health sensor sdk
Learn Code Lab
codelabtransfer heart rate data from galaxy watch to a mobile device objective create a health app for galaxy watch, operating on wear os powered by samsung, to measure heart rate and inter-beat interval ibi , send data to a paired android phone, and create an android application for receiving data sent from a paired galaxy watch overview with this code lab, you can measure various health data using samsung health sensor sdk and send it to a paired android mobile device for further processing samsung health sensor sdk tracks various health data, but it cannot save or send collected results meanwhile, wearable data layer allows you to synchronize data from your galaxy watch to an android mobile device using a paired mobile device allows the data to be more organized by taking advantage of a bigger screen and better performance see samsung health sensor sdk descriptions for detailed information set up your environment you will need the following galaxy watch4 or newer android mobile device android studio latest version recommended java se development kit jdk 17 or later sample code here is a sample code for you to start coding in this code lab download it and start your learning experience! heart rate data transfer sample code 213 7 kb connect your galaxy watch to wi-fi go to settings > connection > wi-fi and make sure that the wi-fi is enabled from the list of available wi-fi networks, choose and connect to the same one as your pc turn on developer mode and adjust its settings on your watch, go to settings > about watch > software and tap on software version 5 times upon successful activation of developer mode, a toast message will display as on the image below afterwards, developer options will be visible under settings tap developer options and enable the following options adb debugging in developer options find wireless debugging turn on wireless debugging check always allow on this network and tap allow go back to developer options and click turn off automatic wi-fi notethere may be differences in settings depending on your one ui version connect your galaxy watch to android studio go to settings > developer options > wireless debugging and choose pair new device take note of the wi-fi pairing code, ip address & port in android studio, go to terminal and type adb pair <ip address> <port> <wi-fi pairing code> when prompted, tap always allow from this computer to allow debugging after successfully pairing, type adb connect <ip address of your watch> <port> upon successful connection, you will see the following message in the terminal connected to <ip address of your watch> now, you can run the app directly on your watch turn on developer mode for health platform to use the app, you need to enable developer mode in the health platform on your watch go to settings > apps > health platform quickly tap health platform title for 10 times this enables developer mode and displays [dev mode] below the title to stop using developer mode, quickly tap health platform title for 10 times to disable it set up your android device click on the following links to setup your android device enable developer options run apps on a hardware device connect the galaxy watch with you samsung mobile phone start your project in android studio, click open to open an existing project locate the downloaded android project hrdatatransfer-code-lab from the directory and click ok you should see both devices and applications available in android studio as in the screenshots below initiate heart rate tracking noteyou may refer to this blog post for more detailed analysis of the heart rate tracking using samsung health sensor sdk first, you need to connect to the healthtrackingservice to do that create connectionlistener, create healthtrackingservice object by invoking healthtrackingservice connectionlistener, context invoke healthtrackingservice connectservice when connected to the health tracking service, check the tracking capability the available trackers may vary depending on samsung health sensor sdk, health platform versions or watch hardware version use the gettrackingcapability function of the healthtrackingservice object obtain heart rate tracker object using the function healthtrackingservice gethealthtracker healthtrackertype heart_rate_continuous define event listener healthtracker trackereventlistener, where the heart rate values will be collected start tracking the tracker starts collecting heart rate data when healthtracker seteventlistener updatelistener is invoked, using the event listener collect heart data from the watch the updatelistener collects datapoint instances from the watch, which contains a collection of valuekey objects those objects contain heart rate, ibi values, and ibi statuses there's always one value for heart rate while the number of ibi values vary from 0-4 both ibi value and ibi status lists have the same size go to wear > java > data > com samsung health hrdatatransfer > data under ibidataparsing kt, provide the implementation for the function below /******************************************************************************* * [practice 1] get list of valid inter-beat interval values from a datapoint * - return arraylist<int> of valid ibi values validibilist * - if no ibi value is valid, return an empty arraylist * * var ibivalues is a list representing ibivalues up to 4 * var ibistatuses is a list of their statuses has the same size as ibivalues ------------------------------------------------------------------------------- * - hints * use local function isibivalid status, value to check validity of ibi * ****************************************************************************/ fun getvalidibilist datapoint datapoint arraylist<int> { val ibivalues = datapoint getvalue valuekey heartrateset ibi_list val ibistatuses = datapoint getvalue valuekey heartrateset ibi_status_list val validibilist = arraylist<int> //todo 1 return validibilist } check data sending capabilities for the watch once the heart rate tracker can collect data, set up the wearable data layer so it can send data to a paired android mobile device wearable data layer api provides data synchronization between wear os and android devices noteto know more about wearable data layer api, go here to determine if a remote mobile device is available, the wearable data layer api uses concept of capabilities not to be confused with samsung health sensor sdk’s tracking capabilities, providing information about available tracker types using the wearable data layer's capabilityclient, you can get information about nodes remote devices being able to consume messages from the watch go to wear > java > com samsung health hrdatatransfer > data in capabilityrepositoryimpl kt, and fill in the function below the purpose of this part is to filter all capabilities represented by allcapabilities argument by capability argument and return the set of nodes set<node> having this capability later on, we need those nodes to send the message to them /************************************************************************************** * [practice 2] check capabilities for reachable remote nodes devices * - return a set of node objects out of all capabilities represented by 2nd function * argument, having the capability represented by 1st function argument * - return empty set if no node has the capability -------------------------------------------------------------------------------------- * - hints * you might want to use filtervalues function on the given allcapabilities map * ***********************************************************************************/ override suspend fun getnodesforcapability capability string, allcapabilities map<node, set<string>> set<node> { //todo 2 } encode message for the watch before sending the results of the heart rate and ibi to the paired mobile device, you need to encode the message into a string for sending data to the paired mobile device we are using wearable data layer api’s messageclient object and its function sendmessage string nodeid, string path, byte[] message go to wear > java > com samsung health hrdatatransfer > domain in sendmessageusecase kt, fill in the function below and use json format to encode the list of results arraylist<trackeddata> into a string /*********************************************************************** * [practice 3] - encode heart rate & inter-beat interval into string * - encode function argument trackeddata into json format * - return the encoded string ----------------------------------------------------------------------- * - hint * use json encodetostring function **********************************************************************/ fun encodemessage trackeddata arraylist<trackeddata> string { //todo 3 } notetrackeddata is an object, containing data received from heart rate tracker’s single datapoint object @serializable data class trackeddata var hr int, var ibi arraylist<int> = arraylist run unit tests for your convenience, you will find an additional unit tests package this will let you verify your code changes even without using a physical watch or mobile device see the instruction below on how to run unit tests right click on com samsung health hrdatatransfer test , and execute run 'tests in 'com samsung health hrdatatransfer" command if you have completed all the tasks correctly, you will see all the unit tests pass successfully run the app after building the apks, you can run the applications on your watch to measure heart rate and ibi values, and on your mobile device to collect the data from your watch once the app starts, allow the app to receive data from the body sensors afterwards, it shows the application's main screen to get the heart rate and ibi values, tap the start button tap the send button to send the data to your mobile device notethe watch keeps last ~40 values of heart rate and ibi you’re done! congratulations! you have successfully achieved the goal of this code lab now, you can create a health app on a watch to measure heart rate and ibi, and develop a mobile app that receives that health data! if you face any trouble, you may download this file heart rate data transfer complete code 213 9 kb to learn more about samsung health, visit developer samsung com/health
Learn Code Lab
codelabmeasure blood oxygen level on galaxy watch objective create a health app for galaxy watch, operating on wear os powered by samsung, utilizing samsung health sensor sdk to trigger and obtain blood oxygen level spo2 measurement results overview samsung health sensor sdk provides means of accessing and tracking health information contained in the health data storage its tracking service gives raw and processed sensor data such as accelerometer and body composition data sent by the samsung bioactive sensor the latest bioactive sensor of galaxy watch runs powerful health sensors such as photoplethysmogram ppg , electrocardiogram ecg , bioelectrical impedance analysis bia , sweat loss, and spo2 see samsung health sensor sdk descriptions for detailed information set up your environment you will need the following galaxy watch4 or newer android studio latest version recommended java se development kit jdk 11 or later sample code here is a sample code for you to start coding in this code lab download it and start your learning experience! measuring blood oxygen level sample code 146 3 kb connect your galaxy watch to wi-fi go to settings > connection > wi-fi and make sure that wi-fi is enabled from the list of available wi-fi networks, choose and connect to the same one as your pc turn on developer mode and adjust its settings on your watch, go to settings > about watch > software and tap on software version 5 times upon successful activation of developer mode, a toast message will display as on the image below afterwards, developer options will be visible under settings tap developer options and enable the following options adb debugging in developer options find wireless debugging turn on wireless debugging check always allow on this network and tap allow go back to developer options and click turn off automatic wi-fi notethere may be differences in settings depending on your one ui version connect your galaxy watch to android studio go to settings > developer options > wireless debugging and choose pair new device take note of the wi-fi pairing code, ip address & port in android studio, go to terminal and type adb pair <ip address> <port> <wi-fi pairing code> when prompted, tap always allow from this computer to allow debugging after successfully pairing, type adb connect <ip address of your watch> <port> upon successful connection, you will see the following message in android studio’s terminal connected to <ip address of your watch> now, you can run the app directly on your watch turn on developer mode for health platform on your watch go to settings > apps > health platform quickly tap health platform title for 10 times this enables developer mode and displays [dev mode] below the title to stop using developer mode, quickly tap health platform title for 10 times to disable it start your project in android studio, click open to open existing project locate the downloaded android project from the directory and click ok check capabilities for the device to track data with the samsung health sensor sdk, it must support a given tracker type – blood oxygen level to check this, get the list of available tracker types and verify that the tracker is on the list in the connectionmanager java file, navigate to the isspo2available function, use a provided healthtrackingservice object to create a healthtrackercapability instance, send it to the checkavailabletrackers function, and assign its result to the availabletrackers list gettrackingcapability returns a healthtrackercapability instance in the healthtrackingservice object healthtrackingservicehealthtrackingservice initiates a connection to samsung's health tracking service and provides a healthtracker instance to track a healthtrackertype public healthtrackercapability gettrackingcapability provide a healthtrackercapability instance to get a supporting health tracker type list /****************************************************************************************** * [practice 1] check capabilities to confirm spo2 availability * * ---------------------------------------------------------------------------------------- * * hint replace todo 1 with java code * get healthtrackercapability object from healthtrackingservice * send the object to checkavailabletrackers ******************************************************************************************/ public boolean isspo2available healthtrackingservice healthtrackingservice { if healthtrackingservice == null return false; list<healthtrackertype> availabletrackers = null; //"todo 1" if availabletrackers == null return false; else return availabletrackers contains healthtrackertype spo2_on_demand ; } check connection error resolution using samsung health sensor sdk api, resolve any error when connecting to health tracking service in the connectionmanager java file, navigate to the processtrackerexception function, and check if the provided healthtrackerexception object has a resolution assign the result to hasresolution variable hasresolution function in the healthtrackerexception object checks if the api can fix the error healthtrackerexceptionhealthtrackerexception contains error codes and checks the error's resolution if there is a resolution, solving the error is available by calling resolve activity boolean hasresolution checks whether the given error has a resolution /******************************************************************************************* * [practice 2] resolve healthtrackerexception error * * ----------------------------------------------------------------------------------------- * * hint replace todo 2 with java code * call hasresolution on healthtrackerexception object ******************************************************************************************/ public void processtrackerexception healthtrackerexception e { boolean hasresolution = false; //"todo 2" if hasresolution e resolve callingactivity ; if e geterrorcode == healthtrackerexception old_platform_version || e geterrorcode == healthtrackerexception package_not_installed observerupdater getobserverupdater notifyconnectionobservers r string novalidhealthplatform ; else observerupdater getobserverupdater notifyconnectionobservers r string connectionerror ; log e tag, "could not connect to health tracking service " + e getmessage ; } initialize spo2 tracker before the measurement starts, initialize the spo2 tracker by obtaining the proper health tracker object in the spo2listener java file, navigate to the init function using the provided healthtrackingservice object, create an instance of the spo2 tracker and assign it to the spo2tracker object gethealthtracker with healthtrackertype spo2_on_demand as an argument will create a healthtracker instance healthtrackingservicehealthtrackingservice initiates a connection to samsung's health tracking service and provides a healthtracker instance to track a healthtrackertype healthtracker gethealthtracker healthtrackertype healthtrackertype provides a healthtracker instance for the given healthtrackertype /******************************************************************************************* * [practice 3] initialize spo2 tracker * * ---------------------------------------------------------------------------------------- * * hint replace todo 3 with java code * initialize spo2tracker with proper samsung health sensor sdk functionality * call gethealthtracker on healthtrackingservice object * use healthtrackertype spo2_on_demand as an argument ******************************************************************************************/ void init healthtrackingservice healthtrackingservice { //"todo 3" } perform measurement for the client app to start obtaining the data through the sdk, it has to set a listener method on the healthtracker the application setups the listener when the user taps on the measure button each time there is new data, the listener callback receives it after the measurement is completed, the listener has to be disconnected due to battery drain, on-demand measurement should not last more than 30 seconds the measurement is cancelled if the final value is not delivered in time note that the sensor needs a few seconds to warm up and provide correct values, which adds to the overall measurement time the blood oxygen level values come in the ondatareceived callback of trackereventlistener in spo2listener java file, you can see the code for reading the value private final healthtracker trackereventlistener spo2listener = new healthtracker trackereventlistener { @override public void ondatareceived @nonnull list<datapoint> list { for datapoint data list { updatespo2 data ; } } }; private void updatespo2 datapoint data { int status = data getvalue valuekey spo2set status ; int spo2value = 0; if status == measurement_completed spo2value = data getvalue valuekey spo2set spo2 ; observerupdater getobserverupdater notifytrackerobservers status, spo2value ; } run unit tests for your convenience, you can find an additional unit tests package this lets you verify your code changes even without using a physical watch see instructions below on how to run unit tests right click on com samsung health spo2tracking test and execute run 'tests in 'com samsung health spo2tracking'' command if you completed all the tasks correctly, you can see that all the unit tests passed successfully run the app after building the apk, you can run the application on a connected device to measure blood oxygen level right after the app is started, it requests for user permission allow the app to receive data from the body sensors afterwards, it shows the application's main screen to get the blood oxygen level, tap on the measure button to stop the measurement, tap on the stop button you're done! congratulations! you have successfully achieved the goal of this code lab now, you can create a health app that measures blood oxygen level by yourself! if you're having trouble, you may download this file measuring blood oxygen level complete code 146 2 kb to learn more about samsung health, visit developer samsung com/health
Develop Health
docrelease note release date september 22, 2024 release version v1 3 0 target device the samsung health sensor sdk are supported on the following watch devices that run on wear os powered by samsung galaxy watch4 series and later models sdk content content description documents api reference programming guide library tracking library of the samsung health sensor sdk import it in your app project samsung-health-sensor-api aar sample apps measure blood oxygen measure blood oxygen and heart rate heart rate tracker transfer measured heart rate to a connected phone measure skin temperature ecg monitor sweat loss monitor features the tracking apis of the samsung health sensor sdk enable partner application to register an event for tracking health sensor data and to retrieve that data while tracking on a galaxy watch capabilities the samsung health sensor sdk provides the available tracker types on the watch measuring watch’s health sensor data a partner application using the sdk can measure health-sensor data of a galaxy watch the following tracker types are supported [continuous tracker types] the following tracker types can be measured continuously until unsetting the tracker type’s event listener continuous tracker types operate with low battery consumption of the galaxy watch accelerometer heart rate including ibi inter-beat interval photoplethysmogram ppg green, infrared ir , and red skin temperature [on-demand tracker types] the following tracker types are on-demand tracker types use only one on-demand tracker type at a time and only when needed bioelectrical impedance analysis bia electrocardiogram ecg ppg green, infrared ir , and red skin temperature spo2 blood oxygen [other] measuring the user’s sweat loss amount after a running is available with the following tracker type sweat loss developer mode a developer mode is supported for testing and debugging see the developer mode for more information restrictions the emulator is not supported data measured by the samsung health sensor sdk is for fitness and wellness information only, not for the diagnosis or treatment of any medical condition changes 1 3 0 - september 22, 2024 rebranding the sdk name to "samsung health sensor sdk" 1 3 0 - august 22, 2024 [new] continuous and on-demand enum constant names of healthtrackertype have been defined accelerometer_continuous bia_on_demand ecg_on_demand heart_rate_continuous ppg_continuous ppg_on_demand skin_temperature_on_demand spo2_on_demand an application can track one or more ppgtypes with ppg_continuous or ppg_on_demand the following api has been added healthtrackingservice gethealthtracker healthtrackertype, set<ppgtype> the following ppg types have been added ppgtype green ppgtype ir ppgtype red valuekey ppgset has been added it includes ppg green, ir, red data the following fields for bia’s raw data have been added in valuekey biaset body_impedance_degree body_impedance_magnitude [deprecated] the following enum constant names of healthtrackertype have been deprecated accelerometer use accelerometer_continuous bia use bia_on_demand ecg use ecg_on_demand heart_rate use heart_rate_continuous ppg_green use ppg_continuous ppg_ir use ppg_on_demand ppg_red use ppg_on_demand skin_temperature use skin_temperature_on_demand spo2 use spo2_on_demand the following ppg data set of valuekey have been deprecated use valuekey ppgset instead of them valuekey ppggreenset valuekey ppgirset valuekey ppgredset [removed] the following fields of valuekey ecgset have been removed use alternative fields valuekey ecgset ecg use valuekey ecgset ecg_mv valuekey ecgset max_threshold use valuekey ecgset max_threshold_mv valuekey ecgset min_threshold use valuekey ecgset min_threshold_mv the following fields of valuekey heartrateset have been removed use alternative fields valuekey heartrateset heart_rate_ibi use valuekey heartrateset ibi_list valuekey heartrateset status use valuekey heartrateset heart_rate_status and valuekey heartrateset ibi_status_list 1 2 0 - august 30, 2023 [new] the skin temperature tracker type and data point set have been added skin temperature can be measured on-demand or as a batching event for more information, see the api reference healthtrackertype skin_temperature healthtrackertype skin_temperature_continuous valuekey skintemperatureset the following interfaces for values in millivolts have been added to the ecg data point set ecg_mv max_threshold_mv min_threshold_mv the following interfaces for heart rate status and ibi-related information have been added to the heart rate data point set valuekey heartrateset heart_rate_status valuekey heartrateset ibi_list valuekey heartrateset ibi_status_list the status interface has been added to the following data point sets valuekey accelerometerset status valuekey ppggreenset status valuekey ppgirset status valuekey ppgredset status [change] the error description of the first bit in the 1 ~ 127 value for valuekey sweatlossset status has been updated [deprecated] the following interfaces in the ecg data point set have been deprecated valuekey ecgset ecg, replaced by valuekey ecgset ecg_mv valuekey ecgset max_threshold, replaced by valuekey ecgset max_threshold_mv valuekey ecgset min_threshold, replaced by valuekey ecgset min_threshold_mv the following interfaces in the heart rate data point set have been deprecated valuekey heartrateset heart_rate_ibi, replaced by valuekey heartrateset ibi_list valuekey heartrateset status, replaced by valuekey heartrateset heart_rate_status and valuekey heartrateset ibi_status_list [removed] valuekey heartrateset flag has been removed 1 1 0 - march 31, 2022 minor stability improvements have been made to the sdk library 1 1 0 alpha - march 17, 2022 [new] the spo2 tracker type and data point set have been added, which are supported by health platform v1 3 0 healthtrackertype spo2 valuekey spo2set valuekey heartrateset status has been added, which replaces valuekey heartrateset flag [changes] the trackingsampleapp application code has been updated [deprecated] valuekey heartrateset flag has been deprecated 1 0 0 - feb 25, 2022 the values for sweatlossset status have changed for more information, see the api reference 1 0 0 beta1 - dec 31, 2021 minor issues related to the sweat loss feature have been fixed 1 0 0 alpha3 - dec 17, 2021 [new] the sweat loss feature has been added, which measures how much sweat is lost during a run the following interfacess have been added datatype enum exercisestate enum exercisetype enum healthtrackertype sweat_loss enum vale healthtrackingservice gethealthtracker healthtrackertype healthtrackertype, trackeruserprofile userprofile, exercisetype type api valuekey sweatlossset class [known issue] the following issues are to be resolved in february 2022 watch software update a timestamp period variation issue in received sensor data for accelerometer, heart rate and ppg grenn an issue where healthtracker trackereventlistener onflushcompleted is not received 1 0 0 alpha2 - july 28, 2021 [change] the sdk policy has been applied tracking watch sensor data with the sdk is available only for the tracking types within the registered scope if sdk_policy_error occurs, talk to your samsung contact point the following interfaces have been added to the tracking data point sets the bia status has been defined valuekey biaset status check this value after a bia measurement if the status indicates an error, guide the user with a message and appropriate ui the ecg’s lead on/off values have been defined valuekey ecgset lead_off the flag for heart rate measurement has been added valuekey heartrateset flag in healthtracker trackererror the following unused errors have been removed low_signal movement_detected not_wearing time_out the following error has been added sdk_policy_error measurement guides for each sensor data have been added to the programing guide
Learn Code Lab
codelabmeasure skin temperature on galaxy watch objective create a health app for galaxy watch, operating on wear os powered by samsung, utilizing samsung health sensor sdk to obtain skin temperature measurement results overview samsung health sensor sdk provides means of accessing and tracking health information contained in the health data storage its tracking service gives raw and processed sensor data such as accelerometer and body composition data sent by the samsung bioactive sensor the active sensor of galaxy watch runs powerful health sensors such as photoplethysmogram ppg , electrocardiogram ecg , bioelectrical impedance analysis bia , sweat loss, and spo2 see samsung health sensor sdk descriptions for detailed information set up your environment you will need the following galaxy watch5 or newer with updated health platform android studio latest version recommended java se development kit jdk 17 or later sample code here is a sample code for you to start coding in this code lab download it and start your learning experience! skin temperature tracking sample code 148 0 kb connect your galaxy watch to wi-fi go to settings > connection > wi-fi and make sure that the wi-fi is enabled from the list of available wi-fi networks, choose and connect to the same one as your pc turn on developer mode and adjust its settings on your watch, go to settings > about watch > software and tap on software version 5 times upon successful activation of developer mode, a toast message will display as on the image below afterwards, developer options will be visible under settings tap developer options and enable the following options adb debugging in developer options, search for wireless debugging turn on wireless debugging check always allow on this network, and tap allow go back to developer options, and click turn off automatic wi-fi notethere may be differences in settings depending on your one ui version connect your galaxy watch to android studio go to settings > developer options > wireless debugging and choose pair new device take note of the wi-fi pairing code, ip address & port in android studio, go to terminal and type adb pair <ip address> <port> <wi-fi pairing code> when prompted, tap always allow from this computer to allow debugging after successfully pairing, type adb connect <ip address of your watch> <port> upon successful connection, you will see the following message in android studio’s terminal connected to <ip address of your watch> now, you can run the app directly on your watch turn on developer mode for health platform on your watch go to settings > apps > health platform quickly tap health platform title for 10 times this enables developer mode and displays [dev mode] below the title to stop using developer mode, quickly tap health platform title for 10 times to disable it start your project in android studio and click open to open an existing project locate the downloaded android project skintemptracking from the directory and click ok check tracking capabilities to track the data with the sdk, the device must support skin temperature, like the galaxy watch5 skin temperature tracking can work in 2 modes batching and on-demand the tracker type for batching is healthtrackertype skin_temperature_continuous and healthtrackertype skin_temperature_on_demand for on-demand in this code lab, you are going to use on-demand tracker in connectionmanager java, navigate to isskintemperatureavailable function use a provided healthtrackingservice object to create a healthtrackercapability instance, and send it to checkavailabletrackers function, and assign its result to availabletrackers list gettrackingcapability returns a healthtrackercapability instance in healthtrackingservice object healthtrackingservicehealthtrackingservice initiates a connection to samsung's health tracking service and provides a healthtracker instance to track a healthtrackertype public healthtrackercapability gettrackingcapability provide a healthtrackercapability instance to get a supporting healthtrackertype list /****************************************************************************************** * [practice 1] check capabilities to confirm skin temperature availability * * ---------------------------------------------------------------------------------------- * * hint replace todo 1 with java code * get healthtrackercapability object from healthtrackingservice * send the object to checkavailabletrackers ******************************************************************************************/ boolean isskintemperatureavailable healthtrackingservice healthtrackingservice { if healthtrackingservice == null return false; @suppresswarnings "unusedassignment" list<healthtrackertype> availabletrackers = null; //"todo 1" if availabletrackers == null return false; else return availabletrackers contains healthtrackertype skin_temperature ; } initialization of skin temperature tracker before starting the measurement, initialize the skin temperature tracker by creating a healthtracker object in skintemperaturelistener java, navigate to setskintemperaturetracker using the provided healthtrackingservice object, create an instance of the healthtracker class of skin_temperature_on_demand type and assign it to the skintemperaturetracker object gethealthtracker with healthtrackertype skin_temperature_on_demand as an argument creates a healthtracker instance after a single measurement, the tracker should be stopped when using on-demand measurement for continuous measurement, use healthtrackertype skin_temperature_continuous healthtrackingservicehealthtrackingservice initiates a connection to samsung's health tracking service and provides a healthtracker instance to track a healthtrackertype healthtracker gethealthtracker healthtrackertype healthtrackertype create a healthtracker instance for the given healthtrackertype /******************************************************************************************* * [practice 2] setup skin temperature tracker * * ---------------------------------------------------------------------------------------- * * hint replace todo 2 with java code * initialize skintemperaturetracker with proper samsung health sensor sdk functionality * call gethealthtracker on healthtrackingservice object * use healthtrackertype skin_temperature_on_demand as an argument ******************************************************************************************/ void setskintemperaturetracker healthtrackingservice healthtrackingservice { //"todo 2" } starting and stopping the tracker for the client app to obtain the data through the sdk, set a listener method on healthtracker this method is called every time there is new data healthtrackerhealthtracker enables an application to set an event listener and get tracking data for a specific healthtrackertype public void seteventlistener healthtracker trackereventlistener listener set an event listener to the healthtracker instance void starttracker { if !ishandlerrunning { skintemperaturehandler post -> skintemperaturetracker seteventlistener skintemperaturelistener ; ishandlerrunning = true; } } after the finished measurement, the on-demand tracker should be stopped you can do that by unsetting the event listener from healthtracker healthtrackerhealthtracker enables an application to set an event listener and get tracking data for a specific healthtrackertype public void unseteventlistener stop the registered event listener to this healthtracker instance void stoptracker { if skintemperaturetracker != null skintemperaturetracker unseteventlistener ; skintemperaturehandler removecallbacksandmessages null ; ishandlerrunning = false; } process obtained skin temperature data the answer from the healthtrackingservice is asynchronous the skintemperaturelistener receives the callback containing a data point with all the required information follow the steps below to get skin temperature data in skintemperaturelistener java, go to the updateskintemperature function and read skin temperature data from datapoint get skin temperature status using datapoint api key valuekey skintemperatureset status get skin temperature value using datapoint api key valuekey skintemperatureset object_temperature get ambient temperature value using datapoint api key valuekey skintemperatureset ambient_temperature datapointdatapoint provides a map of valuekey and value with a timestamp public <t>t getvalue valuekey<t>type get data value for the given key private final healthtracker trackereventlistener skintemperaturelistener = new healthtracker trackereventlistener { @override public void ondatareceived @nonnull list<datapoint> list { stoptracker ; for datapoint data list { updateskintemperature data ; } } }; /******************************************************************************************* * [practice 3] read values from datapoint object * - get skin temperature status value * - get wrist skin temperature value - it's named "object_temperature" in the library * - get ambient temperature value ------------------------------------------------------------------------------------------- * - hint replace todo 3 with parts of code * 1 remove skintemperaturestatus invalid_measurement and * set status from 'datapoint' object using data getvalue valuekey skintemperatureset status * * if status is 'skintemperaturestatus successful_measurement' then * 2 set wristskintemperaturevalue from 'datapoint' object using * data getvalue valuekey skintemperatureset object_temperature ; * 3 set ambienttemperaturevalue from 'datapoint' object using * data getvalue valuekey skintemperatureset ambient_temperature ; ******************************************************************************************/ void updateskintemperature datapoint data { final int status = skintemperaturestatus invalid_measurement; float wristskintemperaturevalue = 0; float ambienttemperaturevalue = 0; //"todo 3" trackerdatasubject notifyskintemperaturetrackerobservers status, ambienttemperaturevalue, wristskintemperaturevalue ; } run unit tests for your convenience, you will find an additional unit tests package this will let you verify your code changes even without using a physical watch see the instruction below on how to run unit tests right click on com samsung health skintemptracking test and execute run 'tests in 'com samsung health skintemptrackin" command if you have completed all the tasks correctly, you can see all the unit tests pass successfully run the app after building the apk, you can run the application on a connected device to measure your skin temperature once the app starts, allow the app to receive data from the body sensors afterwards, the screen shows the application tap the measure button to get your skin temperature to stop measuring, tap on the stop button you're done! congratulations! you have successfully achieved the goal of this code lab now, you can create a health app that measures skin temperature by yourself! if you are having trouble, you may download this file skin temperature tracking complete project 147 8 kb to learn more about samsung health, visit developer samsung com/health
Learn Code Lab
codelabmeasure blood oxygen level and heart rate on galaxy watch objective create a health app for galaxy watch, operating on wear os powered by samsung, utilizing samsung health sensor sdk to trigger and obtain results of simultaneous blood oxygen level spo2 and heart rate measurements overview samsung health sensor sdk provides means of accessing and tracking health information contained in the health data storage its tracking service gives raw and processed sensor data such as accelerometer and body composition data sent by the samsung bioactive sensor the latest bioactive sensor of galaxy watch runs powerful health sensors such as photoplethysmogram ppg , electrocardiogram ecg , bioelectrical impedance analysis bia , sweat loss, and spo2 see samsung health sensor sdk descriptions for detailed information set up your environment you will need the following galaxy watch4 or newer android studio latest version recommended java se development kit jdk 11 or later sample code here is a sample code for you to start coding in this code lab download it and start your learning experience! measuring blood oxygen level and heart rate sample code 159 2 kb connect your galaxy watch to wi-fi go to settings > connection > wi-fi and make sure that wi-fi is enabled from the list of available wi-fi networks, choose and connect to the same one as your pc turn on developer mode and adjust its settings on your watch, go to settings > about watch > software and tap on software version 5 times upon successful activation of developer mode, a toast message will display as on the image below afterwards, developer options will be visible under settings tap developer options and enable the following options adb debugging in developer options find wireless debugging turn on wireless debugging check always allow on this network and tap allow go back to developer options and click turn off automatic wi-fi notethere may be differences in settings depending on your one ui version connect your galaxy watch to android studio go to settings > developer options > wireless debugging and choose pair new device take note of the wi-fi pairing code, ip address & port in android studio, go to terminal and type adb pair <ip address> <port> <wi-fi pairing code> when prompted, tap always allow from this computer to allow debugging after successfully pairing, type adb connect <ip address of your watch> <port> upon successful connection, you will see the following message in android studio’s terminal connected to <ip address of your watch> now, you can run the app directly on your watch turn on developer mode for health platform on your watch go to settings > apps > health platform quickly tap health platform title for 10 times this enables developer mode and displays [dev mode] below the title to stop using developer mode, quickly tap health platform title for 10 times to disable it start your project in android studio, click open to open existing project locate the downloaded android project from the directory and click ok establish service connection and check capabilities for the device to track data with the samsung health sensor sdk, it must connect to the service by healthtrackingservice api after establishing a connection, verify if the required tracker type is available to check this, get the list of available tracker types and verify that the tracker is on the list in this code lab, you will utilize blood oxygen level and heart rate trackers the healthtrackingservice api usage is in the table below healthtrackingservicehealthtrackingservice initiates a connection to samsung's health tracking service and provides a healthtracker instance to track a healthtrackertype public void connectservice establish a connection with samsung's health tracking service public void disconnectservice release a connection for samsung's health tracking service public healthtrackercapability gettrackingcapability provide a healthtrackercapability instance to get a supporting health tracker type list initialize multiple trackers before the measurement starts, initialize the spo2 tracker by obtaining the proper health tracker object in the connectionmanager java file, navigate to initspo2 , create an oxygen saturation healthtracker instance, and pass it to the spo2listener instance get the healthtracker object using the healthtrackingservice api use the healthtrackertype spo2_on_demand type as parameter healthtrackingservicehealthtrackingservice initiates a connection to samsung's health tracking service and provides a healthtracker instance to track a healthtrackertype public healthtracker gethealthtracker healthtrackertype healthtrackertype provide a healthtracker instance for the given healthtrackertype pass the healthtracker object to the spo2listener instance object spo2listener public void sethealthtracker healthtracker tracker set healthtracker instance for the given tracker /******************************************************************************************* * [practice 1] create blood oxygen level health tracker object * - get health tracker object * - pass it to spo2listener ------------------------------------------------------------------------------------------- * - hint replace todo 1 with parts of code * 1 get healthtracker object using healthtrackingservice gethealthtracker * use healthtrackertype spo2_on_demand type as parameter * 2 pass it to spo2listener using sethealthtracker function ******************************************************************************************/ public void initspo2 spo2listener spo2listener { //"todo 1 1 " //"todo 1 2 " sethandlerforbaselistener spo2listener ; } next, in the connectionmanager java file, in the initheartrate function, create a heart rate healthtracker instance, and pass it to the heartratelistener instance get the healthtracker object using the healthtrackingservice api use the healthtrackertype heart_rate_continuous type as parameter pass the healthtracker object to the heartratelistener instance object heartratelistener public void sethealthtracker healthtracker tracker set healthtracker instance for the given tracker /******************************************************************************************* * [practice 2] create heart rate health tracker object * - get health tracker object * - pass it to heartratelistener ------------------------------------------------------------------------------------------- * - hint replace todo 2 with parts of code * 1 get healthtracker object using healthtrackingservice gethealthtracker * use healthtrackertype heart_rate_continuous type as parameter * 2 pass it to heartratelistener using sethealthtracker function ******************************************************************************************/ public void initheartrate heartratelistener heartratelistener { //"todo 2 1 " //"todo 2 2 " sethandlerforbaselistener heartratelistener ; } start and stop trackers for the client app to start obtaining the data through the sdk, set a listener method on healthtracker this method will be called every time there is new data after the measurement completes, the listener has to be disconnected to start measurement in the baselistener java file, navigate to starttracker function, and set trackereventlistener as listener healthtracker object set an event listener on healthtracker object using healthtracking api use the healthtracker trackereventlistener object instance as parameter healthtrackerhealthtracker enables an application to set an event listener and get tracking data for a specific healthtrackertype public void seteventlistener healthtracker trackereventlistener listener set an event listener to this healthtracker instance /******************************************************************************************* * [practice 3] start health tracker by setting event listener * - set event listener on health tracker ------------------------------------------------------------------------------------------- * - hint replace todo 3 with parts of code * set event listener on healthtracker object using healthtracker seteventlistener * use trackereventlistener object as parameter ******************************************************************************************/ public void starttracker { log i app_tag, "starttracker called " ; log d app_tag, "healthtracker " + healthtracker tostring ; log d app_tag, "trackereventlistener " + trackereventlistener tostring ; if !ishandlerrunning { handler post -> { //"todo 3" sethandlerrunning true ; } ; } } to stop measurement, unset the trackereventlistener from the healthtracker object in the stoptracker function unset the event listener on healthtracker object using healthtracking api healthtrackerhealthtracker enables an application to set an event listener and get tracking data for a specific healthtrackertype public void unseteventlistener stop the registered event listener to this healthtracker instance /******************************************************************************************* * [practice 4] stop health tracker by removing event listener * - unset event listener on health tracker ------------------------------------------------------------------------------------------- * - hint replace todo 4 with parts of code * unset event listener on healthtracker object using healthtracker unseteventlistener ******************************************************************************************/ public void stoptracker { log i app_tag, "stoptracker called " ; log d app_tag, "healthtracker " + healthtracker tostring ; log d app_tag, "trackereventlistener " + trackereventlistener tostring ; if ishandlerrunning { //"todo 4" sethandlerrunning false ; handler removecallbacksandmessages null ; } } process obtained and batching data the response from the platform will be asynchronous with the results you want to obtain follow the steps below to get blood oxygen level and heart rate data in the spo2listener java file, navigate to updatespo2 function, and read spo2 data from datapoint get the oxygen saturation status using the datapoint api key valuekey spo2set status get the oxygen saturation value using the datapoint api key valuekey spo2set spo2 datapointdatapoint provides a map of valuekeyand value with a timestamp public <t>t getvalue valuekey<t> type get data value for the given key /******************************************************************************************* * [practice 5] read values from datapoint object * - get blood oxygen level status * - get blood oxygen level value ------------------------------------------------------------------------------------------- * - hint replace todo 5 with parts of code * 1 remove spo2status calculating and * set status from 'datapoint' object using datapoint getvalue valuekey spo2set status * 2 set spo2value from 'datapoint' object using datapoint getvalue valuekey spo2set spo2 * if status is 'spo2status measurement_completed' ******************************************************************************************/ public void updatespo2 datapoint datapoint { int status = spo2status calculating; //"todo 5 1 " int spo2value = 0; //"todo 5 2 " trackerdatanotifier getinstance notifyspo2trackerobservers status, spo2value ; log d app_tag, datapoint tostring ; } in the heartratelistener java file, navigate to readvaluesfromdatapoint function, and read the heart rate data from datapoint get heart rate status using datapoint api key valuekey heartrateset heart_rate_status get heart rate value using datapoint api key valuekey heartrateset heart_rate get heart rate ibi value using datapoint api key valuekey heartrateset ibi_list get ibi quality using datapoint api key valuekey heartrateset ibi_status_list /******************************************************************************************* * [practice 6] read values from datapoint object * - get heart rate status * - get heart rate value * - get heart rate ibi value * - check retrieved heart rate’s ibi and ibi quality values ------------------------------------------------------------------------------------------- * - hint replace todo 6 with parts of code * 1 set hrdata status from 'datapoint' object using datapoint getvalue valuekey heartrateset heart_rate_status * 2 set hrdata hr from 'datapoint' object using datapoint getvalue valuekey heartrateset heart_rate * 3 set local variable 'list<integer> hribilist' using datapoint getvalue valuekey heartrateset ibi_list * 4 set local variable 'final list<integer> hribistatus' using datapoint getvalue valuekey heartrateset ibi_status_list * 5 set hrdata ibi with the last of 'hribilist' values * 6 set hrdata qibi with the last of 'hribistatus' values ******************************************************************************************/ public void readvaluesfromdatapoint datapoint datapoint { heartratedata hrdata = new heartratedata ; //"todo 6 1 " //"todo 6 2 " //"todo 6 3 " //"todo 6 4 " //"todo 6 5 " //"todo 6 6 " trackerdatanotifier getinstance notifyheartratetrackerobservers hrdata ; log d app_tag, datapoint tostring ; } run unit tests for your convenience, you can find an additional unit tests package this lets you verify your code changes even without using a physical watch see instructions below on how to run unit tests right click on com samsung health multisensortracking test and execute run 'tests in 'com samsung health multisensortracking'' command if you completed all the tasks correctly, you can see that all the unit tests passed successfully run the app after building the apk, you can run the application on a connected device to see blood oxygen level and heart rate values right after the app is started, it requests for user permission allow the app to receive data from the body sensors afterwards, it shows the application's main screen and automatically display the heart rate to get the blood oxygen level spo2 value, tap on the measure button to stop the measurement, tap on the stop button tap on the details label to see more heart rate data you're done! congratulations! you have successfully achieved the goal of this code lab now, you can create a health app that measures blood oxygen level and heart rate by yourself! if you're having trouble, you may download this file measuring blood oxygen level and heart rate complete code 158 8 kb to learn more about samsung health, visit developer samsung com/health
Develop Galaxy Watch for Tizen
doccreate your first tizen wearable native watch application welcome to tizen wearable native watch application development! note for watch face developers you can create watch faces with galaxy watch studio or tizen studio for your personal enjoyment however you will not be able to add watch face applications to seller portal until you have received approval to publish watch faces the review is not required for watch app and widget developers galaxy store supports watch faces for galaxy watch3 and earlier samsung watches running on tizen watch faces for galaxy watch4 and later running on wear os powered by samsung is only supported in the chinese galaxy store a wearable native watch application is created using the c language, and can be run on tizen wearable devices to display a customized watch face to the user study the following instructions to help familiarize yourself with the tizen native application development process as well as using the tizen studio and installing the created application on the emulator or target device with the instructions, you can create and run a basic wearable native watch application, which displays some text and the current time on the screen before you get started with developing tizen applications, download and install the tizen studio for more information on the installation process, see the installation guide create a wearable native watch project using the tizen studio this step shows how you can use a predesigned project template that creates all the basic files and folders required for your project build the application after you have implemented code for the features you want, this step shows how you can build the application to validate and compile the code run the application this step shows how you can run the application on the emulator or a real target device design a ui this step shows how you can create the application ui and make small alterations to it to improve the usability of your application when you are developing a more complex application, you can take advantage of the native tools included in the tizen studio to ease the tasks of creating functionality and designing the application ui creating a project the following example shows you how to create and configure a basic wearable native watch application project in the tizen studio an application project contains all the files that make up an application the following figure illustrates the application to be created the application screen displays the hello watch text and the current time, which continues to be refreshed every second while the application runs figure wearable native watch application to create the application project launch the tizen studio in the tizen studio menu, select file > new > tizen project the project wizard opens in the project wizard, define the project details the project wizard is used to create the basic application skeleton with the required folder structure and mandatory files you can easily create different applications by selecting an applicable template or sample for the project wizard to use select the template project type and click next select the profile wearable and version from a drop-down list and click next the version depends on the platform version you have installed and with which you are developing the application select the native application application type and click next select the watch template and click next define the project properties and click finish you can enter the project name 3-50 characters and the unique package id you can also select the location and working sets by clicking more properties the project wizard sets up the project, creates the application files using the default content from the template, and closes for more information on the project wizard and the available templates, see creating tizen projects with tizen project wizard you can see the created project in the project explorer view the most important files and folders include inc default folder for included source files res folder for resource files used by the application only shared folder for resource files to be shared with other applications src folder for source code files lib folder for external library files tizen-manifest xml manifest file used by the platform to install and launch the application figure application in the project explorer note you can view and modify the application configuration in the manifest editor in this example, no configuration changes are required your application project is now ready for further actions next, build the application managing the application configuration to view and modify the application configuration in the project explorer view, double-click the tizen-manifest xml file of the application the tizen studio opens the file in the manifest editor in the manifest editor, view and modify the configuration details using the various tabs overview define general information, such as the package, label, and icon of the application features define required software and hardware features this information is used for application filtering in the tizen store privileges define the security-sensitive apis or api groups accessed and used by the application localization define localized values for the application label, description, and icon advanced define advanced features, such as application metadata and some miscellaneous options source view and edit the source code of the tizen-manifest xml file changes made and saved on the other tabs are reflected in the source code and vice versa note the tizen-manifest xml file must conform to both the xml file format and the tizen native application specification requirements editing the file in the source tab is intended for advanced users only to save any changes, in the tizen studio menu, select file > save all for more information on configuring the application, see setting the application manifest understanding the source code pay attention to the following main issues in the application source code in the inc/watch h and src/watch c files , to understand how the application is designed and how it works for source code details related to the ui, see designing a simple ui the watch application is initialized to use the functions and data types of the watch application api by including the <watch_app h> header file in your application #include <watch_app h> all header files that you need are already included in the watch h file, which is generated by the tizen studio when the template project is created the life-cycle callbacks manage specific parts of the application life-cycle they are set in the watch_app_lifecycle_callback_s structure, and the structure is passed to the watch_app_main function of the watch application api to start the watch application event loop int main int argc, char *argv[] { appdata_s ad = {0,}; int ret = 0; watch_app_lifecycle_callback_s event_callback = {0,}; app_event_handler_h handlers[5] = {null,}; event_callback create = app_create; event_callback terminate = app_terminate; event_callback pause = app_pause; event_callback resume = app_resume; event_callback app_control = app_control; event_callback time_tick = app_time_tick; event_callback ambient_tick = app_ambient_tick; event_callback ambient_changed = app_ambient_changed; ret = watch_app_main argc, argv, &event_callback, &ad ; if ret != app_error_none dlog_print dlog_error, log_tag, "watch_app_main is failed err = %d", ret ; return ret; } the create event is triggered before the application main loop starts in this callback, you can initialize the application resources, such as create windows and data structures static bool app_create int width, int height, void *data { /* hook to take necessary actions before the main event loop starts initialize ui resources and application's data if this function returns true, the main loop of application starts if this function returns false, the application is terminated */ appdata_s *ad = data; create_base_gui ad, width, height ; return true; } the time_tick event is triggered at least once per second the watch applications can get the current time from the watch_time time handle to draw a normal watch static void app_time_tick watch_time_h watch_time, void *data { /* called each second while your app is visible; update the watch ui */ appdata_s *ad = data; update_watch ad, watch_time, 0 ; } note for more information on the application life-cycle callbacks, see applications an ambient mode is available on a low-powered wearable device in this mode, the watch application shows a limited ui and receives only the ambient tick event every minute to reduce power consumption the details of the limited ui drawn in the ambient mode depend on the device in addition, due to the ambient mode being a low power mode, there are limits to the colors that can be shown on the screen usually, when designing the ambient mode ui, draw it with limited colors cyan, magenta, yellow, red, green, blue, black and white , and use less than 15% of the pixels on the screen if you do not want to draw your own ambient mode ui, set the ambient-support attribute to false in the watch application manifest file to allow the platform to show a default ambient mode ui note to use the ambient mode, the user must enable it in the device settings in addition, on the galaxy watch device, the ambient mode activates only when you are wearing the watch on the wrist - the `ambient_tick` callback is triggered every minute while the device is in the ambient mode you can use the callback to update the time on your watch application in the ambient mode in this callback, do not perform time-consuming tasks and always update the ui as quickly as possible the platform can put the device to sleep shortly after the ambient tick expires ```c static void app_ambient_tick watch_time_h watch_time, void *data { /* called at each minute while the device is in ambient mode update watch ui */ appdata_s *ad = data; update_watch ad, watch_time, 1 ; } ``` - the `ambient_changed` callback is triggered when the ambient mode is enabled or disabled on the device you can use the callback to initialize your ambient mode ui ```c static void app_ambient_changed bool ambient_mode, void *data { if ambient_mode /* prepare to enter the ambient mode */ else /* prepare to exit the ambient mode */ } ``` building your application after you have created the application project, you can implement the required features in this example, only the default features from the project template are used, and no code changes are required when your application code is ready, you must build the application the building process performs a validation check and compiles your files you can build the application in the following ways automatically the automatic build means that the tizen studio automatically rebuilds the application whenever you change a source or resource file and save the application project to use the automatic build select the project in the project explorer view in the tizen studio menu, select project > build automatically a check mark appears next to the menu option you can toggle the automatic build on and off by reselecting project > build automatically manually the manual build means that you determine yourself when the application is built to manually build the application, right-click the project in the project explorer view and select build project figure manually building the application alternatively, you can also select the project in the project explorer view and do one of the following in the tizen studio menu, select project > build project press the f10 key you can have more than one build configuration to see the current active configuration or change it, right-click the project in the project explorer view and select build configurations > set active the default configuration is debug for more information, see building applications after you have built the application, run it running your application you can run the application on the emulator or a real target device running on the emulator to run the application on the emulator launch an emulator instance in the emulator manager in the tizen studio menu, select tools > emulator manager in the emulator manager, select a wearable emulator from the list and click launch if no applicable emulator instance exists, create a new one the emulator is launched in its own window you can also see the new emulator instance and its folder structure in the device manager generate a security profile before you run the application, you must sign your application package with a certificate profile in the tizen studio run the application in the project explorer view, right-click the project and select run as > tizen native application alternatively, you can also select the project in the project explorer view and do one of the following press the ctrl + f11 key click the run icon in the toolbar if you have created multiple emulator instances, select the instance you want from the combo box in the toolbar before selecting to run the application if you select an offline emulator, it is automatically launched when you select to run the application confirm that the application launches on the emulator note if the emulator display has switched off, you cannot see the application launch to switch the display on, click the power key in the lower-right corner of the emulator 3 change the watch face <a name="watchface"></a> to change the watch face and make the installed watch application visible ![changing the watch face] https //docs tizen org/application/native/get-started/wearable-watch/media/watch_run_change_wn png 1 if the emulator display has been switched off, activate it by pressing the **power** key in the lower-right corner of the emulator 2 on the home screen showing the default watch face , press the **power** key 3 in the recent apps screen, select **settings \> watch faces and styles \> watch faces** 4 swipe right until you find your application icon, and select it the **clock changed** message is displayed 5 press the **back** key in the upper-right corner of the emulator device multiple times, until the home screen with your new watch face is shown ![application running in the emulator] https //docs tizen org/application/native/get-started/wearable-watch/media/watch_run_face_wn png while the application is running, the **log** view in the tizen studio shows the log, debug, and exception messages from the methods defined in the log macros to see the view, in the tizen studio menu, go to **window \> show view \> log** for more information on using the emulator features, see using emulator control keys, menu, and panel and using extended emulator features running on a target device to run the application on a target device connect the wearable target device to your computer define settings on the device go to settings > connections, and switch on wi-fi the device and the computer must be connected to the same wi-fi network note the ip address the device is using go to settings > gear info, and switch on the debugging mode in the terminal, enter the following commands cd tizen-studio/tools /sdb connect <ip address of galaxy watch> use the ip address you noted before instead of the terminal, you can also use the remote device manager for the connection in the first attempt, the connection fails and the device asks for user confirmation to allow galaxy watch to read log data, copy files to and from your computer, and install the application manually, click the accept mark in the device manager, confirm that the device is connected shown in the device list generate an author certificate before you run the application, you must sign your application package with a certificate profile in the tizen studio run the application in the device manager, select the device in project explorer view, right-click the project and select run as > tizen native application alternatively, you can also select the project in the project explorer view and do one of the following press the ctrl + f11 key click the run icon in the toolbar if you have both a connected device and existing emulator instances, select the device from the combo box in the toolbar before selecting to run the application confirm that the application launches on the target device like with the emulator, you can change the watch face in the device settings to see the watch application on the home screen note the application is launched using the default debug run configuration to create and use another configuration in the project explorer view, right-click the project and select run as > run configurations in the run configurations window, click the new launch configuration icon , define the configuration details, and launch the application by clicking run designing a simple ui the wearable watch application created with the watch template has a simple user interface with a label component showing the hello watch text and the current time hour, minute, and second the ui is created using efl in the ambient mode, the watch template ui is identical to the normal ui, except that is shows the current time without the seconds figure user interface in the watch template ambient mode on the right creating the basic ui the ui in the watch template contains the following components the efl ui always contains a window component, which is the root component of the entire ui the application uses the conformant component as a container for other ui components the label showing the hello watch text and the current time is implemented with a label component the ui is created in the watch c file data structure a pointer to the ui components is stored in the appdata_s data structure struct appdata { /* window */ evas_object *win; /* conformant */ evas_object *conform; /* label */ evas_object *label; }; typedef struct appdata appdata_s; ui creation the app_create life-cycle callback is called when the application main loop starts, and it calls the create_base_gui function to create the ui static bool app_create int width, int height, void *data { /* define system callbacks */ appdata_s *ad = data; create_base_gui ad, width, height ; return true; } ui components the create_base_gui function creates the ui components window, conformant, and label the function receives a pointer to fill in the appdata_s structure static void create_base_gui appdata_s *ad, int width, int height { the window object of the idle screen is retrieved with the watch_app_get_elm_win function of the watch application api the watch_time_h handle is created for managing the current time, and the evas_object_resize function is used to resize the window to fit the screen int ret; watch_time_h watch_time = null; ret = watch_app_get_elm_win &ad->win ; if ret != app_error_none { dlog_print dlog_error, log_tag, "failed to get window err = %d", ret ; return; } evas_object_resize ad->win, width, height ; the conformant component is used as a container for the other ui components the component is the first object added inside the window with the elm_conformant_add function the conformant component is set as a resize object of the window by using the elm_win_resize_object_add function it means that the conformant size and position are controlled by the window component directly the evas_object_show function makes the conformant component visible ad->conform = elm_conformant_add ad->win ; evas_object_size_hint_weight_set ad->conform, evas_hint_expand, evas_hint_expand ; elm_win_resize_object_add ad->win, ad->conform ; evas_object_show ad->conform ; the label component for the text and time is added with the elm_label_add function the label is added inside the conformant component, which is the label's parent the label is resized and moved so that it is located below the first third of the screen height ad->label = elm_label_add ad->conform ; evas_object_resize ad->label, width, height / 3 ; evas_object_move ad->label, 0, height / 3 ; evas_object_show ad->label ; the watch_time_get_current_time function retrieves the current time, and the update_watch function uses the current time to set the label component content finally, the watch_time_h handle is deleted ret = watch_time_get_current_time &watch_time ; if ret != app_error_none dlog_print dlog_error, log_tag, "failed to get current time err = %d", ret ; update_watch ad, watch_time, 0 ; watch_time_delete watch_time ; when all the ui components are ready, the evas_object_show function makes the window component visible this means that the window displays everything on the screen at once evas_object_show ad->win ; } modifying existing components when the basic ui exists, you can easily modify the components in the ui by using the component-specific functions, or more general evas object functions for example, the following modification to the label component changes the text color to red ad->label = elm_label_add ad->conform ; evas_object_color_set ad->label, 255, 0, 0, 255 ; evas_object_resize ad->label, width, height / 3 ; evas_object_move ad->label, 0, height / 3 ; evas_object_show ad->label ; figure modified label component showing the current time you can update the time on the screen with the time_tick in the normal mode or ambient_tick in the ambient mode callback both callbacks contain the current time handle, and call the update_watch function to update the label content on the screen static void app_time_tick watch_time_h watch_time, void *data { appdata_s *ad = data; update_watch ad, watch_time, 0 ; } static void app_ambient_tick watch_time_h watch_time, void *data { appdata_s *ad = data; update_watch ad, watch_time, 1 ; } in the update_watch function, the watch_time_h handle is used to retrieve the current time elements hour, minute, and second with the watch_time_get_hour24 , watch_time_get_minute , and watch_time_get_second functions of the watch application api the text for the label component is defined based on whether the normal or ambient mode is used , and set with the elm_object_text_set function static bool update_watch appdata_s *ad, watch_time_h watch_time, int ambient { char watch_text[text_buf_size]; int hour24; int minute; int second; if watch_time == null return; watch_time_get_hour24 watch_time, &hour24 ; watch_time_get_minute watch_time, &minute ; watch_time_get_second watch_time, &second ; if !ambient { snprintf watch_text, text_buf_size, "<align=center>hello watch<br/>%02d %02d %02d</align>", hour24, minute, second ; } else { snprintf watch_text, text_buf_size, "<align=center>hello watch<br/>%02d %02d</align>", hour24, minute ; } elm_object_text_set ad->label, watch_text ; }
Learn Developers Podcast
docseason 2, episode 8 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 aleksander tyszka, hyun kim, dan appelquist, aaron swift, roger kibbe, sooyeon kim, eric cloninger samsung developer conference after taking a year off due to the pandemic, we recently held our annual developer conference, sdc21 this year’s conference was a virtual conference, with insightful highlight sessions and in-depth tech talks in this episode, i sit down with several samsung insiders, to recap the many highlights from this year’s show we'll chat about one ui 4, the samsung incubation program, smartthings, bixby, our partnership with google and the new watch ecosystem, samsung internet and our new podcast platform listen download this episode topics covered samsung incubation program one ui 4 samsung internet smartthings bixby developers watch ecosystem samsung podcast platform 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 pow!, the samsung developers podcasts, 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 two, episode eight after taking a year off due to the pandemic, we recently held our annual developer conference sdc21 this year's conference was a virtual conference with insightful highlight sessions in in depth tech talks in this episode, i sit down with several samsung insiders to recap some of the great moments from this year's show we'll chat about one ui 4, the samsung incubation program, smartthings, the new watch ecosystem, samsung internet and a new podcast platform enjoy so at sdc21, one of the most interesting talk sessions that i watched was the kafir innovator session where they talked about the samsung incubation program and joining me on the podcast is someone who works closely with that incubation program, alec tyszka, who's a manager technology strategy and partnerships at samsung yeah, welcome to the podcast hey, tony, how are you doing? well, let's start with what is the samsung incubation program? aleksander tyszka 01 20 sure so samsung innovation program is an incubation program that we've launched already in europe a few years back, and that we've expanded this year in the us the program itself has two main goals is one we want our business unit so you know, different groups at samsung that work on digital appliances, tvs, smartphones, wearables, we want to give them a way to do very sort of rapid prototyping to quickly develop new products and services but very highly innovative ones things that weren't organically be created if we just did our everyday work the other one is to also be able to work with the labs that samsung have done work on, though, on long term projects, we want to have sort of all the brands that that leverage all the brands we have at samsung to create these, these this long-term vision that we have about what are the services that people are going to use? what are the products that people are going to need, and try to find a way to bring these products and services to life? tony morelan 02 22 yeah, so i saw, you know, in that session where they, you know, talked about that, that need to innovate in some of those technologies that came out of those partnerships, where you know, like the health sensors with wearables, z fold, things like that, it's pretty interesting to think that those technologies came out of those partnership collaborations aleksander tyszka 02 41 yeah, i think when we start working with cutting edge technology, and you mentioned the z fold, especially some technologies i've been that have been developed internally at samsung, for flexible and foldable screens does are quite unique, right? there's only a handful of company that that make them in the world and then if you talk of, of the scale, by which we work with these, we don't make five foldable phones, right, we make 10s of millions so sure what when you work at this scale, with those sort of cutting-edge bleeding edge technology, it just takes a lot, a lot of efforts to bring them to life and samsung alone can't really do it, we need to find partners, and we need to work with them and those are typically startups and all that all sort of the people that work around startups, incubators, accelerators, venture capitalist industry experts, in we need to find the solutions to improve the product and bring these products to life tony morelan 03 34 yeah, and i'm sure that, you know, having that collaboration with those, those innovators really help you like think ahead, thinking to the future, you know, where do you need to go? where do you need to focus your energy? so it's great that there is this program to allow samsung to work with these, these innovators so tell me what are some of the details of the of the program aleksander tyszka 03 54 so the program itself is a six-month long program, we get we'll provide some funding stun company, anywhere from 20 to 100k, depending on what the companies do, if it's hardware, a software, there's no string attached with this funding, we don't take any equity and like some of the big household names like y combinator is 500 startups and then we provide a lot of mentoring, mostly technical mentoring from our engineers and our labs sure and the idea is just to help them build a prototype help them showcase a demo to our executive immediately after the program after six months, two years, two outcomes we're really looking for and then we'll qualify as successful outcomes is either investment or commercialization meaning we'll work with the companies will leverage our solution to build a product tony morelan 04 41 ah, that's great so in the call for innovator session, what was the key highlight the key takeaway from that session? aleksander tyszka 04 47 sure the key highlight for us is really that we need partners we want to be part of the ecosystem and we want to give back that ecosystem you know, startups are a major part of that ecosystem they're very forward looking we want to, we want to leverage their ideas, and we want to contribute positively to them want to help them and we want to be able to connect with the entire ecosystem behind the startups, the universities, the vcs, incubators, we want to work with all these people that's the main takeaway is samsung wants to remain, you know, very innovative, but we want to do it tony morelan 05 22 with partners you know, my takeaway from that session was hearing that success story fibricheck, where they created that on device, ecg sensing, that would help detect irregular and rapid heart rate using ai in our in our galaxy watch and seeing that, you know, it wasn't just that we provided funding, but it was that collaboration where you know, where we helped build the medical grade application, we, you know, helped with the regulatory approval, but then also learning that that we helped with, you know, define what their business model was in their in their go to market strategy that was really neat to see that that success story that was shared aleksander tyszka 06 02 yeah, i think for especially when companies in the health space, right, we did that, that's a pretty fragmented space, right? there's a lot of device manufacturers in many different countries that have their own sort of regulatory constraints by working with these types of companies, we provide a very sort of great way, a great go to market strategy for them, it's sort of built in, it's like, here's our wearables, we sell, you know, 10s of millions of them every year and they're very standard, they're easy to integrate, and well will support older go to market, going through retail stores, and those sort of things i mean, it makes it easier for the company right to quickly grow their company and for help, specifically, that fear check is such a great example of the sort of things we're trying to achieve, right and there's a ton more we can do at that space, people are talking about noninvasive, continuous glucose monitoring, maybe hydration as well in the future, and we want to find a company building these features and try to work with them tony morelan 07 01 yeah, and, you know, just at large, we've got this enormous ecosystem, you know, with our devices, you know, with galaxy store smartthings, bixby and there's just so many areas that we can be involved with aleksander tyszka 07 11 yeah, the ecosystem we provide is it's huge and it's sometimes it's hard for us to prioritize which companies we want to bring in into that ecosystem, right but going through a program like samsung's incubation program, were able to quickly filter for the best partners and focus our efforts, our efforts, sorry, on the ones that were most contribute to that ecosystem tony morelan 07 32 so it was great to hear you know, all about the samsung incubation program, what is the best way for people to connect with your team? aleksander tyszka 07 41 so we will have a website up and running pretty soon until then you can email us at info jump@samsung com tony morelan 07 49 so there were a lot of great sessions at sdc21 what were some of the favorite sessions that you saw that developers should check out? aleksander tyszka 07 56 yeah, i think the first one i have in mind is the one on the foldable device, i have a full device myself, i really, really like it, i get a lot of comment when people see it and then when they know and looking at stuff with it, there's basically different modes, right? you can you can use the front screen and use it like a regular device but the second you fold it, like a 45-degree angle, you want the app to act differently with the application so a good example of that is what if it became sort of like a gameboy where you have your screen on one on one ends? and bottom part of your controllers? yeah and there's a lot more use case like that what about video conferencing tool where you can see other people in the top screen in the bottom screen is a whiteboard where people can collaborate so i think there's a lot of use cases that can develop and we haven't even begun sort of scratching the surface of what can be devops so i look forward to see more developers think about that start developing around that and see what they can come up with tony morelan 08 49 excellent that's great hey, alec, i really appreciate you coming on the podcast today it was it was wonderful to learn much more about what you guys are doing at the samsung incubation program aleksander tyszka 08 58 oh, thank you very much for having me tony was a pleasure excellent thanks tony morelan 09 01 so one ui four was one of the biggest announcements we made at sdc and i'm excited to have on the podcast, head of the core ux group for samsung mobile, he and kim hyun kim 09 12 hi, i'm leon kim, and for inviting me and it's very exciting to be joining podcast tony morelan 09 19 so when you why is the user interface installed on samsung devices and was originally released back in 2019 for people who are listening to the podcast that might not be familiar with the details of one ui? can you give us a brief overview? hyun kim 09 32 oh, sure one ui means entire software experience that galaxy devices are delivering to our users, meaning it actually includes productivity experience and watching videos and privacy experience, onboarding experience and all different services and apps and all that our customer can enjoy from galaxy devices tony morelan 09 56 you gave a highlight session at sdc on the soon to be released one ui four that was really insightful can you share some of the key takeaways from that session? hyun kim 10 06 sure ever since we launched the one ui, we've been emphasized our users to be able to focus on what matters at each moment so focus is one of the highlighted experience that we want to enhance, as well and when you're a 4 0 on top of it, we also want to deliver the comfort experience as well especially these days, pandemic gives our users screen for t, meaning the screen time is increasing and the number of apps that people are juggling, and for period of time that they are looking at the screen is increasing and then people are having eye fatigue and we actually really need to deliver more comfortable experience for their eyes and for their peace of mind so we took care of all those aspects when we design on ui four so we took out visual lewis's as much as possible, we took out the number of colors, we took out the number of different font sizes, minimize the visual noises, so that user can focus on and consume the important content and third test that they think it matters at the moment very comfortably also, we allow extra diem feature, when user see the screen went dark, we want their eyes to be more comfortable so we collaborate with google make the screen even darker than the darkest level right now and we believe that would be more comfortable with those new features and new design tony morelan 11 56 yeah, no, that's great and i loved hearing about the natural interactions, these intuitive interactions that are being developed into one uio 4 talk about that hyun kim 12 05 recently, people are juggling more number of apps, and they are facing the more number of features and they're consuming more amount of content, meaning we need to provide very simple ui, ui needs to be higher level of intuitiveness so we wanted to put more gesture on the content itself so that user can feel they manipulate and control content itself without looking at ui component so then, non-visual component should help users to feel the reaction when user touch the screen so we put motions, visuals and physical feedback harmonize together, so that when user touch the content and move the content and drag and drop the content, we want them to feel they are moving the real physical object to one place to another tony morelan 13 08 yeah, and those vibrations, those are called haptics, correct haptics, hyun kim 13 11 right? every version of you on ui, we enhance the haptics and this year, the direction of enhancement of haptic feedback is not only just adding a right bit back in the right place, but also, we add the haptic feedback with motion and visuals together to create a feeling of natural interaction in the physical world tony morelan 13 35 yeah, so i know that that that combination of sound animation and haptics will definitely provide for some very, very real-life device interactions talk a bit about privacy, because i know that privacy was mentioned in your session, what are some of the improvements related around privacy? hyun kim 13 53 basically, what we believe is transparency is very important so providing peace of mind, for our customer, about the privacy, the basically transparency is really important the first one is we're showing all the apps list that are using user's personal data so the user can see which apps are using which data and then user can easily access the individual apps permission, turning on and off also, on offered right corner of the device the screen is showing when camera or mic is on then icon is displayed, so that user can clearly recognize okay, camera is on mic is on and if it's not fair, then you can feel safe okay, nobody's listening or watching tony morelan 14 47 yeah, that's, that's great so coming from one ui three, what are some of the biggest improvements that we're now going to see in one ui for hyun kim 14 55 improvement wise as a new experience is self-expression, the more we research customers, the more we're sure that they're expressing themselves in many different ways and have any fun ways and they want to express their emotions and thoughts, and creativities and their identities and themselves, as they are in many different places in our galaxy one ui for we want them to enjoy expressing themselves for instance, we're launching a new tool for them to create a fun emoji pair animation for them to create their own content to express their emotions but sometimes one emoji isn't just enough for them to express their rich emotions people can choose two different images to put together and put animation to bring the combo to life and then there are chosen to emoji can be animated and delivered to their friends and family via messenger and it'll be very fun content, like exploding head yeah, you can create your own content there are many, many fun, any major that we're providing also, there are presets so we believe people will enjoy this in samsung keyboard when they communicate each other and they will express their emotion in a very fun way also, we enhance photo editor a lot so that people can express their thoughts and creativity when they picture and edit it and share every year we've been enhancing photo editor video earlier about this year, we redesigned editors so that user can see this very seamless and easy, simple, intuitive editor ux tony morelan 16 54 and i loved when you spoke about extracting wallpaper colors to be used throughout the ui experience hyun kim 17 00 oh, yeah, that's, that's another very fun feature, except for expression isn't just about what you send out self-expression is about your styles, you can style your phone, you can extract the color from your wallpaper, you also can pick your wallpaper from your gallery so you can choose whatever your favorite pictures from your gallery and put your wallpaper and then we're providing four different color palette that can apply to your one ui and you can choose one of the four options, then your ui color will be changed and color schemes will be different or depending on what you're choosing and this is a little different than other like theming services because when your eyes original usability and identity are still there but the color keeping the readability usability, the only the color is going to be changing yeah and you can still enjoy the benefit of one ui with only the color that you choose from the wallpaper tony morelan 18 12 yeah, in you get that single experience across all platforms, meaning you know all of your devices, whether it's your phone, your tablet, your watch galaxy book, tell me a little bit more about that cross-platform experience, hyun kim 18 24 we have been putting effort, the device eco system experience this year, we launched the wherewith for when you watch and more than ever, we put the best seamless experience between galaxy book galaxy watch, and flip and folder and phone and tablet and we also launched enhanced version of quick share the experience for sending receiving files between devices, click share allows users to send and receive any type of files to your friends who has galaxy and to your devices and receive as well quickly if the devices are around you tony morelan 19 14 yeah, that's great so tell me when will when ui for be available on different devices hyun kim 19 21 we're really excited to be releasing one ui four update before the end of the year tony morelan 19 26 and to upgrade is it as simple as going into your menu settings, your software, update menu settings and just selecting the upgrade? hyun kim 19 35 yeah, you can update it go to settings and software update tony morelan 19 39 excellent so for developers that want to learn more about when ui for what is the best way, hyun kim 19 45 you can go to websites like www dot developer at samsung com/one-ui tony morelan 19 56 what other sessions at sdc would you suggest that developers checkout? hyun kim 19 59 sure, there are many, many exciting helpful sessions but one other person that i want to recommend is one of the highlights session for the title was what's new in foldable and they're talking about multitasking capabilities and flex mode to help developers optimize their own apps and optimizing web pages supporting flex mode by using the web share device posture api tony morelan 20 25 yeah, yeah and there was also there was a tech talk session that i liked, called one ui designing a more intuitive, approachable experience that was by jung woo, you that was another great, great session hyun kim 20 36 yeah, he's actually a member in my group and he has been putting a huge amount of effort to prepare that session and i know the content is very fun and exciting tony morelan 20 48 well, thanks for joining me on the podcast again it was wonderful to chat with you and about the upcoming release of one ui for sure thank hyun kim 20 55 you thanks thanks for having me here tony morelan 20 58 all right next on the podcast is someone very familiar with the show who i've had on the podcast several times now, dan, apple quest from samsung internet dan appelquist 21 06 hi, tony it's great to be back on the podcast tony morelan 21 10 excellent so dan is the director of developer advocacy for samsung internet we did an episode last year and actually did another episode earlier this year so be sure to go check out those to learn a ton about samsung internet, and what dan's team's doing but for those that might not be familiar with samsung internet, can you tell us what is samsung internet? dan appelquist 21 28 sure i'm leading the developer advocacy group of samsung internet, our group is based in in the uk, actually and we're kind of an international team what is samsung internet? samsung internet is samsung's mobile browser for android phones it's also available for any android phone, but it is shipped on samsung phones it's the purple planet you know, if you're if you're familiar with your normal samsung icon, set your one ui concept that's us that's the purple planet we also just launched a version for galaxy watch, which is very cool that's hot off the press news right now so if you've got a one of the latest galaxy watches, you can also download samsung internet for galaxy watch it's based on chromium, the chromium project, which is the same open source project that google chrome is based off of, a lot of other browsers are based on chromium however, samsung is also a major contributor into the chromium project into the chromium open source projects so we're not just taking the chromium browser and slapping our own ui on it that we're actually contributing in to chromium and we do an awful lot to build our own features and technologies into samsung internet so in, in particular, we focus on privacy so we protect your privacy with features like safe browsing, our own in house smart anti tracking technology, and the ability to install third party blockers, ad blockers, tracking blockers, that kind of thing so those are the kinds of things that we're doing to kind of protect people as they use the web and that's an that's such a key important role that browsers have we're also a great platform first progressive web apps if you have attended any of our previous sessions at previous sdcs you'll know that we're big fans of progressive web apps just briefly, a progressive web app is a web application that can be installed onto your device and looks to the user as if it is a native application but it's actually running inside the browser so good example is twitter has a progressive web app pwa many other web sites and web properties have progressive web app versions of their other applications and in fact, we just participated in a separate conference, which just ran recently in collaboration with microsoft and google, and that had a complete focus on pwa s and if you're interested in that, it's all streamable from pwa summit org tony morelan 24 06 awesome so there were some great sessions at sec related to samsung at both when it came to foldables and with extensions, can you tell me what were some of the highlights for you? sure dan appelquist 24 16 so we're really, really excited to be able to speak at sdc this year about our work with foldables so as far as foldables go, the exciting news that we're able to talk about is that we're launching an experimental api called the device posture api it's being developed in the world wide web consortium in the w three c as a proposed web standard with intel and microsoft as partners this api is launched behind a flag right now, tony morelan 24 47 what does that mean dan appelquist 24 48 behind a flag? it means you have to you have to activate it, in order to make it work it's not going to work out of the box and that's because it is experimental the reason it's like that is because we want people to experiment with this api sure, it may change, right and usually when api's are in this kind of place where are in a phase of their development where they might change their launched behind a flag, so that developers get a chance to play with it, play with it feedback into the process and by the way, laura, for my team who gave the talk on device posture api at sdc is also the person participating in the standards committee, the w three c devices and sensors working group and contributing that into that work all of that is happening on github so there's absolutely an opportunity for developers to get engaged and all of that information is in is in laura's talk as well tony morelan 25 45 oh, yeah, that's great yeah, i had laura on the podcast earlier this year that she would she was an excellent guest dan appelquist 25 50 she's, she's great she's really good we've also been working with some partners to get their feedback and to get some early implementations out there so that we can get some experience with this in particular, we're working with youtube and we're working with a company called whereby, which is a video conferencing company based out of norway okay so these are good examples of where you might want to change the ui of your web application when the user folds the device and that's basically the key element here that we're talking about and that's also why when we're talking about this new api, we're talking about it in the context of responsive design yeah, and that was a lot of the focus of laura's talk as well responsive design, meaning that the application itself responds to changes in the screen size in the orientation, that kind of thing so you are responding and being i'm adapting the ui to the to the user's needs tony morelan 26 52 yeah and i love the interactive code lab, the laura had been involved with there dan appelquist 26 58 that's right and, and that, again, can allow you to kind of sink your teeth into this api, and, you know, with code examples, and, and real tutorial about how to get up and running with this so yeah, so again, very excited to be able to do this in the virtual sdc environment tony morelan 27 20 yeah excellent so next, let's talk about the extensions, the session that that was that was given, right tell me about that so dan appelquist 27 27 yeah, my colleague cyclon gave a talk on the current state of our extensions api so we launched a third-party extensions api this year and we opened that up to a wider developer community by the way, we're on one of very few mobile browsers that actually allow third party extensions and we also have within the browser itself, you can go to the extensions menu, and you can find a list of the of the kinds of approved extensions that we have excellent but those are also they're downloadable from the galaxy store but once installed, they become part of the browser, right? so the extensions add new features to the browser right so just to highlight two of the extensions that are currently available for installation, we have the translator extension, which allows you to translate web pages from one language to another that's actually developed in house really, yeah, very, very cool, very cool stuff and we recently launched an extension from the web monetization company coil that is, that's a technology that can make anonymous micro transactions micro payments to websites that you browse from a cryptocurrency wallet and this is, this is a kind of approach that is seen by some people as a replacement for pervasive tracking networks that currently power advertising on the web one way of moving beyond that is to pay websites directly for the time that you spend on them so this is a really interesting idea we've been tracking this for a while and talking to people at coyle, who are also participants in w three, c, and a lot of the other kind of developer activities that were that we're involved in as well so we're very excited to be able to launch this extension it's their extension, but it's launched in the in the samsung browser, and you can install it and then you can start kind of paying websites through coil for the time that you spend on them it only supports websites that that are subscribed to the coil system, right so it's exactly yeah, it's early days on it, but it's something that's very exciting tony morelan 29 34 yeah, yeah interesting concept, sort of like the pay as you go yeah, format dan appelquist 29 38 yeah yeah you know, i don't work for coyle, right but one of the things i think is interesting about it is that those transactions are anonymous so it's very privacy preserving, and it fits together with our philosophy of trying to enhance and protect user privacy tony morelan 29 53 yeah, no, i know privacy is a big thing for you guys over samsung internet yeah, definitely so are there any other sessions at sdc21, that developers should be sure to check out dan appelquist 30 03 well, i would suggest checking out the session called what's new and foldables first of all, which is a kind of highlight session, give it gives a high-level overview and gives a lot of really good context about flex mode, what flex mode is, or what we're referring to as flex mode, which is, again, adapting the user experience of any application to the conditions of the folding device and how that's so important from a user experience standpoint and my colleague dongbu actually gives a brief intro in that session to the device postures api, which leads into laura's longer, more detailed talk got it, and he gives a demo a little demo of how that works as well, which is, which is very cool tony morelan 30 49 yeah, i love learning about all the multitasking capabilities with foldables that was that was great to hear yeah so if developers want to learn more about samsung internet, what is the best way? dan appelquist 31 00 well, you can visit our page on developer samsung com/internet that's got links to our blog, and we blog on medium as well but really, if you go to developer samsung com/internet you can find links there to all the places on the web where, we're present you can also follow us at samsung internet on twitter excellent, where you can always find out what we're doing and you know, we try to keep that up to date with news about samsung internet, but also just the developer activities that we're participating in the standards activities that we're participating in our team manages that twitter handle directly so it's a direct line to our team and our dms are open so if you do have questions about samsung internet, you can feel free to dm us they're tony morelan 31 50 awesome awesome hey, dan, thanks very much for being on the podcast and giving us an insight into the highlights with samsung internet and sdc21 dan appelquist 31 59 thank you, tony it's always a pleasure awesome thanks, tony morelan 32 01 dan there were some great tech talks at sdc related to smart things and lots of great new innovations for shared i'm excited to have aaron swift on the podcast director of customer and partner strategy at smart thanks hey, aaron aaron swift 32 16 hey, tony, how are you doing? tony morelan 32 18 doing just fine, lots of tech talks and even a highlight session for smart things so let's start with the session smart things find from lost to found what were some of the key points with this session aaron swift 32 28 smartthings find launched last year as a service to enable customers to locate galaxy devices such as phones, watches earbuds, your s pen pro, like whatever you might leave on the bus or the train accidentally it comprises more than 100 million find nodes and over 230,000 devices are located every day tony morelan 32 49 so a find no just to clarify, find note is that like another device that's this part of this network, aaron swift 32 55 yeah, like a phone or a tablet, a galaxy phone or a galaxy tablet, running the smartthings app with smartthings fine and as you saw, philip and moon did a great presentation talking about other hardware oems can now integrate their products with smart things fine so we have today our first smart tag device which you could attach to your keys that's available on the market now for everyone but anyone who wants to can start building their own tag devices or integrating their hardware products into the final tony morelan 33 29 yeah, i think that opening up the smartthings five network to the outside hardware oems is going to be huge and will absolutely expand the network tremendously aaron swift 33 39 yeah and they made a set of tools there's this fine device sdk and the test suites they make it really easy for any device manufacturer, whether it's ble, or ultra-wideband, to start integrating their devices if you're using the nordic dialogue or nxp chipset yeah, it's really easy to add the fine sdk into your device for certification tony morelan 34 01 that's going to be that's going to be great there was a session called smart things build and tell me what were some of the highlights for you in that session aaron swift 34 09 that session was led by jenny brand meyer and andy sayer are director of product management and director of engineering okay, and they talked about extending our platform, which historically has been very end user focus, you are buying samsung tvs and appliances for your home and now we're extending the platform for multifamily builders and apartment managers to put in the new apartment buildings okay, there's a new toolset with that, that will allow an installer to go set up hundreds of apartments and hundreds of refrigerators and dishwashers and washing machines and apartments really tony morelan 34 46 quickly so this is giving them the ability to sort of monitor the like what's happening with the with these devices if there's you know, you've got some sort of fault that happens within the system, they can detect that aaron swift 34 58 yeah, so property managers we'll be able to integrate your monitor their fleet of samsung appliances from their property management tool are there any tony morelan 35 08 apis or sdks? related to this? aaron swift 35 12 yeah, so one of the cool things about this new offering is there's a dedicated set of tools and api and sdk set to make it easy for property management software companies, like in trata, to come integrate and provide fleet management for all of the appliances tony morelan 35 28 the one thing that comes to mind, though, when you mentioned something about, you know, giving property managers, the ability to sort of monitor all these devices that are in these homes, comes down to privacy, what's in place related to privacy, when you're talking about something like this aaron swift 35 43 user privacy is front of mind to us, whether you are a home owner or a renter and so what we've done is we put together a new set of permissions on the platform, so that property managers only have the minimum access to data coming off of the appliance is needed to troubleshoot for failures got it if there happens to be something wrong, the property managers will be able to pull some information off of the appliances to troubleshoot the air, but they cannot tell that you're getting your 11pm glass of milk before you go to bed tony morelan 36 18 yeah, the last thing i need is my property manager knowing that i was in my freezer last night going for little ice cream bins aaron swift 36 24 right, right and so we've made sure that users are front of mind in this, that's, that's great, and that their privacy is protected tony morelan 36 31 yeah, that's super important there was also a session called smartthings edge and i thought this was really interesting this is where the execution is done locally without reliance on the cloud tell me more about that session aaron swift 36 44 in summer 2020, we announced major changes coming to our platform, this session ended up being such a long session with so many great speakers, because we are really excited to be talking about those changes sure a couple of my favorite ones are from zack and vlad talking about smart things edge before, when you use smart things to turn on a light with a motion sensor, your motion sensor would detect motion in your home, it would send that motion event to your hub up to the cloud, the cloud would tell you to run that automation, send the event back down to the hub to tell the light ball to turn on sure and that happened quickly but it's not quite as natural as still being able to go turn on the light or the local motion sensor in your home yeah so what smartthings edge does is it took the device events and the automation event and was able to start processing them locally yeah so now when you use that motion sensor to turn on a light motion is detected that goes to the hub, the automation is processed on the hub, and sent back over to the light to turn off without ever having to reach out to the cloud to confirm that event tony morelan 37 56 like what would be a device where you needed like instant, instant, you know, reaction time between the hub and the and the device aaron swift 38 05 so all zigbee and z wave and wi fi devices have the ability to run locally on the hub now with automations okay, so one of the most natural feeling ones is that example i gave with the light you want light to turn on right away? yeah similarly, if you want to be walking into a room and having the temperatures change, or having the vents open and close, the thermostat adjusts those are great use cases for local automations as well okay, what we're doing now is we're investing more features into the rules api to make more automations run locally got it so over time, you'll see more and more complex automations be able to run locally on your hub tony morelan 38 43 for edge devices is it a closed ecosystem? or is it can anyone build for edge? aaron swift 38 49 great question so we've released a collection of edge devices on our smartthings developers github repository that anyone can reference and then any hardware oem can add their fingerprint or their devices to that repository anyone can build their own edge devices if they want to tony morelan 39 10 wow, that's, that's, that's great so i saw there was a highlight session building the future smart home today that talked about the new matter standard can you tell me what was shared in that in that session? aaron swift 39 21 matter is the foundation for smart homes of the future? over 200 companies have come together to develop a standard that is going to be the basis for smart home devices to integrate in the future tony morelan 39 34 would you say that like today the is the ecosystem? is it pretty fragmented? aaron swift 39 39 correct there are all sorts of different smart home standards from all sorts of different companies out there, and each one operates just a little bit different from each other, which makes it hard for device manufacturers to integrate with each platform mater is going to take that fragmentation and create a common application language and data model that will apply across all the data from smartphone platforms, regardless of tony morelan 40 02 yeah, i think that's going to be great, especially for consumers so that they don't have to like decide between which technologies they want to, to purchase that it's all going to kind of seamlessly work together aaron swift 40 12 correct and if you buy a light bulb with the with the matter logo on it, you will know that it'll work with smart things, or any other matters supported ecosystem tony morelan 40 21 that's awesome that is super, super great to hear so you've talked a lot about all these different technologies related to smart things what's the best way for developers to learn even more about smart things? aaron swift 40 34 the best place to go for more information is developer samsung com/smartthings from there you can learn more about building edge devices or cloud devices or stay tuned for future updates on our investment in matter you know all of the sdc sessions on smartthings were great are there any other sessions that you would recommend developers checkout i'm personally a bit of a tv nerd so i'm really excited for redefining the experience of watching tv and what's new in samsung smart tv services tony morelan 41 04 yeah, no, i know, a bunch of the people over the tv plus and it's a great group and doing a lot of amazing things over there a lot of great content coming out that's exciting excellent hey, aaron, i really appreciate you coming on the podcast it was great chatting with you and learning a bit more about smart things and looking forward to chatting with you again in the in the near future aaron swift 41 22 great thanks, tony tony morelan 41 26 so next, i'd like to welcome roger kibbe to the podcast senior developer evangelist for bixby samsung's intelligent assistant technology welcome, roger roger kibbe 41 35 well, thanks you and i talked gosh, was probably over a year ago yeah, actually on the podcast so i'm excited to be back and talk to you about what's new and what we just saw at sdc yeah tony morelan 41 47 so it was i think about a year and a half ago safe to say that a lots happened since then so tell me what is the latest with bixby developers? roger kibbe 41 55 yeah, so we just announced several things that sdc are highlighted some things that changed first thing i want to talk about is some of the ways we've made it easier to develop for bixby and these weren't new announcements, but kind of highlighting some of the changes we've made over the past year or so and so a lot of these are focusing on improving the developer experience, one of the things we did is we created a new training ui so use the training ui to create natural language training and one of the great challenges and voice experiences is to get your natural language training, working well after all, it's the way users interact with all the business logic that you've written so that's a great challenge and so we built a new ui to make that more intuitive and hopefully easier and simpler to build great experiences we also built something we call the component gallery because bixby is on multimodal devices, there is a ui for bixby experience and the component gallery is a wysiwyg component editor so i'm writing some code for what we call bixby views, i can pop up the component gallery, configure something graphically, and it just dumps the code right in so it just makes it easier and then finally, we made it super simple to load a capsule directly from github so we have a bunch of sample code on github and now directly in the studio you can load that sample code from github without having to go and clone it or download it and go through all the previous hassles he had to do so just an example of some of the improvements we made to make it frankly, just easier if your day to day life as a developer developing something for bixby tony morelan 43 32 awesome so let me ask on the end, that component gallery actually was watching one of the sdc sessions on that is pretty cool so just to clarify, this is where like on the device when you give a voice prompt, and the device bixby reacts to that you can then have graphic images appearing on the device is that correct? roger kibbe 43 50 yeah, yeah so you can either when you're basically whenever bixby is communicating with the user, you can actually have a graphical ui on there that's complimentary and it also could have things like buttons on it, or sliders or controls, because one of the things is all these samsung devices so you know, the phone, the watch the television, the tv, all have a ui on there so bixby is not just a voice experience, but it's really a multimodal experience so you need to build graphical ui, we built a tool to make it pretty darn easy to do so tony morelan 44 26 so i heard a bit about bixby on windows tell me tell me about this new announcement roger kibbe 44 30 yeah, so brand new so bixby is available on the galaxy book notebooks so there's the samsung's newest notebooks so bixby is right there is a command key to launch bixby can turn on hi bixby so you can talk to your windows notebook you can ask questions and you can have it control smartthings home automation, you can ask it to find files you can ask them to change windows settings so right now, you know it's focused on a fairly narrow set of things but i'm super excited about we have this brand-new device, a windows laptop, what can you do with a voice front end in front of that? and what are ways where we can make it simpler and easier for a user to use their laptop? by talking to it? to my mind? there's a lot to be discovered there yeah, what we created is kind of step one in a journey toward, you know, making voice a modality that makes it easier for us to interact with our technology, which is what it's all about yeah, exactly tony morelan 45 31 and you had mentioned smart things there was a session at sdc titled enabling intelligent voice control on your iot devices and i know in that they talked about smart things and a lot about bixby tell me, what were some of the key takeaways for you from that session? roger kibbe 45 45 yeah so we introduced something called the bixby home platform, and it's a way of interfacing what you've done a big sweet voice with some of the smart things capabilities and the best way to explain it is for me to give some examples of what you can do and so first example is i might say hi, bixby turn on the dining room lights now if i'd set up dining room lights in smart things, boom, work great today but if i hadn't set up something called dining room lights, today, bixby re prompt you? or say, i can't find dining room lights, that's not a really good user experience sure so what you can set up with the bixby home platform is a lot more smarter logics so hi, bixby turn on the dining room lights, because we can say sorry, i can't find dining room lights, but you have kitchen lights, your bedroom lights, you have den lights? which one would you like to turn on? and so then you kind of the user asked for something that it didn't understand but at a set of airing out? it's like, well, i know you wanted to turn a light on yeah, here's the lights i can turn on and so i kind of prompted the user to, you know, what's the right can you want, much like we would do, frankly, a natural conversation tony morelan 47 00 exactly if roger kibbe 47 01 you ask me something that i didn't understand, i'd probably go can you clarify that? right yeah and so and this is a little bit of adding that kind of logic there so i think that's one great example of just a quote unquote, air becoming a success sure the other thing i want to highlight, and i think this is where it gets really interesting, and frankly, pretty sexy, to me, is where you're actually taking the voice input and you're taking what the iot device, its state and what it's sensing and combining them for some intelligent response okay, so let me let me give you an example so i could say hi bixby, turn on my air purifier, yeah, buy an air purifier, boom, today would turn it on all good but now with the bixby home platform, i can set it up so when i say hi bixby turn on the air purifier, instead of instantly turning on, i can go query the air purifier and say, hey, you know, what's, what's the air quality? okay, and if air quality was moderate, or acceptable, boom, i just turn it on and the default fan speed, maybe medium is on but let's say the air quality is poor well, then when i query it back and says, oh, air quality is poor now i can say, well, you want to turn it on and the air quality is poor i'll turn it on but i'm actually going to turn on and turn the fan to high so you're getting this this feedback loop? it's really, you're getting the user what they asked for, you're getting the state of an iot device you're combining those together? yeah and then the action is just smarter to my mind, this is pretty, i say, sexy and exciting because if you think about this, this is getting into much more intelligence sure the devices know, i know what you asked for, i know the state, i'm going to take the most intelligent action based upon those two inputs and that's what bixby home platform is all about it's really a development tool that lets you build experiences, like what i was just talking about tony morelan 48 59 yeah, i absolutely love that and i loved when he said in the session, that there's they're planning to open this up to partners and also to third party devices yeah, reach is going to be huge roger kibbe 49 10 absolutely well, i mean, i think that's one of the big things with a smartthings ecosystem, right is it's not just for samsung devices, but it's for, you know, devices from dozens or hundreds of manufacturers so if i can read some information on the device, i can get that information and i can do something very logical and just make things work more intelligently isn't that what we all want from our technology? tony morelan 49 32 exactly, yeah so on that note, you know, something i saw also very interesting in that session was the bixby home studio i absolutely love the whole idea of, you know, with your mouse, you can just drag and drop it and build out, you know, these experiences, all without coding yeah, that's on bixby home studio so like that is roger kibbe 49 50 the tooling behind what the experiences that i just talked about, so that you could intuitively built out, i use that air purifier example because actually, if you look at the session, they built out that exact experience and i think except i encourage people to go take a look at that because that is a really good way to kind of understand what i'm talking about, and hopefully get you excited about, huh, wow, there's something cool that i could build as an end user experience tony morelan 50 22 yeah and the demo they gave was pretty in depth i mean, this is not just a you know, they didn't just skim over the, you know, the concept of bixby home studio, they actually went through and built it out yes, it was pretty nice so that was an awesome session but i know there were a bunch of other sessions all kind of related to, you know, smart things in bixby what were some of the other sessions that you would suggest developers to check out? roger kibbe 50 44 yeah, so i would definitely check out the two bixby sessions that we that we mentioned and as you can see, a lot of the focus is on bixby and smart things yeah so if you're a bixby developer, i would suggest you check out some of the spark thing sessions and understand that, because i think a lot of the focus of what we're looking at is, hey, how do we get home controller devices to work super, super well with voice so that and that really is a dance between what bixby is doing and what smartthings is doing, and building that together and that's what the bixby home studio is all about so understand the two sides of the equation and then you'll understand and hopefully can build some really cool tony morelan 51 27 stuff yeah, i love the collaboration that's happening between smartthings and bixby so if developers want to learn more about bixby what's the what's the best way? roger kibbe 51 37 i yeah, so first thing would be go to bixbydevelopers com and that's a homepage for everything bixby that's download the studio, where we have our documentation, and just a bunch of information the other thing is we have a pretty active youtube channel so just look for bixby developers on youtube, youtube slash bixby developers, loads and then pretty much everything we do that's new, or we introduce a new youtube video, we would definitely post that to twitter okay, so that's twitter and that's bixby developers and then i do a weekly like tech tip of the week, like a two-minute video tutorial, and that's posted to twitter as well or also facebook so you can find that on facebook and then finally, i am the host of a podcast yeah, i guess focuses on all things voice not just bixby it is called bixby developers chat you can find it in your favorite podcast player or you should be able to ask your voice assistant hi bixby play bixby developers chat, podcast or another voice assistant and all of them should be able to play it so that is another resource tony morelan 52 45 that's awesome and it's a great podcast i have listened to your to your work you do you do an excellent job from one podcaster to another roger kibbe 52 52 well, thank you that's the kind of compliment you'd like to hear because we all understand the challenges and what you need to do to make a great podcast tony morelan 53 01 guests and let me remind everyone go check out that episode we did it was in the first season with roger, you can learn a bunch more about bixby and how to get started creating voice assisted capsules roger kibbe 53 11 well, thanks, tony really appreciate it and go check out those sdc videos to get a really more in depth understanding of the things we've talked about today tony morelan 53 19 thanks, roger banks one of the biggest announcements we made this past year is our latest watches now run on a new operating system called wear os powered by samsung and joining me on the podcast today is su yong kim, one of the software engineers here at samsung that has worked closely on our new watch ecosystem hey, sam thanks for joining me on the podcast today sooyeon kim 53 38 hi, tony thanks for having me today my name is yan qin and i'm a software engineer at samsung i'm very excited today to briefly recap our sdc sessions on samsung galaxy watch and where it was powered by samsung, which we jointly built with google tony morelan 53 55 yeah so there were several sessions related to the new watch ecosystem in the unified platform what would you say are the benefits of the new wear os powered by samsung? rooyen kim 54 04 so there are many, many benefits but first, we have created a seamless and deeply connected experience across not only samsung galaxy devices, but also for wear smartwatches and android smartphones with this new unified platform, we want to expand our ecosystem bring greater scale to our developer community, and at the same time, delight consumers with a variety of choices from watches to watch faces and apps tony morelan 54 33 yeah, it's true not only this, the developer community going to expand it but also the consumer reach is going to grow even wider can you talk about the growth of the smartwatch market over the past several years? sooyeon kim 54 44 well, the smartwatch market is continuously growing and in fact, according to counterpoint research shipments grew by 35% for the first quarter of 2021 compared to last year and after samsung galaxy watch for launch before august, we once again recognize this explosive growth and will continue to work hard to meet the demands of this growing market tony morelan 55 08 yeah, i agree as smartwatches get smarter than market demand is only going to increase can you tell me what are some of the new and exciting apps available for the new wear os powered by samsung? sooyeon kim 55 19 so users can enjoy familiar samsung apps like samsung pay smartthings and bixby but now google apps are also available like google maps, and youtube music we are also partnering with a wide variety of partners and developers on apps that are available for download from the play store on your watch on your phone there is also a dedicated category for watch apps, so you can easily browse and download them directly to your watch tony morelan 55 46 yeah, i love that youtube music is now available on galaxy watch for many people are buying the watch because they like to track workouts and have an active lifestyle and listening to music has always been a key component to working out can you tell me how is the new samsung galaxy watch for taking advantage of the health and wellness market? sooyeon kim 56 03 so we want to help users keep track of their health status and fitness activities so we brought groundbreaking health features and sophisticated sensors to our new samsung galaxy watch four in selected markets users can check body composition, blood pressure, electrocardiogram skeletal muscle mass based on the tablet grade water, fat percentage, and so on tony morelan 56 26 yeah, it's absolutely amazing that with this little device on your wrist, you can now check things like skeletal muscle mass and fat percentage and can conduct an ekg test can current android developers build watch apps for the new wireless powered by samsung and publish just as they've done before sooyeon kim 56 41 so we aim to make every step of watch app development from ease of bill to market launch as simple as possible with this new unified platform so yes, android developers, you can continue to build your apps within this familiar environment using android studio with watch emulators and existing and new wear os specific api's developers can also deploy and increase exposure for their apps with the watch apps category on the google play store tony morelan 57 11 yeah, so my background is in graphic design and for me, my biggest question was, were we going to build a new tool that would allow designers to create watch faces for the new unified platform? and when they learned the answer was yes, i was really excited so what are some of the new exciting features with the new west powered by samsung watch base design tool, watch face studio, sooyeon kim 57 31 anyone can download, design and publish watch faces for whereas on the play store, you don't have to learn how to code and just need to explore the new design tool watch face studio for more details there is a separate tech talk session on this tony morelan 57 45 yeah, so that session was called introducing the new watch face studio, it was a great overview of the new tool that showed just how easy it is for someone to create a watch face without any coding what are some of the other sessions from sdc21 that watch face developers should check out? sooyeon kim 57 59 oh, first there is the highlight session watch ecosystem or new era where we cover the new samsung galaxy watch ecosystem at a high level then there are tick tock sessions, build your app and the new watch ecosystem is where we specifically talk about watch app development and run through a range of api's by inviting a special guest from google and there is also a session on a new health platform that runs on where was powered by samsung tony morelan 58 27 yeah, there were a lot of great sessions all related to wearables, and lots of new opportunities for developers what is the best way for developers to learn more about the new watch ecosystem? sooyeon kim 58 36 for developers, i encourage visiting the samsung developers and the android developer sites, you can go to developer samsung com/galaxy-watch and also developer android com/where i really appreciate you coming on to the podcast today and giving your insight in to the new watch ecosystem super exciting times thanks tony thanks for inviting me so tony morelan 58 51 i'd like to welcome back to the podcast, eric clung injure, who leads developer relations at samsung eric and i did a pre sdc podcast where we gave a little preview on what to expect it sdc21, and highlights from some of our past developer conferences if you haven't checked out that episode yet, be sure to go back in and give it a listen eric, welcome back to the podcast eric cloninger 59 22 hey, tony, that was a lot of fun you know, we've been doing conferences for years and even though sdc21 was a virtual conference, it was a lot of work and a lot of work by a lot of people at samsung, yourself included and you know, i'd like to really give a shout out to everybody who put in a lot of effort a lot of late nights and all on it so i hope that the people who listened to the keynote and the spotlight session and all the technical sessions got something out of it yeah and hopefully next year, we can do this live yeah, tony morelan 59 54 no, i'm looking forward to that but yes, it was it was a great virtual conference so i've asked eric to join me on this episode to chat about the sdc session that i gave called grow your podcast audience with samsung eric cloninger 1 00 06 earlier this year, samsung made it really easy for device users to listen to podcasts can you share? what is the new podcast platform? tony morelan 1 00 14 yeah, so the new podcast platform, it's super easy to access from your device on the home screen, all you do is swipe left, which is our minus one screen that is samsung free, which is basically free entertainment from samsung all in one place there's four tabs there so there's the watch tab, which is if you wanted to stream tv, there's the read tab, if you want it to read news, there's the play tab, which is playing games and then of course, there is the listen tab, which is all about listening to podcasts eric cloninger 1 00 47 so who can access all of that content with samsung free? yeah, so tony morelan 1 00 50 samsung free is available on all of our latest devices so this is basically the note devices and s series going all the way back to s nine plus all the versions of z fold in z flip right now samsung free is only available in the us but we are expanding to europe soon i've been told that by the end of the year, we will be hitting some european countries eric cloninger 1 01 12 that's great so why did we launch a new podcast service? tony morelan 1 01 15 samsung's podcast strategy is to make it easy for the millions of samsung device users to listen to their favorite podcast shows and discover new episodes quickly and easily and also it gives publishers an impactful way to reach new listeners and really expand their audience eric cloninger 1 01 31 so how do those publishers bring their shows to samsung so grab tony morelan 1 01 34 your url from your podcast rss feed, and you can find that from your podcast hosting provider, take that rss feed in go to samsung podcast com sign up for a free samsung account and all you do is fill out a short form that allows you to import your rss feed url typically, it takes less than five minutes for you to fill out that form and that quickly, your show is now available on all of the samsung free devices eric cloninger 1 02 00 so what samsung free and the podcast platform doing to help publishers get their shows discovered tony morelan 1 02 05 so our editorial team is always looking for new and exciting shows to promote every week, we feature about seven new shows on our homepage and these promotional features have been extremely valuable for publishers in fact, there was one publisher in mind recently, marty ray project chats he saw a 2,000% increase in downloads just after being featured on our homepage so that was really great to see the value in that promotion for him eric cloninger 1 02 29 yeah, that's incredible numbers there so you're the host of our podcast, the samsung developer podcast is that how you got involved with the podcast platform team? tony morelan 1 02 39 exactly they reached out to me when they were first building the service and eventually asked if i would help promote it i said, absolutely that's when they asked me to present an sdc so you can check out my session and learn much more about the new podcast platform eric cloninger 1 02 53 right so the sdc content that is on the website is available for anyone to see at any time so are there any other sessions on the sdc21 website that potential podcasters and developers should check out? tony morelan 1 03 10 yeah, well, i would say what really got me excited was seeing all of the game focus sessions that we had up there so there's one session called galaxy store games focused developer friendly that was a great session on all the new game focused improvements for both gamers and developers and there was another session called games for everyone that samsung instant plays it's another great session for game developers to learn how to bring their html5 games directly to galaxy store, making it easy for users to play games without having to download and install anything eric cloninger 1 03 42 that is an exciting new way for people who are interested in playing casual games to get into something new without having to download hundreds of megabytes of content so i think that's going to be a game changer for all of us yeah, definitely so tony, thank you for giving us some insight on the new podcast platform and also for sitting down with different people associated with sdc21 it was a fantastic virtual conference and it was great to hear about the sessions on one ui, the incubation program smart things in bixby tony morelan 1 04 11 yeah and i also like the interviews that we did on our new watch ecosystem, you know, chatting with dan again on samsung internet that was great and, of course, our new podcast platform i'd like to thank all of my guests today and to you, eric for taking a moment to chat about sdc21 eric cloninger 1 04 27 thank you very much, tony closing 1 04 30 looking to start creating for samsung download the latest tools to code your next app, or get software for designing apps without coding at all sell your apps to the world on the samsung galaxy store check out developer samsung com today and start your journey with samsung tony morelan 1 04 46 the pow! podcast is brought to you by samsung developers and produced us by tony morelan
We use cookies to improve your experience on our website and to show you relevant advertising. Manage you settings for our cookies below.
These cookies are essential as they enable you to move around the website. This category cannot be disabled.
These cookies collect information about how you use our website. for example which pages you visit most often. All information these cookies collect is used to improve how the website works.
These cookies allow our website to remember choices you make (such as your user name, language or the region your are in) and tailor the website to provide enhanced features and content for you.
These cookies gather information about your browser habits. They remember that you've visited our website and share this information with other organizations such as advertisers.
You have successfully updated your cookie preferences.