Filter
-
Content Type
-
Category
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Recommendations
Filter
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 ; }
success story design, mobile, galaxy watch, marketplace
blogas we continue to recognize the best of galaxy store awards, we now feature x9 studio, winner of best indie themes designer. john shih, principal at x9 studio, shares his journey from industrial designer to themes designer. learn how he made the transition, the universal elements of design, and tips for those interested in taking a similar path. how did you get into designing themes? i’m an industrial design consultant who helps companies developing new consumer products and physical products, such as toys, consumer electronics, medical equipment, etc. i think that separates me from most theme developers who are coming from a graphic design background of sorts. i discovered the galaxy themes program while producing my first watch face app in late 2018 and jumped on the opportunity to be a part of the themes early access program. how did you make the transition from industrial designer to a themes designer? in 2013, i was in the process of preparing to launch a traditional wristwatch company via kickstarter.com. but i realized that market would soon be replaced by smartwatches, so i shelved it and started learning android app development in my spare time. a few years later, i investigated wearable platforms and noticed samsung's smartwatch platform was more developed than google’s. then i bought a galaxy watch and discovered galaxy watch designer and galaxy themes studio tools which led me to become a samsung developer. how has being an industrial designer helped you in designing software apps? apps such as galaxy themes and watch faces are basically virtual products in digital form. while the process of designing physical products is completely different than developing apps, design fundamentals such as color theory, contrast, proportion, and many other aspects are universal. i must point out one unique strength of industrial design that can apply to designing interfaces: the ability to conceptualize and execute designs in three dimensions. traditional graphic design deals mostly with two dimensions. when designing themes, what is the most important ux consideration in terms of design? a well-designed theme involves arranging all of its elements in an elegant and logical manner that produces a seamless interaction between the user and mobile phone. elegant layout and logical layout are often contradicting each other. for example, scientific instrument panels in real-life are often boring but very logical for their easy-to-read purpose. while the scientific instrument panels in movies are visually pleasing, they are typically not so easy to read. for designing themes, the most important ux consideration is usability. well-designed themes encompass a balanced dance between visually pleasing elements and logical layout. you were awarded best indie themes designer, however you got started as a galaxy watch designer. yes, developing a watch face is not only more related to industrial design than developing themes, but it’s also what i intended to do back in 2013. as a designer do you use a similar process when designing themes and watch faces? usability is universal, it’s a blueprint for successful design in both themes and watch faces. however, the two have very different usages. watch faces are meant to be used in a very short duration like a few seconds, while interaction with mobile phones are much longer. the design approach for the two are quite different as well. what is the biggest technical/design hurdle when designing a watch face? i would say it’s the physical screen size, there’s only so much information you can put in a 360x360 pixel area before the watch face becomes overloaded with clusters of information. what is the biggest technical/design hurdle when designing a theme? unlike watch faces, which consist of one or two pages at the most, phones have tens of pages. the same pages may have different elements depending on os versions and phone models. the biggest challenge designing themes for me is familiarizing myself with the overall layout of each os version. staying abreast of the most popular samsung phone models is also an ongoing process. based on your journey from industrial designer to watch face designer and now award winning themes designer, are there any tips you can give designers who are interested in taking a similar journey? human-product interaction is universal for both virtual/digital and physical products. physical products deal with ergonomics and digital/virtual products deal with interaction. but the end goal for both is the same: to create a seamless and pleasant user experience for the products. for industrial designers, watch face development is relatively the same with industrial design, so it would be a good starting point to get their feet wet. what is next for x9 studio? developing virtual goods for virtual worlds is another area that i’m looking at. but for the immediate future, i’ll continue to focus on watch faces and themes development. what advice do you have for new designers looking to create a successful theme or watch app business? for new designers who just got out of school, my advice is to continue your design education through your first job or two. learn about watch and theme app development, and make a few apps on your own spare time and see where it takes you. for seasoned designers, create some apps using galaxy watch designer and galaxy themes studio. see if it’s the right path for you. having a realistic expectation will go a long way. rome wasn’t built in a day. keep your day job while building up your app portfolio. eventually you’ll be able to work anywhere on earth where the internet reaches. how has samsung helped your business? coming from a completely different industry with very limited knowledge of app development, the samsung developer program (sdp) and fellow samsung developers have been instrumental to the success of x9 studio. the sdp website provides a wealth of learning materials, and the sdp team members provide invaluable insights for new developers like me, which are absolutely the keys to x9 studio’s growth. samsung’s developer community, like the developer forum is another valuable resource. we want to thank john for sharing his journey to becoming the best indie themes designer 2019 and the universal aspects of product and software design. be sure to check out x9 studio’s themes portfolio and download your favorite in the galaxy store. if you're reading this on a samsung device, check out the x9 studio brand page. follow us on twitter at @samsung_dev for more developer interviews as well as tips for building games, apps, and more for the galaxy store. find out more about our best of galaxy store awards.
Samsung Developers
Develop Galaxy Watch for Tizen
doccompatibility galaxy watch studio gws is currently in beta as it continues to develop, the availability of some features may change and some features may not be fully functional learn about the supported tizen os, watches, features, and java versions for galaxy watch studio informationgws gwd files created in the latest version of gws cannot be opened by older versions of gws gws files created in older versions of gws can be opened by newer versions of gws for example, gws 1 7 1 files cannot be opened in gws 1 6 2 however, gws 1 6 2 files can be opened in gws 1 7 1 supported tizen os and watches the following table shows the gws version with the tizen os and the watch types that it supports the table also shows the factory-installed tizen os on the watch on some watches, the tizen os may be upgraded watch type factory-installed tizen os version galaxy watch studio version 1 7 x - 2 0 0 1 6 x 1 5 x galaxy watch3 5 5 ✔ ✔ galaxy watch active2 4 01 ✔ ✔ galaxy watch active 4 0 ✔ ✔ galaxy watch 4 0 ✔ ✔ gear sport 3 02 ✔ ✔ ✔ gear s3 2 33 ✔4 ✔ ✔ gear fit2 pro 2 3 ✔ ✔ gear fit2 2 3 ✔ ✔ gear s2 2 3 ✔ ✔ gear s 2 2 ✔ ✔ tizen os version supported 5 5, 4 0, 3 0 4 0, 3 0, 2 3, 2 2 3 0, 2 3, 2 2 1upgradable to tizen 5 5 2upgradable to tizen 4 0 0 2 3upgradable to tizen 3 0 and 4 0 0 2 4when watch is upgraded to tizen 3 0 or higher informationwhen you upgrade or downgrade the os on your watch, you may need to regenerate your distributor certificate in order to test your watch faces on the updated watch informationfor devices using tizen 4 0 or later, by law, you must notify the user about personal information used in the watch face when the app is launched, you must allow the user an option to allow or not allow access to personal information therefore, a separate tpk file must be generated for tizen 4 0 and later and for tizen 3 and earlier galaxy watch studio provides an option to generate separate tpk files for these versions samsung suggests appending "_tw4" to the tpk file name for devices using tizen 4 0 and later and appending "_tw3" to the tpk file name for devices using tizen 3 or earlier upload one or both files to support the appropriate devices for more information, see build & uploading and faq how to upload watch faces for galaxy watch and older gear devices? supported features the following table lists features of gws and which versions support those features the table also lists the watches that do not support those features feature galaxy watch studio version unsupported watch type 2 0 0 1 8 1 1 8 0 1 7 1 1 7 0 1 6 x 1 5 3, 1 5 4 1 5 2 1 5 1 1 5 0 year tag id ℹ ✔ gear sgear s2gear fit2gear fit2 pro korean lunar calendar ℹ ✔ gear sgear s2gear fit2gear fit2 pro custom complications ℹ ✔ ✔ gear sgear s2gear fit2gear fit2 pro colored layers ℹ ✔ ✔ ✔ gear sgear s2gear fit2gear fit2 pro change properties for multiple components ℹ ✔ ✔ ✔ gear sgear s2gear fit2gear fit2 pro text formatting ℹ ✔ ✔ ✔ ✔ gear sgear s2gear fit2gear fit2 pro weather component actions ℹ ✔ ✔ ✔ ✔ gear sgear s2gear fit2gear fit2 pro component outline ℹ ✔ ✔ ✔ ✔ gear sgear s2gear fit2gear fit2 pro gyro effects for text and digital clock components ℹ ✔ ✔ ✔ ✔ gear sgear s2gear fit2gear fit2 pro run preview window ℹ ✔ ✔ ✔ ✔ ✔ gear sgear s2gear fit2gear fit2 pro here map api ℹ ✔ ✔ ✔ ✔ ✔ gear sgear s2gear fit2gear fit2 pro moon phase position tag ℹ ✔ ✔ ✔ ✔ ✔ gear sgear s2gear fit2gear fit2 pro 64-bit support for windows ℹ ✔ ✔ ✔ ✔ ✔ n/a google location api ℹ ✔ ✔ ✔ ✔ ✔ always-on display, low bit color ℹ ✔ ✔ ✔ ✔ ✔ change watch preview image ℹ ✔ ✔ ✔ ✔ ✔ ✔ tag expressions ℹ ✔ ✔ ✔ ✔ ✔ ✔ gear s run-time permissions ℹ ✔ ✔ ✔ ✔ ✔ ✔ gear sgear s2gear fit2gear fit2 pro uninstall watch faces ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ adaptable km/mile display ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ gear sgear s21 12- and 24-hour conditional modes ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ connect to mobile phone ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ openweathermap api ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ preferences ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ 4k monitor support windows only ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ n/a gyro effects ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ gear s free trial period ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ gear s import psd files ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ group layers ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ lock project files ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ always-on display, high color ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ gear s2gear s22 language fonts ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ gear sgear s21 language settings ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ gear s double-tap to change background image ℹ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ gear sgear s21 2 0 0 1 8 1 1 8 0 1 7 1 1 7 0 1 6 x 1 5 3, 1 5 4 1 5 2 1 5 1 1 5 0 1supported if the firmware has been updated to version *********pfb or later 2these watches will display the basic always-on watch face if a high color aod is configured informationwith the introduction of the galaxy watch active, the user interface for a galaxy watch must be designed to support both a device with a bezel and a device without a bezel see user interface design guidelines for galaxy wearables for more information for more information, see what's new and the release note required java versions the version of java required by galaxy watch studio gws depends on the version of gws you are installing and your operating system gws 1 6 2 or earlier for windows supports only 32-bit versions of java version 8 gws 1 7 x and later for windows and gws 1 6 x and later for macos supports 64-bit java gws version operating system java se version1 8 11 14 32-bit x86 64-bit x64 2 0 02 windows 64-bit ✔3 ✔ macos ✔4 ✔ 1 7 x and 1 8 x2 windows 64-bit ✔3 ✔ macos ✔4 ✔ 1 6 x windows 32-bit ✔3 windows 64-bit ✔3 macos ✔4 ✔ 1 5 x and earlier windows 32-bit older versions of gws may require a specific version of java please contact support for more information windows 64-bit macos 1download java se from oracle software downloads 2gws 1 7 x and later do not support a 32-bit os 3for windows systems using java 8, download the java runtime environment jre , update 250 or later 4for macos using java 8, download the java development kit jdk
tutorials uiux, galaxy watch
blogwatch faces are a special type of application that runs on the home screen of a tizen wearable watch. different watch faces have different purposes and can be interacted with in diverse ways. a watch face creates the first impression of the watch and holds value as a fashion accessory. anyone can make a watch face using galaxy watch designer (gwd).[1] however, gwd limits how many different features you can add in a watch face. on watch faces, data is displayed to the user in the form of “complications,” which show individual data points such as steps or heart rate. while gwd gives you a set of complications you can add to designs, it does not allow you to add custom complications, as the numbers of complications are fixed inside the gwd tool. with tizen studio, you can create complications that pull in data from your own custom sources or perform custom actions, such as launching a separate application or opening a settings menu. with tizen studio, you have more options than the ones gwd gives you. using tizen web/native/.net apis, developers can add a large number of functionalities on watch faces programmatically. in this article, we’ll start by developing a basic watch face using tizen web api. prerequisites you need to define your app as a watch face application through an application category in the config.xml file. to achieve that, add wearable_clock under category. watchface resources for an analog watch, we need three hands for second, minute, and hour. we also need a background image with a marked time index. the following table shows resolutions for images in our example: image width (pixels) height (pixels) background 360 360 hour hand 15 360 minute hand 16 360 second hand 16 360 implementation we need to create a element for each component, such as background, hour hand, minute hand, and second hand. <div id="container"> <div id="background"> <div id="components-main"> <div id="hand-main-hour"></div> <div id="hand-main-minute"></div> <div id="hand-main-second"></div> </div> </div> </div> we are using an image as the watch face background, so we need to set the background image by setting styles in the css file. background image: the clock time index is set on top of the background image. it could be a separate <div> element, but we assembled the clock index with the green background into one image (see figure 1). figure 1: watch face background image css #background { width: 100%; height: 100%; background-image: url("../image/watch\_bg.png"); } we also need to set styles for watch face hands separately. the app image folder holds three images, one each for the hour hand, minute hand, and second hand. then we’ll add some info to the css to adjust the position, size, and so on. the style set for the minute hand is shown below: #hand-main-minute { position: absolute; left: 172px; top: 0px; width: 16px; height: 360px; background-image: url("../image/watch\_hand\_minute.png"); background-position: center top; background-size: contain; } we need to define a function that will rotate hands by a specific angle with its element id. function rotateelement(elementid, angle) { var element = document.queryselector("#" + elementid); element.style.transform = "rotate(" + angle + "deg)"; } we also need to have the hand update every second. to do that, we’ll set an interval to call the updatetime() function every second. // update the watch hands every second setinterval(function() { updatetime(); }, 1000); we are using the getcurrentdatetime() function of tizen time api[2] to get the current time object. from this time object, we can get the hour, minute, and second. var datetime = tizen.time.getcurrentdatetime(), hour = datetime.gethours(), minute = datetime.getminutes(), second = datetime.getseconds(); now we are going to call our defined function rotateelement() for the hour, minute, and second hands. // rotate the hour/minute/second hands rotateelement("hand-main-hour", (hour + (minute / 60) + (second / 3600)) \* 30); rotateelement("hand-main-minute", (minute + second / 60) \* 6); rotateelement("hand-main-second", second \* 6); we need to set an event listener for visibilitychange to update the screen when the display turns on from the off state. // add an event listener to update the screen immediately when the device wakes up document.addeventlistener("visibilitychange", function() { if (!document.hidden) { updatetime(); } }); we also need to set an event and update the screen when the device’s time zone changes. // add eventlistener to update the screen when the time zone is changed tizen.time.settimezonechangelistener(function() { updatetime(); }); additionally, we can set an event listener for ambient mode change. in this article, we added the listener and printed a console message when the ambient mode changed. it will not change anything on the watch during ambient mode, because we haven’t updated the sample watch face for ambient mode. window.addeventlistener("ambientmodechanged", function(e) { if (e.detail.ambientmode === true) { // rendering ambient mode case console.log("ambient mode"); } else { // rendering normal case console.log("normal mode"); } }); demo a sample watch face app can be [downloaded here]https://d3unf4s5rp9dfh.cloudfront.net/sdp_blog/watchface.zip), and the final watch face is shown in figure 2. figure 2: demo watch face developed using tizen web conclusion this article demonstrates how to start developing watch face apps with tizen web api using tizen studio. we can now add more functionalities and change the watch into more than just a device that shows time. references https://developer.samsung.com/galaxy-watch/design/watch-face/complications https://developer.tizen.org/development/guides/web-application/device-settings-and-systems/time-and-date-management are you having notarization problems installing tizen studio on your mac? see installing tizen studio on the latest macos and avoiding notarization to learn how to avoid this issue.
Md. Iqbal Hossain
Develop Galaxy Watch for Tizen
doccreating your first app the flexibility of tizen is not limited to mobile devices but extends to other devices, including the galaxy watch this can be translated to developing applications that can be built using a native or a web approach whether you are a serious developer or a hobbyist, c or html5, building a tizen app can suit your programming style that can be implemented across platforms galaxy watch applications build your first galaxy watch app web | native | net follow these contents enabling you to get to know the galaxy watch application development create a helloworld sample application to see what tizen can offer create your native watch face the watch face is the main screen that the user will see every time they interact with the galaxy watch this guide is focused on native development, though, designing the watch face can be either be done native or by web manually build widget board web | native widgets act as display relevant information and actions that are shortcuts to the actual applications these can be applied onto the galaxy watch applications widgets for galaxy watch are perfect for host applications that can be easily accessed build your first companion-type application web | native | net companion-type applications mean an application model that needs data communication or interaction between an android mobile application and a galaxy watch application the communication protocol between the galaxy watch and mobile applications is called samsung accessory protocol sap web vs native vs net web application is essentially a web site stored on your device and built using web-native languages, such as html5, css, and javascript the web application uses the tizen web framework to interact with the native subsystems native application is developed using c and can access more advanced device-specific features, such as sensors, in addition to more advanced system settings and functionality tizen net enables you to build net applications with xamarin forms and the tizen net framework xamarin forms allows you to create a user interface the following figure illustrates the tizen architecture model supporting the two application types tizen architecture content build your first galaxy watch app web application native application net application create a web app project build a web apprun a web appcreate a simple ui create a native app projectbuild a native apprun a native appcreate a simple ui create a net app projectbuild a net appdeploying and running a net appenhancing net application create your watch face create a watch face app build a watch face app run a watch face app create a simple ui note galaxy watch studio formerly galaxy watch designer is a tool that can help anyone, amateur or expert, create designs that appeal to both developers and users for more information on designing and using galaxy watch studio, go to this link build native widget board create a widget project build a widget app run a widget app create a simple ui note this guide includes the basic framework of creating a widget for the galaxy watch the design guidelines can be found at the widget board build your first companion type application web application native application net application set up sdkcreate a web app projectuse the samsung accessory protocol apiinteract with the application on the android devicebuild a simple uirun a web appuse the accessory sdk in android set up sdkcreate a native app projectuse the samsung accessory protocol apiinteract with the application on the android devicebuild a simple uirun a native appuse the accessory sdk in android setup sdk setup visual studio tools for tizen installation creating a projectuse the samsung accessory protocol apiinteract with the application on the android devicebuilding your applicationdeploying and running your applicationuse the accessory sdk in android
featured mobile, design
blogdesign inspiration is all around us; however, tapping into it is another story. fortunately, there are members of the samsung developers community who’ve cracked the code and defeated ‘designer’s block.’ we connected with several watch faces/themes designers and over the next few weeks will be sharing their advice, creative processes, and sources of design inspiration. to kick off our series we’re featuring john shih from x9 studio, an industrial designer by trade turned watch faces/themes designer and 2019 best of galaxy store awards winner. as a kid, john was always interested in art and grew up surrounded by creativity - his brother is a photographer and his father an engineer. read on to learn about how he developed his design approach and how he expertly combines function and beauty. when and why did you start designing watch faces/themes? my journey started in 2013 when i was working on a project for high-end mechanical watches produced in the us using aerospace materials and manufacturing technology. during my research on the fashion watch industry, i realized smartwatches are the future and shelved the mechanical watch project. fast forward to 2018 when i got myself a samsung gear s2 and started designing watch faces for tizen os. shortly after, i stumbled upon the early samsung themes development program and jumped on the opportunity because i think themes and watch faces are a natural match. that’s how i got into developing themes. watch faces from x9 studio what does your design process look like? do you have a strict protocol or is it more free flowing? when it comes to watch face development, i treat it like i’m designing a real watch piece. i start with sketching ideas on paper or a digital drawing program, then refine the designs in a vector program like adobe illustrator for both ux and legibility tests. from there, i finalize the design in cad and render it for the watch face app. i have a similar design process for themes, although it’s less methodical than watch faces. how has your design approach evolved over time? i apply the fundamental principles of design (color theory, contrast, proportion, balance, etc.) to all my projects. these principles haven’t changed much and neither has my approach to design. i have discovered that there is a market for high quality content at a higher price point. now, i spend more time crafting better content. what was the inspiration for your most successful galaxy watch face and how did you make it a reality? inspiration can come from anywhere, at any time. as for my most successful galaxy watch face, i don’t think there was any one thing or event that triggered the idea. sometimes i sit down with a digital drawing pad, put on a pair of headphones and start doodling without any preconceptions. after hundreds of doodles, a few might trigger the light bulb and then i build on those doodles to turn them into a reality. how do you strike a balance between the vision you have for a watch face and its functionality? is this the most challenging part of the design process? i’m a firm believer that form follows function, even in digital. from the initial concept stage, i make sure functionality always comes first. in most cases, the design vision in my head is very close to the final design. however, there are some tweaks along the way due to technical limitations. the most challenging part of the design process for me is color calibration of amoled technology, because its gamma can’t be reproduced on today’s computer monitors. sometimes it takes over a hundred color corrections and tests on the actual devices to ensure the design intention is kept. what’s the one piece of advice you’d give a designer who is stuck in a creative rut? design isn’t a job for me, it’s a passion. i’m constantly thinking about it. however, like everything else in life, you need a break every now and then. my advice is to make time to do something different. before the pandemic, i would often go camping and let nature recharge me. now that we’re stuck at home a lot, i do a short meditation and then put on a pair of comfortable headphones and start doodling mindlessly. go with the flow and see where it takes you, you’ll be surprised at the outcomes. thanks to john for sharing helpful advice on the design process, staying creative and finding inspiration for galaxy watch faces or themes designs. you can learn more about john shih’s creative process in this live chat with tony morelan and you can connect with x9 studio on instagram, twitter, and facebook. designers, we hope this post helps you put your ideas into action. make sure your galaxy watch faces or themes portfolio is ready for the next submission window, which is open from february 10th to the february 23rd. stay tuned next week for the second installment in our ‘prime time design’ series featuring pedro machado from health face and follow us on twitter at @samsung_dev for our latest updates.
Develop Galaxy Watch for Tizen
doctag expression use tag expressions to create unique and awesome watch faces that change dynamically note tag expressions are not supported by samsung gear fit watches tag expressions are conditions that allow you to change the rotation, placement, and opacity of a component based on tag values watch data such as date and time, battery status, caffeine or water intake, calories burned, steps, or heart rate your watch face changes dynamically as the tag value changes for example, you can create a watch face where the object on the screen moves vertically or horizontally every second, or you can create a watch face with objects that blink at certain times watch data is represented by tag ids or tags whose range of values is shown in the following tables data tag id range hour in day [h] 0 - 23 minute in hour [m] 0 - 59 second in minute [s] 0 - 59 day of month [d] 1 - 31 month of year [m] 1 - 12 day of week [e] 1 - 7 day of year [d] 0 0 - 11 99 year [y] data tag id range battery % [ba] 0 - 100 battery charging status 0/1 [bc] 0 or 1 battery level [bl] 0 – 4 steps % [st] 0 - 100 step counts [sc] 0 - ∞ steps goal [sg] 0 - ∞ speed m/s [sp] 0 - ∞ burned calorie cal [cal] 0 - ∞ burned calorie kcal [kcal] 0 - ∞ moved distance km [md] 0 - ∞ heart rate bpm [hr] 0 - ∞ water intake [wi] 0 - ∞ caffeine intake [ci] 0 - ∞ floor [fl] 0 - ∞ moon phase position [mp] 0 – 28 you can enter a tag expression directly into the rotate, placement, and opacity properties input fields of a component tags must be enclosed in square brackets [ ] input fields that allow tag expressions have a triangular icon in the lower left corner to open a larger input window to enter complex or long formulas, click the triangle icon or double-click the input field in the script window, you can enter complex and lengthy tag expressions without truncation, and you can easily search for the tags for the data you want tag expressions support arithmetic operators, relational operators, logical operators, and ternary operators arithmetic operators arithmetic operators are basic math functions they perform a function between two values operands arithmetic operator function + addition - subtraction * multiplication / quotient of division % remainder of division the precedence of arithmetic operations follows the same precedence as mathematic operations operations inside parentheses are performed first multiplication and division arithmetic operations are performed next if there are multiple multiplication and division operations in an expression, they are performed in order, from left to right finally, addition and subtraction arithmetic operations are performed if there are multiple addition and subtraction operations in an expression, they are performed in order, from left to right examples the following examples show how to use tags and arithmetic operations in a tag expression 5 * [ba] returns battery percentage multiplied by 5 if the battery percentage is 7%, then the value returned is 35 that is, 5 * 7 = 35 [s] / 3 returns the quotient of seconds in a minute divided by 3 if the number of seconds that have passed in the minute is 7, then the value returned is 2 33 [s] % 3 returns the remainder of seconds in a minute divided by 3 if the number of seconds that have passed in the minute is 7, then the value returned is 1 3 + 5 * [ba] battery percentage is multiplied by 5, then 3 is added if the battery percentage is 7%, then the value returned is 38 multiplication is performed first because it takes precedence over addition and then 3 is added to that result 3 + 5 * 7 → 3 + 35 → 38 3 + 5 * [ba] 3 is added to 5 first, then the result is multiplied by the battery percentage if the battery percentage is 7%, then the value returned is 56 the addition operation in parentheses is performed first then the result is multiplied by the battery percentage 3 + 5 * 7 → 8 * 7 → 56 relational operators relational operators compare two values to determine which is greater, less than, or equal to each other a comparison that is true returns a value of 1 a comparison that is false returns a value of 0 zero relational operator function < less than <= less than or equal to > greater than >= greater than or equal to == equal to != not equal to examples relational operations are sometimes combined with arithmetic operations here is an example that uses only a relational operation and another example that uses both a relational operation and arithmetic operations [ba] <= 15 if the battery percentage is less than or equal to 15%, [ba] <= 15 is true and returns the value of 1 if the battery percentage is greater than 15%, [ba] <= 15 is false and returns the value of 0 zero 1000 * [hr] < 100 + 120 the operation in parentheses, the relational operation, must be performed first if the heart rate is less than 100 bpm, [hr] < 100 is true and returns the value of 1 next, multiply 1 by 1,000 and then add 120 the final value returned is 1,120 for example, if [hr] = 80 bpm 1000 * [hr] < 100 + 120 → 1000 * 80 < 100 + 120 → 1000 * 1 + 120 → 1,120 if the heart rate is greater than or equal to 100 bpm, [hr] < 100 is false and returns the value of 0 zero next, multiply 0 by 1,000 and then add 120 the final value returned is 120 for example, if [hr] = 120 bpm 1000 * [hr] < 100 + 120 → 1000 * 120 < 100 + 120 → 1000 * 0 + 120 → 120 creating a pedometer using relational operations using relational operations, let’s create a simple pedometer the pedometer displays one of two images, depending on the step percentage the [st] tag if [st] is 0%, the watch displays the image of a man standing still if [st] is 100%, the watch displays the image of a man raising his arms in victory if [st] is between 0% and 100%, nothing is displayed to display an image, set its opacity to 100 to hide an image, set its opacity to 0 display the standing man image if step percentage is equal to 0% set opacity to ** \[st\] == 0 \* 100** the operation in parentheses, a relational operation, must be resolved first when \[st\] is equal to 0%, \[st\] == 0 returns 1 the standing man image is displayed because the opacity property is set to 100 when \[st\] is not equal to 0%, \[st\] == 0 returns 0 the standing man image is not displayed because the opacity property is set to 0 if \[st\] = 0, the relational operation \[st\] == 0 returns 1 true opacity = 0 == 0 \* 100 → 1 \* 100 → 100 opacity is set to 100 and the standing man image is displayed if \[st\] > 0, the relational operation \[st\] == 0 returns 0 false opacity = \[st\] == 0 \* 100 → 0 \* 100 → 0 opacity is set to 0 and the standing man image is not displayed let’s walk through the calculation of the tag expression \[st\] == 0 \* 100 when step percentage is 0 replace \[st\] with the value, in this case 0 zero **\[st\]** == 0 \* 100 → **0** == 0 \* 100 the operation in parentheses must be performed first, so perform the relational operation in parentheses 0 == 0 because 0 is equal to 0, the relational operation returns 1 true **0 == 0** \* 100 → **1** \* 100 now, calculate 1 multiplied by 100 which results in 100 note that \* is interpreted as an arithmetic operation because only one of its operands is a relational operation \[st\] == 0 while the other is a value 100 1 \* 100 → 100 display the victorious man image if step percentage is equal to 100% set opacity to ** \[st\] == 100 \* 100** the operation in parentheses, a relational operation, must be resolved first when \[st\] is equal to 100%, \[st\] == 100 returns 1 the victorious man image is displayed because the opacity property is set to 100 when \[st\] is not equal to 100%, \[st\] == 100 returns 0 the victorious man image is not displayed because the opacity property is set to 0 if \[st\] < 100, the relational operation \[st\] == 100 returns 0 false opacity = \[st\] == 100 \* 100 → 0 \* 100 → 0 opacity is set to 0 and the victorious man image is not displayed if \[st\] = 100, the relational operation \[st\] == 100 returns 1 true opacity = 100 == 100 \* 100 → 1 \* 100 → 100 opacity is set to 100 and the victorious man image is displayed let’s walk through the calculation of the tag expression \[st\] == 100 \*100 when step percentage is 0 replace \[st\] with the value, in this case 0 **\[st\]** == 100 \* 100 → **0** == 100 \* 100 the operation in parentheses must be resolved first, so resolve the relational operation in parentheses 0 == 100 because 0 does not equal 100, the relational operation returns 0 false **100 == 100** \* 100 → **0** \* 100 now, calculate 0 multiplied by 100 which results in 0 note that \* is interpreted as an arithmetic operation because only one of its operands is a relational operation \[st\] == 100 while the other is a value 100 0 \* 100 → 0 logical operators logical operators combine the results of two or more relational operations and returns a value of 1 true or 0 false tag expressions support two types of logical operations and and or and – represented by an asterisk * both relational operations must be true in order for the and logical operator to return a value of 1 true otherwise, the return value is 0 false note that an asterisk also represents the multiplication arithmetic operator or – represented by the plus sign + one or more of the relational operations must be true in order for the or logical operator to return a value of 1 true only if both of the relational operations are false, will the return value be 0 false note that the plus sign also represents the addition arithmetic operator here is a summary of the results of a logical operation result of relational operation 1 result of relational operation 2 result of and * relational operation 1 * relational operation 2 result of or + relational operation 1 + relational operation 2 0 false 0 false 0 * 0 = 0 0 + 0 = 0 0 false 1 true 0 * 1 = 0 0 + 1 = 1 1 true 0 false 1 * 0 = 0 1 + 0 = 1 1 true 1 true 1 * 1 = 1 1 + 1 = 1 how does the tag expression know when to use a logical or arithmetic operator? a logical operator is applied only if both of the two operands the values on either side of the operator are relational operations an arithmetic operator is applied if either of the two operands is a number or value logical operation arithmetic operation arithmetic operation both operands are relational operations 0 <= 1 * 1 < 2 result 1 one operand is a relational operation and the other is a value 0 <= 1 *120 result 120 both operands are values 1*120 result 120 this tag expression is made up of two relational operations on either side of the operator 0<=1 and 1<2 because of this, the logical operator is applied since both of the relational operations are true, the final result of this tag expression is 1 true this tag expression is made up of a relational operation 0<=1 and a value 120 because of this, the arithmetic operator is applied the result of the relational operation is 1 true which is then multiplied by 120 the final result of this operation is 120 this tag expression is made up of two values 1 and 120 because of this, the arithmetic operator is applied the result is 1 multiplied by 120 which returns a final result of 120 examples here are two examples using logical operations combined with arithmetic operations 100 * [h] >= 6 * [h] <= 17 determine if the hour in the day is greater than or equal to 6 and less than or equal to 17, multiply the result by 100 if [h] =3, then the final resulting value is 0 first, compute the relational operations [h] >= 6 returns 0 false and [h] <= 17 returns 1 true next, compute the logical operation [h] >= 6 * [h] <= 17 → 0 * 1 → 0 and 1 → 0 finally, compute the arithmetic operation 100 * 0 → 0 if [h] = 9, then the final resulting value is 100 first, compute the relational operations [h] >= 6 returns 1 true and [h] <= 17 returns 1 true next, compute the logical operation [h] >= 6 * [h] <= 17 → 1 * 1 → 1 and 1 → 1 finally, compute the arithmetic operation 100 * 1 → 100 if [h] = 20, then the final resulting value is 0 first, compute the relational operations [h] >= 6 returns 1 true and [h] <= 17 returns 0 false next, compute the logical operation [h] >= 6 * [h] <= 17 → 1 * 0 → 1 and 0 → 0 finally, compute the arithmetic operation 100 * 0 → 0 120 + [hr] <= 50 + [hr] >= 100 determine if your heart rate is less than or equal to 50 bpm or greater than or equal to 100 bpm, add 120 to the result if [hr] = 30, then the resulting value is 121 first, compute the relational operations [hr] <= 50 returns 1 true and [hr] >= 100 returns 0 false next, compute the logical operation [hr] <= 50 + [hr] >= 100 → 1 + 0 → 1 or 0 → 1 finally, compute the arithmetic operation 120 + 1 → 121 if [hr] = 70, then the resulting value is 120 first, compute the relational operations [hr] <= 50 returns 0 false and [hr] >= 100 returns 0 false next, compute the logical operation [hr] <= 50 + [hr] >= 100 → 0 + 0 → 0 or 0 → 0 finally, compute the arithmetic operation 120 + 0 → 120 if [hr] = 120, then the resulting value is 121 first, compute the relational operations [hr] <= 50 returns 0 false and [hr] >= 100 returns 1 true next, compute the logical operation [hr] <= 50 + [hr] >= 100 → 0 + 1 → 0 or 1 → 1 finally, compute the arithmetic operation 120 + 1 → 121 creating a pedometer using logical and relational operations using logical and relational operations, let’s add another image to our pedometer this pedometer displays not only the standing man when step percentage the [st] tag is 0% and the victorious man when step percentage is 100%, but also an image of a walking man if the step percentage is greater than or equal to 1% and less than or equal to 99% display the standing man image if step percentage = 0% display the walking man image if 1% <= step percentage <= 99% display the victorious man image if step percentage = 100% the standing man and victorious man images the tag expression for opacity is the same as the previous pedometer example set opacity to [st] == 0 * 100 the tag expression for opacity is the same as the previous pedometer example set opacity to [st] == 100 * 100 the walking man image set opacity to [st] >= 1 * [st] <= 99 * 100 when [st] is equal to 0, [st] >= 1 * [st] <= 99 returns 0 the walking man image is not displayed because the opacity property is set to 0 when [st] is greater than or equal to 1 and [st] is less than or equal to 99, [st] >= 1 * [st] <= 99 returns 1 the walking man image is displayed because the opacity property is set to 100 when [st] is equal to 100, [st] >= 1 * [st] <= 99 returns 0 the walking man image is not displayed because the opacity property is set to 0 if [st] = 0, the first relational operation [st] >= 1 returns 0 false and the second relational operation [st] <= 99 returns 1 true the logical operation [st] >= 1 * [st] <= 99 returns 0 false [st] >= 1 * [st] <= 99 → 0 >= 1 * 0 <= 99 → 0 * 1 → 0 opacity = 0 >= 1 * 0 <= 99 * 100 → 0 * 1 * 100 → 0 * 100 → 0 opacity is set to 0 and the walking man image is not displayed if [st] >= 1 and [st] <= 99, the first relational operation [st]>=1 returns 1 true and the second relational operation [st] <= 99 returns 1 true the logical operation [st] >= 1 * [st] <= 99 returns 1 true [st] >= 1 * [st] <= 99 → 1 * 1 → 1 opacity = [st] >= 1 * [st] <= 99 * 100 → 1 * 1 * 100 → 1 * 100 → 100 opacity is set to 100 and the walking man image is displayed if [st] = 100, the first relational operation [st]>=1 returns 1 true and the second relational operation [st]<=99 returns 0 false the logical operation [st] >= 1 * [st] <= 99 returns 0 false [st] >= 1 * [st] <= 99 → 100 >= 1 * 100 <= 99 → 1 * 0 → 0 opacity = 100 >= 1 * 100 <= 99 * 100 → 1 * 0 * 100 → 0 * 100 → 0 opacity is set to 0 and the walking man image is not displayed let’s walk through the calculation of the tag expression [st] >= 1 * [st] <= 99 * 100 when step percentage is 50 replace [st] with the value, in this case 50 [st] >= 1 * [st] <= 99 * 100 → 50 >= 1 * 50 <= 99 * 100 the operations in parentheses must be resolved first, so resolve the relational operations 50 >= 1 and 50 <= 99 because 50 is greater than 1, the first relational operation returns 1 true because 50 is less than 99, the second relational operation returns 1 true 50 >= 1 * 50 <= 99 * 100 → 1 * 1 * 100 again, the operation in parentheses must be resolved first, so resolve the logical operation 1 * 1 in this case, * is interpreted as the and logical operation because the operands on both sides of the operator are relational operations 1 and 1 returns 1 true 1 * 1 * 100 → 1 * 100 now, calculate 1 multiplied by 100 which results in 100 note that * is interpreted as an arithmetic operation because only one of its operands is a logical operation while the other is a value 100 1 * 100 → 100 creating a pedometer using logical, relational, and arithmetic operations let’s create another pedometer that adjusts the placement of each image, starting with the standing man on the left, the victorious man on the right, and the walking man between the two with its placement changing based on the percentage of steps taken this example is also part of the steps_digital_b complication provided with galaxy watch studio component bar > complications > workout > steps_digital_b display the standing man image if step percentage = 0% display the walking man image if 1% <= step percentage <= 99% with the placement of the image dependent on the step percentage display the victorious man image if step percentage = 100% the standing man and victorious man images opacity the tag expression for opacity is the same as the previous pedometer example set opacity to [st] == 0 * 100 placement note that the horizontal x value for placement has been adjusted so that the image appears on the left opacity the tag expression for opacity is the same as the previous pedometer example set opacity to [st] == 100 * 100 placement note that the horizontal x value for placement has been adjusted so that the image appears on the right the walking man image opacity the tag expression for opacity is the same as the previous pedometer example set opacity to [st] >= 1 * [st] <= 99 * 100 placement the x placement property contains a tag expression, [st] <= 99 * [st] the operation in parentheses must be resolved first the operation uses a relational operator and returns 1 true or 0 false , based on the result of the operation the x placement property positions the walking man image along the x-axis on the watch face from 100px to 199px as the step percentage increases, the tag expression result increases, and the placement of the walking man image moves further to the left of its starting position that is, for each increase of 1% of step percentage, the walking man image moves to the left by 1px because the y placement property y-axis does not change, the walking man image moves in a horizontal line across the watch face if [st] = 0, the relational operation [st] <= 99 returns 1 true x = 100 + 0 <= 99 * 0 → 100 + 1 * 0 → 100 + 0 → 100 however, because opacity is 0 when [st] = 0, the walking man image is not displayed if [st] = 50, the relational operation [st] <= 99 returns 1 true x = 100 + 50 <= 99 * 50 → 100 + 1 * 50 → 100 + 50 → 150 if [st] = 100, the relational operation [st] <= 99 returns 0 false x = 100 + 100 <= 99 * 100 → 100 + 0 * 100 → 100 + 0 → 100 however, because opacity is 0 when [st] = 100, the walking man image is not displayed ternary operators ternary operations have three operands a conditional operation, a result if the conditional operation is true, and a result if the conditional operation is false a conditional operation can be a relational or logical operation it is presented in the following format conditional_operation? result_if_true result_if_false examples the following examples are used to set the opacity of an image on the watch face [ba] <= 20? 15 100 set the opacity of an image on the watch face to 15 if battery percentage is less than or equal to 20 otherwise, set the opacity to 100 if [ba] = 10, [ba] <= 20 returns true opacity is set to 15 if [ba] = 60, [ba] <= 20 returns false opacity is set to 100 [ba] >= 50 * [ba] <= 75 ? 100 0 this example uses a logical operation for its conditional operation set the opacity of an image on the watch face to 100 if battery percentage is greater than or equal to 50 and less than or equal to 75 otherwise, set the opacity to 0 if [ba] = 10, first, compute the relational operations [ba] >= 50 returns 0 false and [ba] <= 75 returns 1 true next, compute the logical operation [ba] >= 50 * [ba] <= 75 → 10 >= 50 * 10 <= 75 → 0 * 1 → 0 and 1 → 0 false finally, since the conditional operation returns false, opacity is set to 0 if [ba] = 60, first, compute the relational operations [ba] >= 50 returns true 1 and [ba] <= 75 returns true 1 next, compute the logical operation [ba] >= 50 * [ba] <= 75 → 60 >= 50 * 60 <= 75 → 1 * 1 → 1 and 1 → 1 true finally, since the conditional operation returns true, opacity is set to 100 if [ba] = 90, first, compute the relational operations [ba] >= 50 returns true 1 and [ba] <= 75 returns false 0 next, compute the logical operation [ba] >= 50 * [ba] <= 75 → 90 >= 50 * 90 <= 75 → 1 * 0 → 1 and 0 → 0 false finally, since the conditional operation returns false, opacity is set to 0 nested ternary operations ternary operations can be nested within the result operand of another ternary operation for example, if you have two ternary operations a? b c and x? y z , you could create the following nested ternary operations conditional_operation? a? b c result_if_false – if conditional_operation is true, then check conditional operation a if a is true, the result is b if a is false, the result is c if conditional_operation is false, the result is result_if_false conditional_operation? result_if_true x? y z – if conditional_operation is true, the result is result_if_true if conditional_operation is false, then check conditional operation x if x is true, the result is y if x is false, the result is z conditional_operation? a? b c x? y z – if conditional_operation is true, then check conditional operation a if a is true, the result is b if a is false, the result is c if conditional_operation is false, then check conditional operation x if x is true, the result is y if x is false, the result is z example the following nested ternary operation is used to set the opacity of an image on the watch face in this example, the conditional operations are logical operations [hr] >= 100 * [hr] <= 140 ? [sp] >= 2 * [sp] <=6 ? 50 100 0 opacity is determined using heart rate [hr] and speed [sp] heart rate the first conditional operation the first conditional operation that must be considered is [hr] >= 100 * [hr] <= 140 if heart rate is greater than or equal to 100bpm and heart rate is less than or equal to 140bpm note that this conditional operation is also a logical operation because its two operands are relational operations if [hr] = 90, first, compute the relational operations [hr] >= 100 returns 0 false and [hr] <= 140 returns 1 true next, compute the logical operation [hr] >= 100 * [hr] <= 140 → 90 >= 100 * 90 <= 140 → 0 * 1 → 0 false finally, since the conditional operation returns false, the nested ternary operation returns 0, and opacity is set to 0 if [hr] = 120, first, compute the relational operations [hr] >= 100 returns 1 true and [hr] <= 140 returns 1 true next, compute the logical operation [hr] >= 100 * [hr] <= 140 → 120 >= 100 * 120 <= 140 → 1 * 1 → 1 true finally, since the conditional operation returns true, the nested ternary operation must now consider the second conditional operation [sp] >= 2 * [sp] <=6 see speed the second conditional operation for this calculation if [hr] =160, first, compute the relational operations [hr] >= 100 returns 1 true and [hr] <= 140 returns 0 false next, compute the logical operation [hr] >= 100 * [hr] <= 140 → 160 >= 100 * 160 <= 140 → 1 * 0 → 0 false finally, since the conditional operation returns false, the nested ternary operation returns 0, and opacity is set to 0 speed the second conditional operation the second conditional operation that must be considered if the initial condition is true is [sp] >= 2 * [sp] <=6 if speed is greater than or equal to 2 m/s and less than or equal to 6 m/s again, this is a logical operation because its two operands are relational operations if [sp] = 0, first, compute the relational operations [sp] >= 2 returns 0 false and [sp] <=6 returns 1 true next, compute the logical operation [sp] >= 2 * [sp] <=6 → 0 >=2 * 0 <= 6 → 0 * 1 → 0 false finally, since the conditional operation returns false, the nested ternary operation returns 100, and opacity is set to 100 if [sp] = 5, first, compute the relational operations [sp] >= 2 returns 1 true and [sp] <=6 returns 1 true next, compute the logical operation [sp] >= 2 * [sp] <=6 → 5 >= 2 * 5 <= 6 → 1 * 1 → 1 true finally, since the conditional operation returns true, the nested ternary operation returns 50, and opacity is set to 50 if [sp] = 7, first, compute the relational operations [sp] >= 2 returns 1 true and [sp] <=6 returns 0 false next, compute the logical operation [sp] >= 2 * [sp] <=6 → 7 >= 2 * 7 <= 6 → 1 * 0 → 0 false finally, since the conditional operation returns false, the nested ternary operation returns 100, and opacity is set to 100 example heart rate monitor this example creates a heart rate monitor that displays a heartbeat slowing down or speeding up, depending on the user’s heart rate this example is also part of the heart_03 complication provided with galaxy watch studio component bar > complications > heart rate > heart_03 this example uses the placement property to show or hide the selected image instead of making the image invisible by setting its opacity to zero, the image is hidden by placing it outside of the visible watch face heart rate <= 50bpm 50bpm < heart rate <= 100bpm heart rate > 100bpm the slow heartbeat image display the animated green heart that beats slowly when the heart rate is less than or equal to 50bpm the initial placement of the slow heartbeat image is in the center of the watch face when the user’s heart rate [hr] is less than or equal to 50bpm, the slow heartbeat image is displayed when the heart rate is greater than 50bpm, the image is placed outside of the visible watch face to place the slow heartbeat image outside of the visible watch face when the heart rate is greater than 50, enough distance must be added to the placement in this case, 1,000px is added when the heart rate is greater than 50, thus moving the placement of the image to 1,158px on the x-axis which is well outside of the visible watch face for the slow heartbeat image, the tag expression for the x placement property is [hr] > 50 * 1000 the operation in parentheses must be resolved first the operation uses a relational operator and returns 1 true or 0 false , based on the result of the operation if [hr] = 45, the relational operation [hr] > 50 returns 0 false x = 158px + 45 > 50 * 1000 → 158px + 0 * 1000 → 158px + 0 → 158px the placement is not changed and the slow heartbeat image remains visible on the watch face if [hr] = 75, the relational operation [hr] > 50 returns 1 true x = 158px + 75 > 50 * 1000 → 158px + 1 * 1000 → 158px + 1000 → 1158px the placement is moved outside of the visible watch face therefore the slow heartbeat image is not displayed if [hr] = 125, the relational operation [hr] > 50 returns 1 true x = 158px + 125 > 50 * 1000 → 158px + 1 * 1000 → 158px + 1000 → 1158px the placement is moved outside of the visible watch face therefore the slow heartbeat image is not displayed the medium heartbeat image display the animated yellow heart that beats at medium speed when the heart rate is greater than 50bpm and less than or equal to 100bpm the initial placement of the medium heartbeat image is outside of the visible watch face -44px on the x-axis when the user’s heart rate [hr] is greater than 50bpm and less than or equal to 100bpm, the medium heartbeat image is displayed when the heart rate is less than or equal to 50bpm or greater than 100bpm, the image is placed outside of the visible watch face to place the medium heartbeat image in the center of the watch face the same position as the slow heartbeat image when the heart rate is greater than 50bpm and less than or equal to 100bpm, the x-axis placement must be set to 158px 202px is added when the heart rate conditions are met, thus moving the placement of the image to 158px on the x-axis for the medium heartbeat image, the tag expression for the x placement property is [hr] <= 50 + [hr] > 100 * 1000 + 202 the operation in parentheses must be resolved first the operation uses relational operators and a logical operator that returns 1 true or 0 false , based on the result of the operation if [hr] = 45, the first relational operation [hr] <= 50 returns 1 true and the second relational operation [hr] > 100 returns 0 false the logical operation [hr] <= 50 + [hr] > 100 returns 1 true 45 <= 50 + 45 > 100 → 1 + 0 → 1 x = -44px + 45 <= 50 + 45 > 100 * 1000 + 202 → -44px + 1 + 0 * 1000 + 202 → -44px + 1 * 1000 + 202 → -44px + 1000 + 202 → 1,158 the placement is moved outside of the visible watch face therefore the medium heartbeat image is not displayed if [hr] = 75, the first relational operation [hr]<=50 returns 0 false and the second relational operation [hr] > 100 returns 0 false the logical operation [hr] <= 50 + [hr] > 100 returns 0 false 75 <= 50 + 75 > 100 → 0 + 0 → 0 x = -44px + 75 <= 50 + 75 > 100 * 1000 + 202 → -44px + 0 + 0 * 1000 + 202 → -44px + 0 * 1000 + 202 → -44px + 202 → 158 the placement is moved to the center of the watch face therefore the medium heartbeat image is displayed if [hr] = 125, the first relational operation [hr] <= 50 returns 0 false and the second relational operation [hr] > 100 returns 1 true the logical operation [hr] <= 50 + [hr] > 100 returns 1 true 125 <= 50 + 125 > 100 → 0 + 1 → 1 x = -44px + 125 <= 50 + 125 > 100 * 1000 + 202 → -44px + 0 + 1 * 1000 + 202 → -44px + 1 * 1000 + 202 → -44px + 1000 + 202 → 1,158 the placement is moved outside of the visible watch face therefore the medium heartbeat image is not displayed let’s walk through the calculation of the tag expression [hr] <= 50 + [hr] > 100 * 1000 + 202 when heart rate is 75 replace [hr] with the value, in this case 75 [hr] <= 50 + [hr] > 100 * 1000 + 202 → 75 <= 50 + 75 > 100 * 1000 + 202 the operations in parentheses must be resolved first, so resolve the relational operations 75 <= 50 and 75 > 100 because 75 is not less than or equal to 50, the first relational operation returns 0 false because 75 is not greater than 100, the second relational operation returns 0 false 75 <= 50 + 75 > 100 * 1000 + 202 → 0 + 0 * 1000 + 202 again, the operation in parentheses must be resolved first, so resolve the logical operation 0 + 0 in this case, + is interpreted as the or logical operation because the operands on both sides of the operator are relational operations 0 or 0 returns 0 false 0 + 0 * 1000 + 202 → 0 * 1000 + 202 now, calculate 0 multiplied by 1000 then add 202 which results in 202 note that * and + are interpreted as arithmetic operations because at least one of their operands is a value 0 * 1000 + 202 → 202 x is equal to -44px + 202 → 158px the fast heartbeat image display the animated red heart that beats fast when the heart rate is greater than 100bpm the initial placement of the fast heartbeat image is outside of the visible watch face -44px on the x-axis when the user’s heart rate [hr] is greater than 100bpm, the fast heartbeat image is displayed when the heart rate is less than or equal to 100bpm, the image is placed outside of the visible watch face to place the fast heartbeat image in the center of the watch face the same position as the fast heartbeat image when the heart rate is greater than 100bpm, the x-axis placement must be set to 158px 202px is added when the heart rate conditions are met, thus moving the placement of the image to 158px on the x-axis for the fast heartbeat image, the tag expression for the x placement property is [hr] <= 100 * 1000 + 202 the operation in parentheses must be resolved first the operation uses a relational operator and returns 1 true or 0 false , based on the result of the operation if [hr] = 45, the relational operation [hr] <= 100 returns 1 true x = -44px + 45 <= 100 * 1000 + 202 → -44px + 1 * 1000 + 202 → -44px + 1000 + 202 → 1,158px the placement is moved outside of the visible watch face therefore the fast heartbeat image is not displayed if [hr] = 75, the relational operation [hr] <= 100 returns 1 true x = -44px + 75 <= 100 * 1000 + 202 → -44px + 1 * 1000 + 202 → -44px + 1000 + 202 → 1,158px the placement is moved outside of the visible watch face therefore the fast heartbeat image is not displayed if [hr] = 125, the relational operation [hr] <= 100 returns 0 false x = -44px + 125 <= 100 * 1000 + 202 → -44px + 0 * 1000 + 202 → -44px + 0 + 202 → 158px the placement is moved to the center of the watch face therefore the fast heartbeat image is displayed
Develop Galaxy Watch for Tizen
docimage sizes round type 360 x 360 px try to design each watch face component according to its optimal size and ratio resizing and rotating components in preview can change the appearance of your design backgrounds 360 x 360 px recommended indexes around 30 x 30 px recommended hands around 18 x 30 px recommended we recommend circles only the matching circle area will be shown on the device, even if you use other shapes it’s a good idea to position your first index bar at the center of your watch face to make sure that any subsequent ones form a circle for bar-type designs, a long, narrow watch hand is recommended with a pivot point at the center of the image although this can be changed, the default position will always be the center images 360 x 360 px or less recommended animations 360 x 360 px or less recommended bitmap fonts 360 x 360 px or less recommended you can create and use a range of images, but larger ones may be cropped on a the device there are no restrictions on the types of animations, but any that are larger than 360 x 360 px may be cropped on the device by default, animations will run at 15 fps keep the size of any text boxes in mind when you’re creating bitmap fonts unlike other components, bitmap fonts cannot be resized in galaxy watch studio
announcement mobile, galaxy watch, marketplace, design, game, ai
blogyesterday, we announced the winners of the 2020 best of galaxy store awards. due to the ongoing pandemic, the awards show was broadcast live on youtube (link). the best of galaxy store awards recognize the top games, apps, themes, watch faces, and new this year, bixby capsules. this year's 22 winners come from 14 countries and represent the global nature of the samsung developers ecosystem. the links below will take you to the content in galaxy store itself (where available) and are best viewed on a samsung device. games best game graphics: turn 10 studios, a microsoft first-party studio, takes the checkered flag with forza street best simulation game: utilizing strong visuals, state of survival stands out among galaxy store games best action game: garena free fire is a fast-paced battle royale that delights players best casual game: uno!, a popular family card game, is now on mobile best indie game: clawee brings the excitement and skill of the arcade machine to mobile devices best role playing game: lego™ legacy: heroes unboxed is a fan favorite for all ages best arcade game: wgt golf brings the excitement of the premium desktop golf franchise to mobile players game of the year: fortnite was a standout favorite among galaxy store audiences watch best new watch face designer: high watch faces is an exciting new designer from uruguay best innovative watch face: the persona-smart watch face highlights the extensibility of the galaxy watch platform best watch face design: the golden floral digital watch face is a beautiful example of tatyana galkinar's work best watch face collection: urarity brings style to his tech-driven ideas best watch app: talk to alexa enables communication with the digital assistant with only your galaxy watch themes best new themes designer: marigold emphasizes style and peaceful interactions with nature best innovative theme: dark warrior has a visually stunning effect best theme design: [bear] pink clouds of stars uses pleasant colors and emotional elements for a winning design best themes collection: working with some of the best-known global brands, this collection of designs from butterfly-effected gmbh demonstrates success best icon pack: [alex-]fantasy icon pack uses strong colors and bold symbolism apps best wellness app: betterhelp: online counseling & therapy makes professional counseling accessible, affordable, convenient best innovative app: nba top shot allows fans to collect, trade and play with the greatest basketball moments of all time bixby capsule of the year: spotify plays artists and playlists using only voice commands bixby developer of the year: steven arkonovich, the creator of big sky weather want to learn more about this year's winners? watch the playback of the 2020 best of galaxy store awards show and hear what they have to say.
Lori Fraleigh
Develop Galaxy Watch for Tizen
docfaq q01 why are my watch apps not available in the galaxy store for upgraded gear watches or new devices? you must specify in seller portal that your binary is compatible with all new devices a watch with an upgraded os is considered a new device and republish your app after your updated app is published, it will be available to those new devices on gear s3 and gear sport watches, the tizen os can be upgraded gear s3 can be upgraded from tizen 2 3 2 to tizen 3 0 or 4 0 gear sport can be upgraded from tizen 3 0 to tizen 4 0 if you published your app before these upgrades were available, the option to include the upgraded watch as a compatible device was not available in seller portal for example, if you published your app before tizen 4 0 was released, your selections for compatible gear sport watches in seller portal would have been for tizen 3 0 only likewise, your selections for compatible gear s3 devices would have been for tizen 2 3 2 and 3 0 as a result, a customer who has upgraded their watch to tizen 4 0 will not be able to view your app in the galaxy store in order to have your watch app recognized as compatible with an upgraded watch, you must update the compatible devices for the binary in seller portal in general, if a new device is released or an existing device becomes upgradable to a new os after you have published your app and you want your app available on these devices, you must update your binary to be compatible with these devices and republish your app to update the list of compatible devices for your binary file in seller portal log in to seller portal and open your watch face app click the binary tab at the top of the binary section, in the middle is a box with selected device s and the total number of selected compatible devices click on the number in the detailed device settings window, select each device with which the binary is compatible if your binary is compatible with all listed devices, click select all click save submit your app for validation and, after it has been successfully validated, republish it q02 create product images for galaxy watch detail pages make your galaxy watch face or app stand out in the galaxy store samsung recommends that you use portrait-orientation product images for your galaxy watch detail page users can just tap on a portrait image to open it in full-screen mode, creating an optimal phone experience and allowing your app to stand out in the galaxy store best practices use detailed, close-up images of the product we suggest that you use just the product and logo with minimal or no text for a strong image that shows the quality of your workmanship avoid using identical images for the icon, cover image, and screenshot in this case, the detail page shows three duplicate images rather than three separate views of the product screenshot resolution we suggest the following resolution guidelines for screenshots cover image = 1024 x 500 pixels horizontal screenshots = 1500 x 750 pixels vertical screenshots = 550 x 1100 pixels galaxy store asset creator you can use the galaxy store asset creator to easily export the assets you need to publish your watch face to the galaxy store to use this tool, you need photoshop version 16 0 cc 2015 or later a basic understanding of photoshop download the galaxy store watch asset creator template to get started! lifestyle photo asset packs show off your watch face designs on an actual watch using our "smart" photoshop files download lifestyle photo assets and save time! examples the following screenshot shows a galaxy watch detail page with three portrait screenshots that show detailed aspects of the galaxy watch face the following screenshot shows a galaxy watch detail page with landscape screenshots that are cut off on the sides, making them less visually appealing in the galaxy store q03 find, download, and export galaxy watch images use the lifestyle photo assets to show your watch face designs on an actual watch or, use the galaxy store asset creator to easily export the assets you need to publish your watch face to the galaxy store to use these tools, you need photoshop version 16 0 cc 2015 or later a basic understanding of photoshop download lifestyle photo assets and save time! download the galaxy store watch asset creator template to get started! q04 develop galaxy watch faces with galaxy watch studio you can use galaxy watch studio formerly galaxy watch designer to design your galaxy watch faces to download galaxy watch studio gws , go to /galaxy-watch-tizen/studio/overview html to develop watch faces using gws, see the galaxy watch studio tutorial q05 what is a distributor certificate and how is it used? the distributor certificate is used for signing and verifying your app it identifies the distributor for example, galaxy store and grants privileges to that distributor for testing purposes, it ensures that your signed application is installed on registered devices only in order to test your app on a device, the device must be registered in your personal distributor certificate then, you must build your app, which signs the app using your personal distributor certificate to generate a personal distributor certificate and register a samsung device, using the galaxy watch studio formerly galaxy watch designer , from the main menu bar, click project > distribute certificate for more information, see get your certificates using tizen studio, from the main menu bar, click tizen tools > certificate manager the samsung certificate extension must be installed in order to properly generate a personal distributor certificate for your samsung device for information about the samsung certificate extension, see installing certificate extension for information about the certificate manager, see creating certificates and managing certificate profile the personal distributor certificate is used for testing only when you release your app for sale in the galaxy store, your personal distributor certificate is replaced by an official distributor certificate if you upgrade a registered device for example, you upgrade the tizen os , you may need to re-register the device in your personal distributor certificate for example, if you upgrade your galaxy watch 3 or sport watch to tizen 4 0, you must re- register the device in your personal distributor certificate and rebuild your app before testing it on the device you may encounter one of the following error messages if there is a problem with the distributor certificate message message solution account in device profile mismatch with distributor certificate the device has been upgraded and the duid device unique identifier has changed re-register the device in your personal distributor certificate and rebuild your app launching appmanagerappid has encountered a problem the device is not found in your personal distributor certificate or your personal distributor certificate was not created properly register the device in your personal distributor certificate or re-create your personal distributor certificate and rebuild your app the application installation on the device has failed due to a signature error! error code -12 you used the tizen studio distributor certificate when building your app, not the distributor certificate generated by the samsung certificate extension select or create a distributor certificate for your samsung device using the certificate manager and rebuild your app for information about the samsung certificate extension, see installing certificate extension for information about the certificate manager, see creating certificates and managing certificate profile for more information about distributor certificates, see getting the certificates q06 how to test galaxy watch app in different devices? you can register up to 50 devices to one samsung certificate see creating certificates for more information developer certificate is made of author certificate and distributor certificate to change or add a new device to the certificate, you need to create a new distributor certificate again while keeping the same author certificate for more information, see managing certificate profile q07 what is the deeplink format to redirect users to download android app programmatically from inside galaxy watch app? linking to galaxy app store use the format below to deeplink directly to an app’s detail page, where users can see app description, screen shots etc and then install it to create a link, you need to know app’s fully qualified package name which is declared in android manifest file for android app or config xml / tizen manifest file for galaxy watch app from a galaxy watch app to android app’s store detail page samsungapps //productdetail/ example, samsungapps //productdetail/com example androidapp from a galaxy watch app to galaxy watch app’s store detail page samsungapps //productdetail/ example, samsungapps //productdetail/cnam8ugvz8 from a web site http //apps samsung com/gear/appdetail as?appid= example, http //apps samsung com/gear/appdetail as?appid=cnam8ugvz8 q08 how to update the tau library to the latest version? you can download the latest version of the tau library from downloading tau q09 how to launch android app from a galaxy watch app programmatically? see remote app control q10 when the time zone is changed, the value of the date object constructed in the callback keeps the time zone unchanged for example function test { var now = new date ; console log "hour "+now gethours ; // even when the time zone is changed, it remains unchanged } setinterval function {test ;}, 1000 ; to solve the problem, please see retrieving date and time q11 how to install my galaxy watch application to the device? see testing your app on galaxy watch if your device is galaxy watch s or older, there are 2 ways of transferring your application wgt to galaxy watch device first way is, create an android application -> copy your wgt file to assets folder of the android application -> generate apk -> install this apk through galaxy watch manager to your galaxy watch device second way is, go to command prompt -> go to the directory where the sdb exe tool is located -> make sure your wgt file is in this directory -> type command sdb install wgt q12 how to create an integrated/linked application? the integrated and linked type are deprecated on any samsung watch running tizen 2 3 1 or higher such as gear s2, gear s3, gear sport, and any galaxy watch and are only supported on gear 2, gear s, or any samsung watch running tizen 2 2 or earlier see the video how to create a basic integrated gear application q13 does gear 2 support native applications development? no it is available from the gear s2 based on the tizen 2 3 1 q14 i want to post notifications from my application to the galaxy watch device do i need to create a tizen application for this purpose? no, it is not necessary to create a galaxy watch app to send notifications from your phone every notification that the phone receives is automatically relayed to your galaxy watch device after you enable this functionality in samsung galaxy watch settings q15 does remote test lab support galaxy watch application testing? yes, more information can be found at about remote test lab q16 how do i specify meta data master_app_samsungapps_deeplink? see configuring galaxy watch application q17 where can i find tutorials for galaxy watch application development on the wearable side? see creating your first app q18 i have implemented tizen notification api in my app why are notifications posted by my app not shown in the notification panel of my galaxy watch? notification settings of a galaxy watch can be managed from the galaxy wearable app on your phone if your watch is paired to a phone, check the notification settings in the galaxy wearable app for example, in the galaxy wearable app, you can enable or disable permission for your app to send notifications to your watch also check if "show only when wearing" is enabled if this setting is enabled, notifications won't appear unless you are wearing the watch q19 can i launch the tizen emulator on a system that runs on an amd processor? no, hyper-v/whpx is not supported by amd processors instead, deploy your project directly on your galaxy watch q20 any tips and trick when connecting my galaxy watch to tizen studio? yes, consider the following the pc and watch must be on the same network developer options must be enabled on the watch galaxy watch only supports one sdb connection at a time the watch cannot connect to two different systems that are running tizen studio at the same time see testing your app on galaxy watch for more information q21 do i have to connect my galaxy watch to my pc when i deploy my app from tizen studio? yes, in order to deploy your app from tizen studio to your watch, your watch must be connected to your pc you can connect your watch over wifi
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.