Filter
-
Content Type
-
Category
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Recommendations
Filter
Develop Galaxy Watch for Tizen
doccreate your first tizen wearable web widget application welcome to tizen wearable web widget application development! note widget template is not supported since tizen studio 3 0 a wearable web application is basically a web site stored on a wearable device you can create it using web-native languages, such as html5, css, and javascript a widget application is one of the tizen application types it can be shown by specific ui applications such as the home screen and lock screen that can contain widget applications figure widget application on a wearable device study the following instructions to help familiarize yourself with the tizen web 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 web widget application a web widget , which displays some text on the screen with no user interaction 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 web widget 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 web 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 web widget application project in the tizen studio an application project contains all the files that make up an application note standalone widget application packages are not allowed in the tizen store for user convenience, you can use a standalone widget application for testing purposes in the tizen studio if you want to publish the application in the tizen store, combine it with at least 1 ui application in the same package for more information, see developing multiple projects as a combined package the following figure illustrates the application to be created the application screen displays the hello widget text and no user interaction is provided figure wearable web widget 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 web application application type and click next select the widget 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 css folder for css files used by the application to style its content js folder for javascript files used by the application to implement its functional logic config xml application configuration file used by the platform to install and launch the application icon png application icon file used by the platform to represent the widget index html main html file for the layout of the application screen preview png preview of the widget application file that is displayed in the widget view on the target figure application in the project explorer note you can validate your widget and view and modify the application configuration in the web application configuration editor in this example, no configuration changes are required your application project is now ready for further actions next, build the application checking the application with the api validator you can validate a tizen wearable widget application using one of 3 validators html validator css validator js validator you can enable or disable these validators in the application preferences go to window > preferences > tizen studio > webwidget, and check the applicable check boxes figure validation preferences the validation is performed automatically when the project or package is built, or when the application is run when the validation is complete, its results are shown in the problems view if the view is not displayed, select it from window > show view > problems keyboard shortcut shift + alt + q + x figure validation results managing the application configuration to view and modify the application configuration in the project explorer view, double-click the config xml file of the application the tizen studio opens the file in the web application configuration editor in the configuration editor, view and modify the configuration details using the various tabs overview define general information, such as the name 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 name, description, and license policy request network resource permissions to access external network resources preferences define name-value pairs that can be set or retrieved through the application tizen edit the tizen schema extension properties of the application source view and edit the source code of the config xml file changes made and saved on the other tabs are reflected in the source code and vice versa note the config xml file must conform to both the xml file format and the w3c 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 web application configuration understanding the source code pay attention to the following main issues in the application source code, 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 widget application settings are defined in the config xml file the file includes various information for the widget application the following code shows an example of the widget content in the file the <tizen app-widget> element indicates the widget settings the widget application is started and initialized with the index html file the <content> field src attribute defines the starting point if the widget requires privileges, add them to the config xml file as well <?xml version="1 0" encoding="utf-8"?> <widget xmlns tizen="http //tizen org/ns/widgets" xmlns="http //www w3 org/ns/widgets" id="http //yourdomain/widget" version="1 0 0"> <tizen app-widget id="0lvphbx9t6 widget widget" primary="true"> <tizen widget-label>hello web widget!</tizen widget-label> <tizen widget-content src="widget/widget/index html"> <tizen widget-size preview="widget/widget/preview png">2x2</tizen widget-size> </tizen widget-content> </tizen app-widget> <tizen application id="0lvphbx9t6 widget" package="0lvphbx9t6" required_version="4 0"/> <content src="index html"/> <feature name="http //tizen org/feature/screen size normal"/> <icon src="icon png"/> <name>widget</name> <tizen profile name="wearable"/> </widget> the widget application consists of the following folder architecture widget widget css style css js main js index html preview png config xml icon png index html you can customize the widget/widget/index html, widget/widget/css/style css, and widget/widget/js/main js files you can add various features such as asynchronous functions, js library, and effects to the widget application using js for example, if a js-based animation effect is needed, add the requestanimationframe method or some other animation library to the js file similarly, to change the ui elements' visual looks or add css-based effects including animation , modify the css file you can define the widget as a standalone or combined web application + web widget application the widget application can be a standalone application, which means that it does not connect to a web application, or it can be combined in the same package with a web ui application however, you cannot publish a standalone widget in the tizen store when you create a widget application in the tizen studio, it is always first a standalone application if you want to connect to a web ui application, you can package the widget with a web ui application create a web ui application and the widget application in the project explorer view, right-click the web application, and select properties > tizen studio > package > multi, and select the widget to be included in the package click ok in the following figure, the widget widget application is packaged with the app ui application the widget widget application indicates this with the [with app] text 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 javascript and css 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 after you have built the application, run it running your application you can run the web widget application on the emulator or a real target device note since the web simulator does not support a circular ui, this topic does not cover the instructions for running the application on the web simulator 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 web 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 the above screen is shown through the viewer, to allow you to develop a lone widget application for testing purposes to see the widget running on the home screen, add the widget there 1 press the **back** key in the upper-right corner of the emulator device to return to the home screen showing a watch face 2 swipe the home screen right until you see **+ add widget** select it 3 swipe right until you see your widget application select it ![adding to home screen] https //docs tizen org/application/web/get-started/wearable-widget/media/widget_run_add_home_ww png you can see the added widget on the home screen to access the widget from the home screen, swipe right ![home screen widget] https //docs tizen org/application/web/get-started/wearable-widget/media/widget_app_wearable_widget 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 web 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 add the widget to the home screen to easily access it 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 widget application created with the widget template has a simple user interface with a text component showing the hello widget text on the screen the ui is created using w3c/html in the index html file the w3c specifications provide html and css features for creating a user interface with html, you can define the structure of the application screens, while css allows you to define the look and feel of the screens figure user interface in the widget template creating the basic ui the ui in the widget template uses the html dom, which is a structured model to control web elements it is an official w3c standard to express the document regardless of platforms or languages, and the foundation of the html5 apis the template contains the following components the <html> element is the top-level element of the html dom tree that wraps the entire document, and it has the <head> and <body> elements as child nodes <!doctype html> <html> <head> <!--content--> </head> <body> <!--content--> </body> </html> the <head> element contains the information that the browser refers to when rendering the body element to interpret information, such as the title of the html document, and the location of the related css and javascript files <meta> defines information, such as encoding, creator, and keywords of the document <style>, <link> sets the styles of the document <script>, <noscript> adds functions to the document <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="css/style css"/> <script src="js/main js"></script> <style></style> </head> the <body> element defines the area displaying content on the browser screen in this case, it defines the hello widget text component <body> <div id="page"> <div id="container"> <p id="content-text">hello widget</p> </div> </div> </body> modifying existing components with css css cascading style sheets specifies the layout and styling of the web application there are various ways to connect css with html style attribute in an html element <link> element in the <head> element @import attribute in the css area <style> element in the <head> element applying the style of an html element directly with the style attribute has the highest priority on the other hand, creating a separate css file and managing it separately is convenient when it comes to applying changes in the future in the widget template, the css file is connected to the html file using a <link> element in the <head> element <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="css/style css"/> <script src="js/main js"></script> <style></style> </head> the following lines in the css code describe the styling of the text in an element with the content-text id css/style css html, body { width 100%; height 100%; margin 0; padding 0; } #page { background-color #000; color #fff; height 100%; position relative; width 100%; } #container { width 100%; height 100%; } #content-text { font-weight bold; font-size 40px; width 100%; height 100%; line-height 360px; margin 0; text-align center; } index html <body> <div id="page"> <div id="container"> <p id="content-text">hello widget</p> </div> </div> </body> by default, the text uses the #fff color white , defined for the <div> element with the page id if you change the css code and add a separate color for the content-text id, the text color changes in this case, to #ff0000 red #content-text { font-weight bold; font-size 40px; width 100%; height 100%; line-height 360px; margin 0; text-align center; color #ff0000; } figure screen with a new text color
Learn Developers Podcast
docseason 3, episode 2 previous episode | episode index | next episode this is a transcript of one episode of the samsung developers podcast, hosted by and produced by tony morelan a listing of all podcast transcripts can be found here host tony morelan senior developer evangelist, samsung developers instagram - twitter - linkedin guest derrick lee, polycube galaxy themes, galaxy store not only do we chat about their approach to designing and marketing compelling themes, but also how polycube is looking to expand their use of contract designers from their home country of korea to include designers from all around the world so that they can create for a global audience listen download this episode topics covered history of polycube best of galaxy store awards publishing on galaxy store galaxy badge use of stock imagery design workflow diversity and inclusion helpful links polycube facebook - facebook com/friends polycube polycube website - polycube co kr/v2/ polycube instagram - instagram com/polycube_friends/ polycube youtube - youtube com/c/polycubeinc galaxy themes - developer samsung com/galaxy-themes samsung developer program homepage - developer samsung com samsung developer program newsletter - developer samsung com/newsletter samsung developer program blog - developer samsung com/blog samsung developer program news - developer samsung com/news samsung developer program facebook - facebook com/samsungdev samsung developer program instagram - instagram com/samsung_dev samsung developer program twitter - twitter com/samsung_dev samsung developer program youtube - youtube com/samsungdevelopers samsung developer program linkedin - linkedin com/company/samsungdevelopers tony morelan linkedin - linkedin com/in/tony-morelan transcript note transcripts are provided by an automated service and reviewed by the samsung developers web team inaccuracies from the transcription process do occur, so please refer to the audio if you are in doubt about the transcript tony morelan 00 01 hey, i'm tony morelan and this is the samsung developers podcast, where we chat with innovators using samsung technologies, award winning app developers and designers, as well as insiders working on the latest samsung tools welcome to season three, episode two on today's show, i'm joined by derrick lee, content manager at polycube winners of the 2021 best of galaxy store award for best steam collection not only do we chat about their approach to designing and marketing, amazing themes, but also how polycube is looking to expand their use of contract designers from their home country of korea to include designers from all around the world so that they can create for a global audience enjoy hey, derrick, it is great to have you on the podcast derrick lee 00 51 hello, tony it's, it's great to see you thank you for having me tony morelan 00 55 so i like to start the podcast with who is derrick lee? derrick lee 00 59 um, well, i'm a person who appreciates and enjoys all forms of art, like paintings, digital graphics, music, everything i actually majored in industrial designing myself and i also love singing you know, as i said, all forms of art, tony morelan 01 13 i had no idea that you had a big appreciation for, for art and for music i actually do myself derrick lee 01 19 well, i see a guitar i see several guitars behind it right now yeah tony morelan 01 23 and the folks listening to this it's only for their audio but yes, we've got some cameras, derrick can see i've got a few guitars in the background i like to pretend that i know how to sing but still have yet to get the courage to actually sing in front of somebody so yeah, great to hear that you have that appreciation in that ability yeah, derrick lee 01 41 i'm not that good at singing either i just love it tony morelan 01 42 that's awesome that's awesome so derrick, you are a content manager at polycube tell me a little bit about that role derrick lee 01 50 well, that role is essentially giving out guidelines for designers coming up with something good visually, i think it could be better if somebody is giving out guidelines on which designs can you know resonate with people a little bit more, not just with themselves that's my role at polycube tony morelan 02 05 my background is really in graphic design okay, that's where i spent much of my career and i've worked with many art directors so it sounds like even though you call yourself a content manager to me, it sounds like that role really fits that art director derrick lee 02 20 role yeah, well, anyway, you can call it yeah tony morelan 02 24 so how long have you been at polycube? derrick lee 02 26 um, i have been at polycube for about three years now tony morelan 02 29 just about the same amount of time that i've been at samsung oh, okay so you had said that you that you majored in industrial design interesting i actually minored in industrial design okay okay, so we've got a few similarities, not just in music and singing but also with industrial design yes, we do i understand that coming out of college, you didn't just dive right into tech that you actually were selling donuts from a truck? derrick lee 02 57 yeah, i have been selling donuts for about, i think about 18 months and i really enjoyed it you know, don't get me wrong i didn't quit doing that, because i didn't like it but i really wanted to be involved in a design business in any way, shape, or form sure that's something i wanted to do more and i figured out that, you know, polycube was a company that was designing themes, and i thought it could be exciting so i jumped in that's great tony morelan 03 21 so now polycube is from seoul correct that's where your headquarters is? yes and that's where i'm assuming that's where you live? derrick lee 03 28 yeah, i live like 20 minutes away and it's a beautiful city, i hope in the future when there are no barriers such as covid-19 i hope our supporters all around the world can visit for a nice trip tony morelan 03 39 so you're in seoul, korea, but your english sounds so good i can tell you must have spent some time in the in the states here well, derrick lee 03 47 when i was five years old, my dad got a job in the states in new orleans, actually and we lived there for about nine years wow and then even after i came back to korea, i you know, i stayed in korea for a year and then in new orleans for a year and i've been going back and forth but in korea, military surfaces mandatory i stayed here for two years and then i started selling donuts as i mentioned earlier, so yeah, it's been a while and now covid yeah, so i've been staying in korea for a while but yeah, i do miss new orleans tony morelan 04 18 so i'm guessing that your love for music probably came a bit out of your time in new orleans derrick lee 04 24 oh, yeah, definitely i love jazz i love you know, stevie wonder cars, though those were the those were the artists that really, you know, you know, set a fire inside me yeah tony morelan 04 35 oh, that's great that's great now i was fortunate that actually a few months before covid hit i actually went out to seoul korea because that is where samsung's headquarter this so i got to spend a week there absolutely beautiful city so much to explore, but boy do i want to get back there was a lot that i did not see derrick lee 04 54 i would like to be your guide if you happen to come again one day yeah, tony morelan 04 58 i'll take you up on it for sure so, so about polycube, the company itself, they've been around for quite a while and i know that they do much more than just theme so tell me a bit about the history of poly q? and what are some of those areas that they also work on? derrick lee 05 12 you know, we have quite a history and actually 2021 was our 20th anniversary wow, we came a long way developing apps, making games and designing themes, watch faces and whatnot yeah, tony morelan 05 24 in the name polycube, i'm wondering, is there an interesting story behind that name? derrick lee 05 29 um, well, our founder wanted a name that emphasizes the importance of diversity in a group and if you look at the etymology of poly, you know, it means many sided sure so our founder thought that it was a perfect name cube was added, because, you know, if you look at the cube the shape and as it also has many sides, you know, you have to have many sides to form a cube, right so that's how poly and cube got together and formed the named polycube, you had mentioned that you do more than just themes well, we also make a lot of games, you know, one that we're really working on these days is a game called poker master it has been around, but we're trying to, you know, find rooms for improvement sure tony morelan 06 06 to update the game so that more people can enjoy it now, is that game on the galaxy store at the moment? yes, it derrick lee 06 13 is excellent and we're, we're trying to make it better and better, and has been around for a while, but we're trying to improve it all the time sure and we also design themes and watch faces, we're really trying to improve our watch face designs these days so i hope you know it will get bigger and bigger tony morelan 06 29 yeah, i was checking out some of your designs earlier i love the very classic feel of many of your designs derrick lee 06 35 that means a lot coming from you because you're a designer yourself tony morelan 06 39 thank you thank you that's actually how i got my start with samsung for those that don't know how, okay, when i was doing my graphic design gig started designing watch faces selling them on the galaxy store okay, got noticed by a few people at samsung made a few phone calls and before you know it, i was working for samsung teaching how to design watch faces, derrick lee 06 59 then that really means a lot coming from you tony morelan 07 03 polycube, i think it's you said it's about 30 employees derrick lee 07 07 well, 31 exactly and we have 11 designers among those 31 employees okay, tony morelan 07 13 now, are these split between full time employees? and are some contractors, you have derrick lee 07 18 full time employees and contractors altogether? 31 okay, and all of our 11 designers are all full, they work full time tony morelan 07 26 wow okay, that's great so, you know, i know a lot of designers and developers listen to this podcast always looking for opportunities to, you know, look for new work okay, by any chance is polycube looking for new designers, derrick lee 07 39 we are actually planning on recruiting a lot of designers from abroad sure, starting this year, because we want diversity in our group i guess the best way is you can look us up because we have a website but also, you can send an email, the email addresses master at polycube co kr okay and if you send an email anytime we will take a close look at it and yeah, we'll pay attention tony morelan 08 04 that's awesome so what is the web address for polycube? derrick lee 08 07 oh, it's very simple it's www dot polycube co kr got it and that's p o l y c u b e very simple tony morelan 08 16 how long would you say polycube has been designing themes? derrick lee 08 19 paula cube has been designing themes for about six years now because we started on 2016 tony morelan 08 26 so six years, i would guess that you were probably one of the first theme designers to get onto the platform so how did the people that polycube first learn about the opportunity to design themes for samsung and sell them on the galaxy store? derrick lee 08 39 you know, we were just normal galaxy phone users at first and you know, we naturally just got to know about themes on our phones, because we were using our phones, obviously and we kind of had some time to sit down together and talk about it because we thought we could really jump into and make a business out of it tony morelan 08 57 yeah, you know, it's funny, every designer that i have interviewed on the podcast, has said the same story that they were first just a user and you know, saw the opportunity to customize their own phone and they thought well heck, i could do this myself so what about some of the other areas of theme designing? are you guys also selling you know, wallpapers, aods, icon packs, things like that? derrick lee 09 17 yes everything you just you just said right now we do sell wallpapers, icon packs yeah, aods tony morelan 09 25 so last year, we had the 2021 best of galaxy store award show and polycube was the recipient of the best theme collection award yes, we were tell me what that meant to you and your company for winning that award? well, first derrick lee 09 42 of all, of course, we are very grateful for the awards and this award is to us is something that really started such a positive momentum for us because ever since we got the news that we were winning the award, we are feeling you know, we actually feel a positive momentum that started from that board so it's something that started such a positive momentum for us tony morelan 10 03 that's great yeah and you're a truthfully your collection is amazing i do sit on the board of the folks here at samsung, they get to vote on the winners yeah, i was very happy to see you win the well-deserved award for best thing collection oh, in what ways? have you promoted winning the award? derrick lee 10 21 through, you know, the mainstream social media such as youtube, facebook, instagram? yeah, we're everywhere tony morelan 10 27 are you using galaxy store badges to help promote what you do at polycube? derrick lee 10 32 we are always looking for chances to utilize our galaxy badge everywhere we can use it because it's a good system, you know, the galaxy badge, all you have to do is just click on it and then you can take a look at our you know, collection of themes tony morelan 10 43 sure and when it comes to discoverability, what are some of the platform some of the techniques that you guys do, just to help people find polycube out there in the in the world? derrick lee 10 52 we have, we do have links that lead to our facebook and instagram page and all of the descriptions and the themes that we publish tony morelan 10 59 so you had mentioned youtube, and i know that that is one of the best tools that designers are using to help promote their work so i'm assuming then you guys are creating videos derrick lee 11 09 yeah, we are creating videos i don't have the exact number with me right now but i think we have more than 4000 videos tony morelan 11 16 that's great and then you're leveraging those videos also on platforms like instagram yes, we are now you had mentioned facebook, tell me what is the best way for people to find your facebook page? derrick lee 11 26 well, it's www facebook com/friends poly cube tony morelan 11 32 yeah, that's easy i love that polycube friends thank you you know, when i started my company for doing themes and watch faces, i added the word buzz to the end so you could find my instagram axeirbuzz derrick lee 11 44 buzz? buzz? okay, that's a positive vibe to it tony morelan 11 47 so polycube friends, is that pretty much the handle that you'll use across other platforms? so like on instagram? yes, it is yes now you had mentioned 4000 videos, but i know you guys have a lot more when it comes to themes what would you say? your total theme count is right now, derrick lee 12 01 in total, we published 6387 themes tony morelan 12 05 that's crazy what would you say are the total downloads that you have on those 6000 themes? derrick lee 12 10 about 25 million? tony morelan 12 13 that's crazy i was excited when i got to my first million downloads i'm a long ways away from 25 it's very humbling when we think about it with that many themes, i'm sure that you're starting to look at different topics, different areas so you can see really what is resonating with the with the customer base? what are some of those categories that you would say your themes fall under? derrick lee 12 34 um, we're always looking for diversity in our designs, but there are some categories that really resonate with people more than others for example, design skulls, and butterflies and flowers i think those are, you know, some themes that really resonate with people a lot, you know, regardless of country, regardless of gender tony morelan 12 54 yeah, i noticed i saw one of your themes was school, but it was a steampunk school and i love steampunk i love that look derrick lee 13 02 oh, yeah, i think i know which one you're talking about tony morelan 13 05 yeah, that's, that's a great theme so outside of some of those areas, seasonal wise i mean, do you see like, importance to design themes related to holidays or two seasons? derrick lee 13 15 oh, definitely is especially christmas and halloween i think those are two holidays that really, i'm sure really boost the market, if you will i wish there were more designs on like mardi gras since i'm from new orleans yeah, but halloween and christmas are you know, the two holidays? tony morelan 13 32 yeah, i've heard that from many other folks as well great times to be stylizing your phone for sure derrick lee 13 38 yes, yes, it is tony morelan 13 41 so you know polycube, had a lot of success and you know, it's obviously this wasn't overnight, because you've been doing it for a while but tell me was there like one sort of pivotal moment in your history that you were like, oh, my gosh, this really is starting to take off? or was it truthfully, just a gradual growth that you've done over the years? derrick lee 13 57 it was gradual, to a certain extent but when we first started to actually design themes and tried to make a business out of it, the first six months, i don't think we weren't getting a lot of downloads to downloads that we were expecting and, you know, the support that we were expecting, i mean, of course, we had some, you know, very good supporters that, you know, kept us kept us going when we weren't getting the results that we wanted but after six months, we were seeing the growth when it comes to numbers when it comes to you know, this porters and things like that tony morelan 14 29 yeah, i know and speaking with a lot of other designers, i mean, it takes an investment and time before you start to see really any in any bit of return some of that comes to just getting your name out there and it's not just publishing your themes, your watch faces on galaxy store, but it's that additional marketing that you do so, you know, once you put some time into your instagram or into your facebook page yes that's when you start to see the return yes, definitely so you've got a lot of designers on hand yes where are they? designers getting their ideas derrick lee 15 02 first, our designers, you know, just come up with literally a sketch on their notebooks with their pens but also, where we get ideas is from the reviews, ah, our supporters all around the world, they are not just helping by supporting, they are actually really helping out through reviews, because when we read them, they really offer some great ideas and insights tony morelan 15 20 got it so when people are posting comments after they've purchased one of your themes, you guys are really looking at those comments to think like, okay, what could we either, you know, expand on this topic? or maybe the comment is, and this one isn't really for me, and then maybe your team, you'll start to look in other areas? derrick lee 15 35 yeah, well, you know, sometimes the reviews are very specific it's not just i like it, why i don't like it there are a lot of reviews that say, i don't like it, but i would like it if it was this, if it was that those are the reviews that really give us really good ideas that's great tony morelan 15 50 to hear so a lot of companies leverage stock photography, when it comes to creating their designs, yes which i know can kind of be a hot topic, because truthfully, you know, there's licensing that that gets involved whenever you're using stock imagery and also the reality that that anybody can go and, you know, purchase a certain stock image and build a theme out of it but what are you guys doing to help set yourself apart when you are leveraging stock imagery, derrick lee 16 18 of course, there are a lot of good sources out there that can be utilized and be modified, integrate themes but as you just said, there are some, some issues when it comes to just, you know, using those stock imagery and turning them into themes, right so we have a whole team that really looks into the licensing parts to prevent any legal issues, if you will and we have designers that really keep that in mind that you just don't take the stock imagery, and just copy that and just put it in your phone and that doesn't really make a theme, you know, we go through plenty modifying and we add ideas to it and, you know, all of a sudden, it's not just that stock imagery, it's something totally different tony morelan 16 57 that's great i've actually spoken with many other theme designers on the podcast, and they've all said the same thing that, you know, they leverage the use of stock imagery, but they take those images and build them into an image that is their own that is something that is unique yes, yes so you had mentioned pencil sketching, so tell me what the workflow is i mean, do you are your designers actually traditionally grabbing pencil and paper and, and starting to sketch some of their concepts? derrick lee 17 23 yeah, it's 2022 but that's, that's still where it starts, you know, first, you know, they literally come up with a sketch with a pen or a pencil and then we actually have a meeting, we look at all those sketches, and we discuss which ones we will actually go for yeah, once the designs materialize, we sit down again, and discuss whether there's room for improvement, or revising and then after that, we publish them in hope that our supporters enjoy them tony morelan 17 48 that is excellent to hear you know, in my experience, as a designer, i would often tell other designers that yes, that is the first step is to grab pencil and paper because you don't get caught up in all the tools that you know, software allows you to do or limits you to do you don't get caught up in colors or specific, you know, shapes that may be in the way you truthfully see the skeleton of the design and if that skeleton works, then you know, it's something that's worth pursuing yeah, yeah great to hear that the that you guys take that approach to design? so you know, the process of starting with sketch and then going through meetings and developing the designs all the way to publishing? how long do you think that typically takes your team to do? derrick lee 18 31 um, from just a sketch on a notebook? to an actual theme? i would say one theme takes four days, maybe five? tony morelan 18 39 i would say that's a pretty quick, aggressive timeline sometimes it would take me weeks to do derrick lee 18 45 yeah, because we don't want you know, we don't want to keep our supporters waiting so sure you work hard tony morelan 18 50 what applications are you using when you are doing your design work? adobe derrick lee 18 55 photoshop, adobe illustrator and after effect, oh, tony morelan 18 58 so after effects for doing videos, okay yeah are you doing any animated like wallpapers where you're leveraging motion graphics? derrick lee 19 06 yeah, we actually have a whole there's a team that really focuses on only the video parts, okay, the animation parts that really help out if another team comes up with the sketch shirt and you know, the basis then, you know, there is another whole team designing team that really helps out with sophisticated designing when it comes to the videos tony morelan 19 25 okay, okay that's great so i know a lot of designers utilize the strategy of free when it comes to marketing, their apps so tell me about your experience well, what's your strategy when it comes to free themes free? watch faces? derrick lee 19 42 yeah, we are offering free themes every week, and we promote them every friday and i think our supporters deserve free themes you know, sure, every once in a while and you know, if you check out our facebook and instagram page, you'll see that there are actually quite a lot of opportunities to get some awesome themes for free yeah, tony morelan 19 59 i think that i think that that's great i know what i teach typically is that it's nice to offer up a free app a free design but you don't want to inundate the market with too many of your free yeah, themes free watch faces because then everyone's going to expect that there's always going to be some good free stuff out there so use it as a way to encourage the community to get to try out your stuff, your themes, and then that way, they're more inclined and more trustworthy to actually put money behind some of their purchases and buy some of your items, derrick lee 20 30 especially for people who never, you know, use the theme before, but you want them to really get to know what a theme is, you know, why theme is exciting to have a theme on your phone, tony morelan 20 40 let's talk about some of the challenges because i know you know; this whole market is not as easy as just creating something nice and posting it so what are some of the challenges that you face when it comes to designing themes and marketing those themes? derrick lee 20 55 we hope that our themes satisfy as many people as possible globally, because themes are global but sometimes figuring out how the taste like differs depending on cultures and countries, it's not it's not the easiest thing to do you know, we come up with one design, but people here like it, but people there don't we are greedy, if you will, in a positive way we want to satisfy as many people as possible globally so that's not so that would be a challenge tony morelan 21 21 of course yeah no, that is that is and i know that a lot of times designers are leveraging the ability to have localization for their app so this is where you know, you're selling the theme globally but you can say, you know, in the us market, this is what the description looks like in you know, a market in asia, this is what the description looks like or in germany yes, i know that, you know, designers do see a nice increase in revenue when they are utilizing localization so i'm assuming are you guys using that feature as derrick lee 21 49 well? yes, we are the descriptions look all different, depending on the country, the language, you had mentioned tony morelan 21 55 covid earlier? obviously, we still are in the middle of covid how has that impacted polycube, derrick lee 22 01 of course, covid-19 is very negative but for us, it has done nothing but booster motivation, because covid-19 stopped people from expressing themselves through their faces by making them wear masks right so sure, we were more motivated to help to help people express themselves on their phones instead, through well designed customized themes tony morelan 22 21 you know, that was nice to hear it's something i hadn't really thought about that yes, the face is being covered by your mask so how else can you express? you know, your look your style? yeah and that's where people are customizing their phones, obviously, to represent themselves? derrick lee 22 37 yeah, because nowadays, i think your phone is your second face, for sure it shows who you are tony morelan 22 42 so what is in the future for public cube, derrick lee 22 45 you know, we are actually planning to come up with some very innovative designs that have never been applied to themes before you know, if you look at themes, of course, there is diversity, you know, you can see all sorts of designs in the themes market but sometimes, you know, you run into some designs that make you think that oh, this is nice, but it might not look well on themes, but we are trying to break that wall and come up with some very innovative designs that have never been applied to teams before nice tony morelan 23 15 i'm really looking forward to seeing what polycube produces out of that now, you had mentioned diversity and i love everything you've been talking about, like when it comes to diversity with your designs and the global reach for that tell me specifically about polycube, what are you guys doing when it comes to diversity and inclusion? derrick lee 23 34 we are actually planning on recruiting designers from abroad it doesn't matter where you're from sure, you can be from united states you can be canada, you can be from japan, wherever because we don't want to end up stuck in one way of thinking when it comes to designing and promoting yeah, and i think that's, that could be one of the best ways to stop that from happening tony morelan 23 55 sure because i know just culturally wise you know, people from specific cultures just have a way of approaching their designs so to hear that you are looking for designers, you know from other cultures, i think is a great way to ensure that that you really are offering up great work globally yeah, thank you so you know there are a lot of other theme designers out there a lot of companies have had success is there one company that really comes to mind when you think of a theme designer that you really like derrick lee 24 27 i think that a company called echo visuals yes yeah if you check out their themes they're excellent and we took a lot of inspiration from them tony morelan 24 35 yeah no i've heard that from many designers echo visuals does amazing work and i know that they are very active on facebook and other social media platforms really doing a lot of stuff around marketing so just another good example of how a company does more than just create their things but they have to do all that work behind the marketing yeah so i know you sound very passionate when it comes to your work at polycube but what is you do outside of polycube to have a little fun well, derrick lee 25 04 i obviously love themes, but i don't think about them 24/7 i need some time off to you know, re-energize myself i trained jujitsu do yeah, i actually had a dream of becoming a commentator in mixed martial arts really? yeah, um, you know, that never came to fruition, obviously, but i'm still a fan of the sport i really follow it and it doesn't just help physically it helps mentally which ultimately leads to better productivity tony morelan 25 32 i love hearing that aspect of it you know, for me, i do a lot of cycling now okay and it's not so much for the exercise part of it it's the mental side of getting out eating away being unplugged, either taking in the sights or enjoying the, you know, the fresh air derrick lee 25 49 yeah, i totally understand one last tony morelan 25 50 question for you derrick lee 25 51 okay tony morelan 25 53 what is your favorite donut? derrick lee 25 55 my favorite donut? um well, i always go with the classics chocolate donut scores yeah, well, not just with donuts, like with i think that's just how i am with anything i always go with the classic like hamburgers like everything i always like the original yeah and actually, do you know what being aids are? no, i don't know it's, it's kind of i wouldn't call it a donut but some people do call it call them donuts yeah, it's something that you can have when you come to new orleans oh, i'll tony morelan 26 25 have to give that a try is there anything unique to korea when it comes to donuts? derrick lee 26 30 i'll get to korea when anything comes to korea like what when pizza first came to korea? sure you know, it was a long time but korea like really likes you know, making 1000 flavors of pizzas 1000 flavors of hamburgers 1000 flavors of everything yeah ice creams yeah so yeah, i think that could be one thing that you can enjoy if you know people from abroad, travel korea, you know, there are things that you wouldn't have imagined tony morelan 26 58 how funny that you say that so when i was in korea, i remember going to a restaurant that it was strictly cakes it was like you said it was like 1000 different cakes and you would go in there and walk through all the showcases of everything and then you would pick your slice and it was amazing derrick lee 27 15 yeah, i can't even imagine like what flavors it has it was a tony morelan 27 19 dream but hey, derrick, i really appreciate you taking the time it was great to chat with you i'm looking forward to 2022 to see what more polycube does when it comes to creating beautiful designs? no okay, thank you closing 27 33 looking to start creating for samsung, download the latest tools to code your next app, or get software for designing apps without coding at all sell your apps to the world on the samsung galaxy store check out developer samsung com today and start your journey with samsung tony morelan 27 48 the samsung developers podcast is hosted by tony morelan and produced by jeanne hsu
tutorials mobile
bloggalaxy store provides a platform where developers can sell their apps to galaxy device users. samsung in-app purchase (iap) is a payment service which allows you to sell your app's in-app items that are distributed through galaxy store. if you want to make any changes to your app's in-app items, then you have to update your app using galaxy store seller portal. however, if you want the changes to be reflected immediately within the content, even when the content is in the for sale state, then the galaxy store developer api is the solution for you. the galaxy store developer api provides programmatic access to the same types of functionality provided by the galaxy store seller portal. the iap publish api is a part of the galaxy store developer api, a set of server-to-server apis that allows you to manage in-app items. this api is used to view, register, modify, and remove samsung iap items. you can find the curl commands for this api in the iap publish api guide. in this blog article, i am going to demonstrate how to implement the iap publish api using python. let's get started! get started in this example, you should already know about the in-app purchase sdk and how to create items in seller portal. to learn how to sell in-app items through galaxy store, please read the in-app purchase programming guide. the iap publish api supports crud operations for in-app items: create, read, update, and delete. the available http methods for these operations are post, get, put, patch, and delete, respectively. later, i explain which http method is used for which iap publish api. since i implement this api in python, i need to install python on my pc. the rest of this blog assumes you have already done this. prerequisites: seller account: create a seller account in galaxy store seller portal using the galaxy store seller portal user guide. service account id: get the service account id from seller portal. you can find the details here. authorization: get the access token from the galaxy store authentication server using the accesstoken api. check out this blog to learn about creating an access token using python. iap sdk integrated app: the iap sdk must be integrated into the app. all binaries registered in the content must support iap. connection with the content of the in-app purchase tab area of seller portal: to create this connection, you must either initially distribute your content using the content publish api or the content must be in the for sale state in seller portal. the following headers are required to call any api, just like any other galaxy store developer api. attribute type description content-type string application/json authorization string bearer <your-access-token> service-account-id header your service account id the iap publish api provides a total of six apis to manage in-app items. after fulfilling the above requirements, i am ready to implement these apis in python. view item list i can view the list of item information within a scope. while sending this request, i have to specify the number of pages of content to return and the number of items to be returned for a page. since this is a rest api, i have to make an http request. to make an http request to a specified url, i need the requests library. so, first i have to import the library in our script. i also import the json library to see the response in json format. # importing the requests library import requests # importing the json library import json as mentioned earlier, i need to send some data as the header in the request. first i set these values before creating the header. then i create a dictionary using the syntax {key: value}. here, the key is the attribute name and the value is the header content. access_token = "<access_token>" authorization = "bearer " + access_token service_account_id = "<your-service-account-id>" # header to be sent to the api headers= { 'authorization': authorization, 'content-type': 'application/json', 'service-account-id': service_account_id } the get method is used to read or retrieve data from the given server using a given url. it doesn't change any data. therefore, i use an http get request for this api. in the get request, the package name of an app, the number of pages, and the number of items are required. as an example, i set the number of pages as 1 and the number of items as 20. packagename = "<package-name-of-your-app>" page = '1' size = '20' now, i define the url and send the get request. # defining the api endpoint item_list = 'https://devapi.samsungapps.com/iap/v6/applications/' + packagename + '/items?page=' + page + '&size=' + size payload={} try: response = requests.get(item_list, headers=headers,data=payload) print(response.status_code) pretty_json = json.loads(response.text) print (json.dumps(pretty_json, indent=2)) except exception as e: print(str(e)) figure 1: response of the view item list api view individual item i use this api to view the detailed information of one item. the item id is a required parameter for this api, being a unique identifier of an in-app item registered in seller portal. the python script for this api is similar to the view item list api; i just need to change the request url. itemname = '<item-id-of-specific-package-id>' # defining the api endpoint individual_item = 'https://devapi.samsungapps.com/iap/v6/applications/' + packagename + '/items/' + itemname try: response = requests.get(individual_item, headers=headers,data=payload) print(response.status_code) pretty_json = json.loads(response.text) print (json.dumps(pretty_json, indent=2)) except exception as e: print(str(e)) figure 2: response of the view individual item api create item this api allows you to create a new item, which can be either consumable or non-consumable. to learn more about the item types, visit the iap programming guide. to register an item, you are required to set nine parameters as the data in an http post request. the post method is used for creating a new resource. first, let's go through an example where i create a new item called 'one_gallon_gas'. i set a title of this item and a description which explains the purpose of this item. to be able to purchase the item multiple times, i set its type as consumable. i set the 'phonebillstatus' attribute as 'true' so that the user can pay by an automatic payment on their phone bill. i set the item status as 'published' to list it for sale in galaxy store. finally, i set the usd price, local price, country id, and currency values. next, i create a dictionary to hold the data which is sent to the api. i need to send serialized data in a form of a string and thus json.dumps is necessary to perform the serialization. # data to be sent payload = json.dumps({ "id": "one_gallon_gas", "description": "fuel for driving game", "status": "published", "type": "consumable", "usdprice": 0.99, "title": " 1 gallon gas", "prices": [ { "countryid": "nga", "currency": "ngn", "localprice": "400.000" }, { "countryid": "per", "currency": "pen", "localprice": "3.900" }, { "countryid": "swe", "currency": "sek", "localprice": "11.000" } ] }) finally, i define the url and send the post request. new_item = "https://devapi.samsungapps.com/iap/v6/applications/" + packagename + "/items" try: response = requests.post(new_item, headers=headers,data=payload) print(response.status_code) #print(response.text) pretty_json = json.loads(response.text) print (json.dumps(pretty_json, indent=2)) except exception as e: print(str(e)) modify item this api allows you to modify an in-app item without updating the app. the item id can't be changed using this api. it is recommended to use the response from the view individual item api to create the input required for this request. in this example, i modify the title and description of an item which i created in the previous section. i also modify the usd price, local price, country id, and currency values. i create a dictionary to hold the data which is sent to the api, as was done in the previous section. # data to be sent payload = json.dumps({ "id": "one_gallon_gas", "title": "3 gallon gas", "description": "modify fuel for driving game fix", "type": "consumable", "status": "published", "itempaymentmethod": { "phonebillstatus": true }, "usdprice": 1, "prices": [ { "countryid": "kor", "currency": "krw", "localprice": "900" }, { "countryid": "usa", "currency": "usd", "localprice": "1" } ] }) since this request is for modification, i send it using a put request, which is a method for updating the entire resource. so, i define the url and send the http request. # defining the api endpoint modify_item = "https://devapi.samsungapps.com/iap/v6/applications/" + packagename + "/items" try: response = requests.put(modify_item, headers=headers,data=payload) print(response.status_code) pretty_json = json.loads(response.text) print (json.dumps(pretty_json, indent=2)) except exception as e: print(str(e)) partial item modification this api is used to modify the title, countryid, or localprice of an in-app item. i can't change the item id using this api. this api only does a partial update unlike the modify item api, so an http patch request is used. the patch request requires only those fields which are to be modified. it doesn't change the other fields of the resource, in contrast to the put request which changes the entire resource. in this example, i modify only the title of the 'one_gallon_gas' item. the python script remains the same as in the previous section. # data to be sent to the api payload = json.dumps({ "id": "one_gallon_gas ", "title": "5 gallon gas" }) # defining the api endpoint partial_modify_item = "https://devapi.samsungapps.com/iap/v6/applications/" + packagename + "/items" try: response = requests.patch(partial_modify_item, headers=headers,data=payload) print(response.status_code) pretty_json = json.loads(response.text) print (json.dumps(pretty_json, indent=2)) except exception as e: print(str(e)) remove item this api allows us to remove an in-app item. here, the item id is the required field in the request url. i add the item id in the request url and send the http delete request. the delete method is used to request the server to delete a resource specified by the given url. itemname = "one_gallon_gas" # defining the api endpoint remove_item = "https://devapi.samsungapps.com/iap/v6/applications/" + packagename + "/items/" + itemname payload = {} try: response = requests.delete(remove_item, headers=headers,data=payload) print(response.status_code) pretty_json = json.loads(response.text) print (json.dumps(pretty_json, indent=2)) except exception as e: print(str(e)) figure 3: response of the remove item api conclusion other than selling paid apps, in-app purchases are the most common and popular way to monetize an app. you can integrate the samsung in-app sdk in your app to generate profit and use the iap publish api to automate item-related tasks. this is the last blog article of this series. i hope you've found this article helpful. you can check out the other blogs about the galaxy store developer api below. blog articles in this series how to create an access token for the galaxy store developer api using python: learn how to create an access token using the galaxy store developer api and python. how to get statistics: galaxy store statistics (gss) is a tool that provides information about your sales, revenue, ratings, and much more, which helps you to make more effective business decisions. you can learn how to get statistical data from your apps using python. how to manage content: manage your content in galaxy store by using the content publish api. in an app production system, managing content is a frequent task. this blog covers the implementation of this api using python to automate your app distribution system.
Jakia Sultana
success story marketplace, design, galaxy watch
blogwe continue to celebrate the top performing apps in creativity, quality, design, and innovation, as we interview winners of our best of galaxy store awards. next in our blog series, we feature matteo dini. matteo dini, founder and ceo of "matteo dini md", shares with us how he manages to maintain a high level of quality and craftsmanship with his watch face designs, many of which boast five star ratings, the importance of developing a recognizable brand, and how the galaxy store badge has played an integral role in his marketing strategy how did you first get into designing watch faces? at the end of 2016, i bought a samsung gear s3 watch, and that’s when i started designing watch faces. at first, it was just for fun, something i did to explore the easily approachable software “galaxy watch designer” (now “galaxy watch studio"). in the spring of 2017, i started publishing some of my watch faces on the galaxy store, and i realized that people were really interested in them, therefore i decided to continue publishing my designs. as one of our more seasoned and successful designers, can you share some key features of a good watch face design? in my opinion, a good watch face design has to be easily readable. it should also feature well thought out colors and shades that match together, and the layouts shouldn’t be too complex. this is the key to attracting a wider range of customers. with your broad experience as a watch face designer, do you still experience technical or design hurdles when designing a watch face? there really is no limit to improvement when it comes to graphic design. the real obstacle to overcome is the lack of new ideas. there should always be new inspirations about how to improve the design aspect of the watch faces. there have been, and still are moments, when i find myself stuck, even for several whole days, before getting to a final result. after creating several watch faces and crossing paths with so many great creations from other designers, pushing the creative limit further can be really hard, especially on a 360x360 screen. however, when i finally find the right path that can lead me to a new good project, i feel so enthusiastic and passionate about my job that it is definitely worth it. where the technical side is concerned, hopefully i’ll be able to add some new features that leverage samsung’s hardware-and-software evolutions. your brand “matteo dini md” is well known in the watch face community. how important is creating your own brand? having a well-recognizable brand is the key to being well known. your brand identifies your work, that is undeniable. finding the perfect name for my brand was not the easiest choice to make. when i started publishing my work on the galaxy store i was really indecisive about leaving my real name-surname. i even thought of inventing a new name from scratch, but then i decided to go for matteo dini, since it gave me the impression of a more personal brand, and i think it worked, or at least i hope so. my brand “matteo dini md” is a legally registered brand in the us and in europe. how do you come up with new designs to support the continued growth and evolution of your brand? ideas can come from seasons, from highly- or poorly-inspired periods, and obviously from market research. “there are no rules” is the only rule. sometimes a design can sprout from a tiny detail that we come to notice in a random object, not necessarily a watch. in a certain way it’s kind of a meditation process - it’s mind work. at the moment, there are two of us designing watch faces for “matteo dini md”, my brother-in-law luca canaletti and i. together we try to imagine how the product could potentially look, and we then sketch some drafts on paper or directly on the software. your designs are highly rated on the galaxy store which speaks to the quality and craftsmanship of your work. how do you achieve such great quality with your designs? to be honest, when it comes to my work i’m a very strict critic. i always detect some enormous flaws, and i hardly find myself truly and completely satisfied with my work. apart from that, the thing luca and i focus on is quality. to achieve that, we try to include as many details as possible and to test our watch faces for several days, in different light and weather conditions, in order to get a good result. but, as i was saying before, there is no limit to improvement, and we learn something new every day. it’s evident that you understand the market and what users want. how much does user feedback factor into the designs you create? are there other factors? i pay so much attention to user feedback. i obviously cannot design something that works for each of them, however i tend to use their suggestions to improve my watch faces and to meet their needs and tastes. being on the galaxy store has provided me with knowledge about people’s taste, and i’m constantly trying to keep several watch faces on the store that can satisfy a wide range of consumers, both young people and adults. i also keep an eye on market trends and all the cutting-edge news that comes out. you employ various marketing strategies, including third-party watch face reviews from jibberjab, social media promotion, free trials, contests, and giveaways. how important is marketing your designs to becoming a successful seller? what tips can you share? the galaxy store is introducing more and more new content every day, so it is really fundamental to promote one’s projects on other marketing channels as well. this is why i employ all those things you mentioned, in order to drive awareness and visibility of my brand on the galaxy store. the paramount thing to do is to create a well-recognizable brand identity, in order to be easily found on the store. i created my brand’s accounts on all the most important social media platforms in order to gain followers and to have a community to directly communicate with. this is fundamental, it’s the starting point for any marketing strategy. how does the galaxy store badge support your marketing strategy? galaxy store badge is, without a doubt, an excellent tool. it generates customized short urls, it can monitor all the clicks you get (which is important for statistics and promotions), and it also gives you the opportunity to use an official samsung official logo, which can be really helpful when it comes to marketing strategies. how has the samsung developer program supported your journey and growth as a watch face designer? the sdp team has always been very helpful and professional, promptly answering my request for technical assistance and solving my problems. they always keep us up-to-date about samsung news and share detailed studies about technical topics. they really support our work. it is also important to follow the dedicated forum. the forum allows us to ask questions and get answers from samsung and the developer community, i was very pleased to meet the team in person, twice actually, at the 2018 and 2019 editions of the samsung developer conference. thank you for the question; since you mentioned it, i really want to publicly thank the sdp team for their amazing work. as the winner of samsung best of galaxy store awards 2019 for “best watch designer (big brand)”, what advice do you have for new designers looking to create a successful watch face business? besides being a watch face designer, i’m a technology enthusiast and my first step was studying the product (samsung gear watch / galaxy watch / galaxy watch active), wearing it 24/7 for several months. i got the full user experience, before becoming a designer. passion and patience are fundamental, new designers shouldn’t get discouraged if the big results don’t come right away. they should keep focusing on finding their style and on trying to improve it day after day. the results will come eventually. what is next for matteo dini md watch faces? at the moment we are focusing on watch face development and we are trying to improve ourselves in order to be ready when samsung shares its plans on any new products or product updates. we want to thank matteo for sharing compelling insights on watch face design and tips on becoming a successful designer with a recognizable brand. be sure to check out matteo dini md’s watch face portfolio, and download your favorite in the galaxy store. 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. designing a watch face for galaxy watch running wear os powered by samsung? check out this code lab about creating a watch face using tag expressions in watch face studio.
Learn Developers Podcast
docseason 2, episode 1 previous episode | episode index | next episode this is a transcript of one episode of the samsung developers podcast, hosted by and produced by tony morelan a listing of all podcast transcripts can be found here host tony morelan senior developer evangelist, samsung developers instagram - twitter - linkedin guest drazen stojcic urarity urarity links urarity facebook - facebook com/urarity watchfaces/ urarity instagram - instagram com/urarity watchfaces urarity twitter - twitter com/uraritywatch urarity youtube - youtube com/user/romulicstojcic drazen stojcic linkedin - linkedin com/in/drazen-stojcic drazen is the 2020 galaxy store award winner for best watch face collection not only do we talk about his rise to becoming one of the top watch face sellers on galaxy store, but also his fascinating career path and it all started when he became an award-wining author, after writing his first novel at the age of 16 listen download this episode topics covered galaxy watch studio for tizen galaxy store galaxy store badges social media photography videography animations sdc19 best of galaxy store awards transcript note transcripts are provided by an automated service and reviewed by the samsung developers web team inaccuracies from the transcription process do occur, so please refer to the audio if you are in doubt about the transcript tony morelan 00 01 hey, i'm tony morelan and this is pow!, the samsung developers podcast where we chat with innovators using samsung technologies, award winning app developers and designers, as well as insiders working on the latest samsung tools welcome to season two, episode one on today's show, i interviewed drazen stojcic, the super successful watch face designer behind the brand, urarity, drazen is the 2020 best of galaxy store award winner for best watch face collection not only do we talk about his rise to becoming one of the top watch face sellers on galaxy store, but also this fascinating career path and it all started when he became an award-winning author after writing his first novel at the age of 16 enjoy tony morelan 00 48 so i have to start by saying i am extremely excited to kick off the new season of the podcast with one of my absolute favorite designers drazen from urarity drazen stojcic 01 01 hi hi, tony thank you for having me tony morelan 01 04 yeah, excellent i'm so excited to have you on the show let me first start by asking who is drazen stojcic? drazen stojcic 01 13 so well, i guess i could say the basics you know, i'm 38 years old i'm from europe, from croatia, and married and i've spent last four years designing watch faces for samsung devices and after a lifelong career in all sorts of media related stuff, i found myself in something that i really enjoy doing and it turned out i was pretty good at it and so now four years later, i'm i've received the award for the best watch face collection and is it's been like, you know, a crown after all that hard work and, and time and effort put into it tony morelan 02 07 so you're saying that if you started about four years ago, doing watch faces, that means you pretty much started at the beginning of this whole opportunity for designers to create watch faces for samsung so tell me like, how did you first learn about samsung wearables and, and then ultimately designing drazen stojcic 02 23 so i think it's a similar story with most early developers, you know, we are all a bit of gadget freaks and so i've had samsung, the very first samsung smartwatch was because i had a samsung phone as well and so when samsung made their first wearable, i was like all over it, you can customize it, you can do anything, it was just a device that could like measure your heart rate and stare at some very basic stuff, and had a camera on it correct and it had a camera on the wrist yes and you know, at that time, my whole life was around photography and so having, you know, a camera and a wristband that was like, awesome, you know, i just, i loved it and so when the new versions came out, obviously i was, i was upgrading and at some point, a friend of mine, who was my work colleague, actually mentioned, you know, you're pretty good at design and you all you have all this previous experience with i had some experience with designing mobile apps, for like 15 years ago, for before even android existed, you know, it was like, the very first touchscreen phones that showed up and i teamed up with a with a programmer, and we made a mobile keyboard and so i was doing the graphics and the design, and he was programming and so he knew all this because we talked about it and he said, you know, you have to watch you have the knowledge, why don't you try, you know, there's this cool software where you can just you don't need to know programming because i'm not a programmer and there's this cool software, you can download it and you can like make your own designs for your watch and so i downloaded the galaxy watch designer, and now it's a galaxy watch studio so and i loved it i loved it i within a week i had like, watch face ready, and i want to publish it yes it just started from that just you know, pure luck tony morelan 04 51 yeah, that's very similar to how i got my start i mean that you know, i attended this event at samsung where they you know, told everybody about gear watch designer yeah and came home that night and was so excited to be able to, in a sense, do programming without any coding so i could use all my graphic design skills, but yet create this, you know, interactive watch phase i mean, it's just, yeah, i bought in real quickly to it so i know that you've had quite the journey to get to the point where you are now as a watch face, designers doing lots of different, you know, jobs, but all within the same sort of family of everything related around media well, yeah so tell me how you got your start indesign drazen stojcic 05 37 so i guess i've always liked you know, even as a kid, i had like, these artistic tendencies so i would like draw a lot and i would paint and i would write and do all sorts of stuff, you know and so my first experiences were basically with computers, you know, and those were computers where you didn't even have an os on them i come from croatia, which went through an armed conflict war in the 90s and i was just a kid at that time, but after the war, my elementary school, got to the nation in, in computers, so none of the teachers had any experience with that and us kids obviously, never even seen a computer at that point and so i think it was like a un donation or some sort of a charity program and so yeah, and so they set up a classroom for us, that was like 15, or 20 of computers, and a teacher from arts and crafts was assigned to do something useful with those computers and he was an older gentleman who didn't know english, who didn't know it was just the oh, you figured this out and so he asked kids in the school, it was anybody interested and i always was fascinated by technology i think it was like four kids from the whole school that signed up for this that was like, first contact with, with computers and everything i did later on was, in some sense connected to it you know, i when i got my first home computer, i was just like, drawing stuff, all the all the time, i was just like learning software, sketching, stuff, making, i don't know, school, newspapers, stuff like that, you know, everything was, you know, one thing and then the next thing and so, after high school, i was into music at that time and so i ended up being on local radio station yeah and so because the station was part of like, a network that had newspaper and radio and, and a tv station, i spent next couple of years moving from one to the next and so i moved from the radio where i worked as a as a dj and tony morelan 08 07 so a dj, spinning music i mean, yeah, drazen stojcic 08 10 yeah that's great yeah, i actually really did some, like, nightclubs stuff so i would work during the day on the radio station and at night, i will be working like cocktail bars and really, tony morelan 08 22 dj drazen drazen stojcic 08 26 yeah, and so and, you know, this is all time before internet so there's no internet at this point and so obviously, being in a radio station gets you new music, and then you can, you know, use that music to put on parties and so, yeah, so it's like, using one job to make money on the side and so, and then i moved to the newspapers where i worked as a as a journalist, because i always enjoyed writing tony morelan 08 58 and i think i heard that you actually received an award when you were much younger for you you actually wrote, yeah, drazen stojcic 09 07 yeah, i wrote a novel when i was 16, actually and i, when i was 17, i got two major prizes for best first novel in croatia that's great from like, really a respected, you know, people in croatia who are basically in our top of the crops and so that was also a push that led me into journalism eventually, right and, and during my journalist days, i had a situation where we were a photographer that was supposed to cover an event with me, he couldn't make it and there was no one else and because at that time, people from my newspapers already knew that i was like into computers, and i have a like, always chasing something and so my editor said, you know, we just got these funny new digital cameras, maybe you could pick one up and just take two shots, it'll be fine for the print, you know, just try to keep people in frame, you know, it was and so that was my first experience with digital photography and i was instantly in love with that and so, actually, that day, i would always ask that i take my own shots and basically, i would, i would take photos of what i'm supposed to do, and i wouldn't, then i would spend the rest of the day shooting like, anything i could find and i would, i would intentionally only leave some of the photos that i thought were good i would leave them on the cart for photo editors so they can see that tony morelan 10 55 they can see your work that's great yeah, drazen stojcic 10 56 exactly and so after a while, i got a call from the from the photography editor and it was all like this transitional period where they were moving away from film and classic film cameras into digital yes and so he said, you know, are you? are you leaving these photos on the cards? because i kind of liked them? and i said, yeah, well, you know, i liked this thing you know, this digital photography seems to suit me and within a month, i wasn't working as a journalist anymore i just really, yeah, i just moved on to photography overnight wow and so my photography work, then, you know, i learned a lot of stuff from the, from the more experienced photographers there but i was also able to get on this train really early of, of this digital photography that was just coming in a lot of older photographers had a problem with this, they couldn't adapt so well so, so quickly, you know, it required working with software and all of that stuff that i basically was used to and so a few years later, i, i partnered up with a very senior and well-respected photographer here in my town and he had a big production company that was basically multimedia we had like a video cruise, we had cgi designers, we had sound crews, we had, you know, full multimedia production along with design and so i did basically the same thing i did before i did here so i would move from one to next position and i just kind of learned along the way, too, i have no formal education in either of these things yeah so it's all just learning from other people and learning on your own trying to, you know, get something new, i had a desire to express myself and so it was always something media related, and now share all of these things from the past and especially i don't know, there's a lot of, in my past a lot of work with marketing so working with marketing companies with like, production teams, and you'll learn what clients want, how they think how all of this kind of came together and lead into, into urarity tony morelan 13 34 yes, yeah, that's, that's, it's amazing i mean, i have to say, i'm extremely surprised to hear that you say that you don't have formal training yeah, but hearing about the experiences, all of the years, and all these different areas that you've, you know, had an opportunity to work in, it really shows because i think that's where you urarity stands out from many of the other watch face developers, it's all of the other assets that are required to be successful you know, when you see your videos in your photography, you can tell that someone with excellent expertise is putting this together, because it's not just a computer rendition or a 3d model that's rotating i mean, you actually are taking a camera on a dolly and doing rotation with it and to me, that's what really stands out because that's pretty unique to see from a from a developer, you know, marketing on samsung platform it gives it such a realness, you know, where you actually see the product and it gives confidence when you're thinking about it, should i make a purchase? so i think that is probably one of the biggest factors for your success when i see the work that you do i agree and that's basically the whole logic i started doing this right from the beginning because drazen stojcic 14 51 i kind of knew that it wasn't enough to make just the watch face itself look good so everything else to look at the same level, yeah, so, and obviously over the couple of last years i've, i've, i've advanced further and my, my designs have become better and my marketing materials as well but the core idea is still the same, you know, if you make, you can make the best watch face ever yeah, but if your presentations is not good, it's just the customers won't get it tony morelan 15 30 exactly so i understand that you've already is not just draws in that you actually have partnered with someone who has expertise in, in these areas of like social media and marketing and whatnot, that's helping you so tell me a little bit about the other person that is involved with, with the urarity success drazen stojcic 15 51 so at first, it was just me and you know, for probably first two years, i did all of this stuff on my own but then, as i advanced and as i got more and more customers and more and more of this production behind this, i realized that i needed help and my brothers do dumb, ugly he just came fresh out of college that had marketing as one of the major classes in it and so he knew about my watch faces, and he would frequently helped me he and i came up with the name the urarity tony morelan 16 35 yeah, so tell me that tell me the history that you came up with that name drazen stojcic 16 38 yeah so because my brother has this knack, for, for coming up with funny names for stuff and so we would frequently do that for like, all sorts of statements will make up names for the products or for name for names for companies or find, you know, funny word plays and stuff like that, when i figured out that i needed the brand, and i couldn't just, you know, be just me, it needed a brand name and so we're just talking about this and so a lot of people think that your urarity is basically you and urarity, which it is but the main idea behind it is basically because the first four letters of the word urarity actually mean watchmaker in creation tony morelan 17 29 that is great drazen stojcic 17 31 yeah, so we started from that, you know, it was like, because even today, you could see like these shops around the town that had like this art so it was just, you know, we're just making fun and your charity just popped up somewhere, because i knew it would work well in english although it is a bit of a tongue twister i still liked how it sounded and how it looked and i like this double meaning because it worked in, in our language as well and so he and i came up with this name and then over time, he just kind of started helping me more and more and at some point, i said, okay, now, i think you could probably handle a lot of this stuff better than me, because you actually do have an education process and so my brother has been helping me ever since he's basically the whole marketing and customer support and all of that is his work so i'm purely doing the creative stuff tony morelan 18 39 that's great that's great yeah, it gives you an opportunity to really focus on your expertise and, and allow him to focus on his expertise so is your urarity, pretty much your full-time job drazen stojcic 18 51 yeah, it has become over time for a long period i also did a lot of side jobs, but the pandemic changed a lot of that because this is a job that you can do from the comfort and safety of your home yes, and my side jobs that were mostly photography related basically, there weren't there anymore when all of this started and so for me, it was like the perfect the perfect job to do during these times where you had to stay at home a lot either i've actually used the opportunity to do a lot of the stuff that i would previously maybe put off so i did a lot of housekeeping you know in the store, cleaned up the descriptions and all that stuff that usually just you know, you don't have enough time to do all of that and i kind of fine tune to everything that we did so for us it's been a positive effect in that sense tony morelan 20 00 yeah, no, that's, that's, that's great i mean, there has been a lot of challenges during this past year for many people on all different areas, i will say you are not the first person who has said that, you know, this opportunity that samsung has provided to developers, you know, really the, you know, indie designers like yourself, you can still continue to work from your job where it is safe so that's, that's great absolutely and i mean, even before this, having the opportunity to work from home has been quite a refreshing change for me, because a lot of the work i did before, involved, a lot of traveling a lot of staying out of home, which is, you know, it's great fun for a drazen stojcic 20 42 while but then as you get older and you need, you get a wife and a house and all of a dog and all of that, of course, you prefer staying at home, it's not as a lot of people are thinking i don't want to stay at home no, i'm fine i'm not complaining tony morelan 21 05 so yeah, back when we were allowed to travel, that's actually when i first met you, because you came out to san jose and attended our conference sdc 19 so it was great to actually meet you in person, i was very aware of your work prior to that so when i actually got to put a face to the to the brand, you were already that was a great moment for me, i was honored to meet you so tell me about that what was that experience like for you to come out to san jose and get to actually see the samsung people in person and also be at the conference? drazen stojcic 21 35 i think it was probably the biggest milestone for me, it changed so much in terms of perspective of what this whole thing is about because up until that point, i would have contacts with people from samsung and from other developers as well and i still do, but you know, actually deciding to get on a plane and fly on to another side of the world, and then be a part of this great event and the whole buzz and all of these people from all over the world, it was just eye opening for me because as many developers or better to say designers in in galaxy store i don't have a lot of experience with these tech conferences and so, you know, coming to san jose meeting people from samsung meeting, meeting other developers having a talk with them, and just exchanging, you know, opinions and ideas and i loved it that that's it you know, i wanted to do this for real now yeah, i think that was the point where it shifted in my head that, okay, this is serious stuff and there's a great support from samsung, which it always was there but just putting a face to the name of all these various contexts they had, it just made all the difference tony morelan 23 02 and i have to say one of the highlights for me was sitting in a room with who i thought were the rock stars of the designers i mean, here i was, you know, chatting with you and next year was matteo dini and then bergen, tomas from vienna studios and i'm like, oh, my gosh, man these are the designers that are just making incredible watch faces on the store and we're all in this one room together, just you know, having great conversations so it was wonderful to be able to meet face to face with many of these top designers drazen stojcic 23 36 absolutely and i especially enjoyed talking with you i think it was one of the best conversations i had there just i think we clicked really early on and definitely you have two perspectives on the on the whole thing, you're started as a designer, and now you're in samsung, so you can kind of relate better to the stuff that we're talking about tony morelan 24 00 exactly yeah, that was one of the main reasons why i took the position and i think one of the main reasons i got the job was that samsung really wanted to have someone with that voice internally so that i could be the liaison between taking the suggestions and the challenges that the designers have and trying to give a route to solving some of those issues and making the platform even better exactly unfortunately this year, we couldn't have the conference because of the pandemic as many people know we did an online award show and i was absolutely honored to be a part of the team that awarded you the best watch face collection and you know without a doubt, your collection just is amazing you know i still i look at the animated watch faces you do i see the videos that you put behind your watch faces as far as the project goes, and you are clearly deserving of this top honor so tell me, how did you first learn that you were winning this award from samsung? drazen stojcic 25 10 okay, so first of all, it was really an awesome thing you know, i was just blown away by the fact that i got the award i never, i never really expected it, when i started making watch faces that will end up in me getting some sort of an award for this or making all of this success that that has happened in the past years, actually, that how i found out was because i got this strange email that said, you know, just to notice that there will be an online event at this time and date and let's stay in touch i mentioned this to matteo dini, you know, did you see there's going to be an online event? and, you know, he said, i didn't get any email about this she was the winner last year, she said to me, oh, wait, i know what this is you probably won an award so i basically found out about this from a matteo tony morelan 26 18 that's funny that's funny i want to kind of go back a little bit and let's talk about your actual workflow when it comes to designing watch faces what is the first thing you do? are you grabbing a pencil and a piece of paper and starting to sketch? do you just dive right into the computer? drazen stojcic 26 34 i think it really depends sometimes i will just get an idea from a totally random spot like one of my most successful watch faces, the inspiration for it came from the blue glow around an elevator button that i just liked tony morelan 26 55 and which watch face says that drazen stojcic 26 57 it was the pulse series yes, yeah and so i was in this elevator and he was like some hotel and then there was this button that was beautifully glowing, like pulsating blue and i was just looking at it and i loved it and so i wanted to use that glow and have the similar effect on a watch that i came home and i started i started up after effects and i made this blue ring that was glowing, but it just wasn't working, you know and so i started playing with motion and then i figured out that it'd be cool if it looked like it was coming out of the screen like it was slowly moving out to the edges and so i had this thing, and there were no watch hands, no numbers, and nothing else, just this pulsing thing and i loved it tony morelan 27 52 so you've created this glowing, really cool animation what's the next step? i mean, you've got to be able to turn this into a watch face so are you just playing around with different shapes to create the you know the form? drazen stojcic 28 05 because most of our watch faces are animated, i would do the animations and then i would just grab one on screen from the animation series and then i would start like playing in in just pure to the trying to figure out what can i do? where could i put some of this simple code stuff going to work one with another? where are the watch hands going to be? is this going to be a digital watch face? or an analog watch face? is it going to have like a lot of info or not a lot of info and so it's going back and forth so i would sometimes start with an animation and then edit it 15 times over until everything fits one within another and it's just it's really a tedious process once you start complicating things with animations and animations do complicate things is immensely you know, i sometimes envy designers that can make really awesome watch faces they're not animated, because i don't know how to do that so anyway, that's funny yeah, yeah and it's also funny when they tell me oh, you can make all these awesome animations and i'm thinking yeah, but you don't have to make them and you still make us and watch faces tony morelan 29 26 at that point, are you using illustrator or photoshop? drazen stojcic 29 29 yeah, i use a lot of software so i will use basically the whole adobe package so everything from, you know, premiere photoshop, illustrator, and i also use 3d software like cinema 4d or even sketchup for some of this stuff you know, if i just want to make a quick idea to see how it works it's just a whole bunch of stuff you know? various software's that i'm used to, from before, you know, there used to from my previous work so it's not like one thing, you know, i'm sure people could do just fine using probably one serious graphics software but because of the animations, it's just not enough you need to have like all this other stuff, too tony morelan 30 20 of course, just to mention, we both are very familiar with tomas just checked from vienna studios, still astounds me and if you haven't listened to this podcast, go back and listen to it i'll let you in on a little secret tomas uses powerpoint to create his design so when i hear you talk about, you know, all the complexity of creating these animations, and you know, truthfully, you know, you have to become somewhat of a pro with photoshop and illustrator really to leverage all the tools in there yeah, to hear that tomas uses powerpoint, i know that you were surprised as i was drazen stojcic 30 51 i was blown away i met tim us for the first time at sdc and, and we had a really nice time talking and so naturally, we came to the, to this talk about software, and you know, and he said, you're never going to guess what i'm using to make my watch faces i was thinking, maybe he's using like, i don't know, some game or something like that some of that free graphics software or something more simple and so when he said, powerpoint, it blew me away because and this is what i was talking about so there are developers, they can make really awesome successful watch faces with software that wasn't even intended for this year and, and they can have great success yeah, so it's, it's just so awesome and i have huge respect for what he does and, and i totally recommend also listening to that podcast it was so cool tony morelan 31 53 i will say one thing that you guys have in common would be the photography after you've created the watch face so just like yourself, tomas is doing real video recording of his watch faces you can see his gloved hands come on to screen and do all the tapping interaction on his face so again, it's extremely important to find your unique way to showcase your work and both you and in tomas have done that drazen stojcic 32 23 yeah, yeah tomas especially with in because he, he is a he makes premium, like high end premium watch faces that are basically like for, for general public and so him using the gloves and having all these nice backdrops and everything it just sort of fits within the brand and with the whole identity and everything that he does and so i when i start making videos, and i started right from the get go, because i realized that people needed to see this thing in action because it was animated i also wanted to set up like some of the basic standards, how i'm going to do this, what's going to be the approach and so most of my videos are like have colorful lighting, and a lot of motion they're always in motion i don't make static videos because that's also something i wanted to emphasize the animations give a lot of motion to the watch faces and so the videos are kind of like even more emphasizing that there's this you just need to figure out what is the main point what are you trying to do with your designs and then have that same idea taken from the watch face to the screenshots to your app description, to your videos to your online social media it just all needs to tie into one nice bow and then it works tony morelan 34 02 definitely i would say another thing that really stands out for me when i think of the brand urarity is color you do not shy away from color i can tell that you must spend a great amount of time thinking about color i know we're on a podcast and you can only hear us at this moment but i can actually see you and right now your background in your room is changing in color you must have some sort of led lighting the chest tell me about color and how important it is to you because i can tell it is a big factor drazen stojcic 34 34 yeah, it is it is and actually you know funny things you notice about the background because i would frequently set up my room lights to go with the with the colors on the of the watch face that i'm working on that's great or sometimes i will i will just like use these i have these cool led lights that you can customize and all that remotely and sometimes i will just like mix these colors in real life and just see what's, what fits you know what works? and a lot of it helps me having experience within photography, you learn what colors work one with another? how brightness functions, how do we perceive brightness on a screen, it's kind of like, when you're framing the shot for that photograph it's not that different from setting up various elements on the screen, because you're still trying to get that golden ratio or intuitively program to like certain shapes and certain forms and certain ratios, and certain colors as well yes and so depending on the mood, i guess i'm trying to make or the effect that i'm trying to get, i will use a lot of color, or i will use muted colors and some sometimes i don't think a lot of people notice it, but not all of my watch phases have like black backgrounds, although they look like they do, they have a slight tint, and it can be just the tiniest amount of maybe blue or green it and, and for me, it makes all the difference i spend huge amounts of time with color i don't stop until i'm perfectly satisfied and now having my brother in all of this a lot of the times i you know, i will be happy and he will say i'm not so sure i think you need to make like, i think you need to change this and then i was like spend another week changing colors so it's a long process it's not yeah, you know, you don't do it in one night tony morelan 36 42 i loved hearing what you said just about black that that truthfully, black is not just black, you can have warm black, you can have cold black and so i often do that where i'll use the color picker in photoshop and you know, if i've done my design, i'll try and find the sort of the feel of the of the face the you know, what's the tone of it and i'll sample that and then within color picker, i'll go down to the to the almost to black, but it has just a little bit of hint of that yeah, whether it's like an orange or a blue or something because that then like you said, it ties in that background, that the foundation of the watch face still picks up what feels like that ambient lighting from the other elements exactly drazen stojcic 37 25 that's exactly what i'm talking about i take a lot of time perfecting my watch faces and that's why i guess that's why i don't make a lot of them you know, i'm not like this super producer i didn't make like 100 watch faces a year? yeah, it's always maybe 10 or 12, or 15 tony morelan 37 48 so how many total? would you say you have available on the store? drazen stojcic 37 51 yeah, so at the moment, i think we have around 100 or 110 okay, i've made a lot more actually, in these four years, especially in the beginning, i would make a lot, a lot of i think a lot of developers go through this, they will just churn out just bump, bump, bump but after a while you see that? it's just it doesn't make sense it's very few hold backs, you know, let it sit for a while get everything polished to the very last detail and then once you're totally satisfied, then you publish yeah and so as time goes on, i'm more focused on making the watch faces as perfect as they can be, rather than getting them out as quickly as possible tony morelan 38 41 yeah and i think that also what comes into play is the support that comes around that watch face so what you have to do from a marketing standpoint, all of the different, you know, elements that are key to successfully marketing your watch face if you have hundreds and hundreds, it's hard to maintain that this way it sounds like you can focus on you know, a smaller collection, but still be able to then put a lot of time into the marketing drazen stojcic 39 05 side of things exactly the more watch faces you have the bigger problem you have down the road when it comes time to update and eventually does so i really think that this is a like a situation where you need to think about not the quantity but rather the quality because in the end, the customers also recognize this, you know, if they see you made 300 watch phases in a year and the year has 365 days, you know you're not sending the right message and i will frequently go and be very critical of my own work and so after a while i see a bunch of mistakes i did or i'm not totally satisfied with some of my older work and i will just remove it i will just take it, take it down, clean up the portfolio, polish it so when a customer comes, you know, they only see the very best, or at least the very best for this moment that i added i mean, you know, of course, yeah tony morelan 40 08 so would you mind sharing? how many downloads total? does he already have? drazen stojcic 40 15 so we're close to 700,000 downloads now, wow, stretched over a period of four years and a large part of this was paid watch faces, or, you know, i don't know, the exact percent, which was, some of them were free and will frequently use free watch faces to, to promote, or other things that will, for example, in terms of marketing strategies will frequently do like, buy one, get one? yes and stuff like that, you know, where a customer still gets a free watch face but, you know, we also turn them into a painting into a paying customer as well tony morelan 41 05 so let me ask you, how do you approach that? does the customer have to show proof of purchase? what's your, what's your approach to that? drazen stojcic 41 13 so we asked them to show us a screenshot of from their, from this store, or sometimes will like, be fine if they can just show a photo of their watch, with our watch face on it, or things like that, you know, any proof is fine we're not really playing detectives here or anything yeah so on one hand, we want to give something for free on another hand and a lot of these customers are our returning customers, because they, they are familiar with our watch faces and with our system, and we know a lot of them over the years, there's really been customers that have supported us right from the very start tony morelan 41 58 what's your approach with marketing on social? are you doing much in the way of that? drazen stojcic 42 03 when i started with watch faces, my main kind of venue was youtube, because of the animations and all of that, i just needed a video service that could, you know, show the watch faces in action so i was building up this youtube channel for a long time and then after a while, i also started doing facebook and instagram but it takes time, it really does and i didn't really realize how much it can be useful until my brother took over and start doing it like for real sure you know, he had only this one thing to focus on for example, our youtube channel is close to 2 million views now and we only have our watch face videos so that does kind of tell you a lot, there's a lot of things that you can do to promote your watch faces and so over time, we are also we've also teamed up with some of the more popular tech channels or people who are doing watch face reviews, or who have an interest in this and so we would team up with them, have them promote some of our work, give some of coupons for free sure, something like that some discount stuff like that and facebook has also been very good for us instagram, and, you know, i my brother does so much stuff that some of it even i don't know, you know, he's like, doing stuff on reddit, on the forums tick tock, really are the place yeah, i really don't mess into this so i gave him like free rein to do as he thinks because obviously, this is something that he does and knows better than, than me tony morelan 44 06 yeah okay excellent and i'm sure across all of this, you're leveraging galaxy store badges is that correct? drazen stojcic 44 12 yeah, absolutely you know, we, we were actually a part of the galaxy badge pilot program and so quickly, we, we kind of got this additional step into our workflow so we will use both individual badges for like certain watch faces, but we are also frequently using our, like, our main badge that leads to our whole portfolio because and as you mentioned, you know, we i think we have a strong portfolio so sometimes the first thing they see is the whole layout, everything we've done so and it's been very useful in terms of, you know, following the clicks and all of that the statistics and there's a lot of science in this, i guess it's very interesting when you start analyzing the data that you can get from these badges and clicks and all and see what works what doesn't yeah, yeah because obviously you're trying to maximize the effect, you're not going to spend time or, or money or effort into something that doesn't work tony morelan 45 19 yeah, definitely so tell me what is in the future for your entity? is there anything that we can anticipate? drazen stojcic 45 29 well, so as i mentioned before, we had a lot of success with our mechanical watch faces that have these highly customizable appearances and so for the last couple of months, i've been toying with this idea of trying to do the same thing, but with digital watch faces and getting that same wow effect for customers that, you know, oh, sorry yeah right, great so just today, i got my new the 21 ultra tony morelan 46 20 oh, did you okay, drazen stojcic 46 21 yeah, yeah, i just arrived this morning and so i, like 10 minutes before we started this, i had to transfer all of the data and settings from my old phone, of course, and one of the things that it transferred was also the alarms so i switched off the alarm at the old phone, but i forgot about the new one so that's why i went off tony morelan 46 47 that's too funny right so you were talking about in the future, doing some animations with digital? yeah, drazen stojcic 46 53 yeah so i mentioned before that we had huge success with our mechanical watch faces that that had really customizable appearances and so for the last couple of months, i've been playing with this idea of repeating that same thing, but with digital watch faces and it's, it may seem like it's a simple transition, but actually, it's not and it has its own unique challenges, because making digital watch faces is completely different idea behind it and different visuals, and it just needs a different approach and so i'm kind of messing with that i'm trying to find the best thing that that i think it will be like good first watch face to try and repeat that same success sure tony morelan 47 44 that's exciting to hear because i would love to see that your urarity face in a in a digital form so super excited to know that we can anticipate that so before we close off this interview, you know, i have to say your english is amazing you're from croatia, but you speak perfect english i know, there's a little story behind how you learn to speak english can you share that? drazen stojcic 48 07 yeah, sure so i mentioned before, you know, we had this war thing here when i was a kid and so during the war, it's not that different from the pandemic, you know, yeah, you spend a lot of time indoors, you know, you can go out, you can play your little kid and so it just coincided with this period where we got like, first cable tv and so before that, there was like, three channels all in one language and that was it and then, you know, we got like these cool things like cnn and cartoon network and all of that stuff and i didn't know a word of english other than, you know, seeing some of the movies and stuff like that and so i was just like, i would watch hours and hours of this and a cool thing was that it was subtitled so yeah and so just, you know, listening to the words and seeing the translation below, it just helps so much, you know, with the meaning and with the phrases and with the correct pronunciation and all of that stuff and then later on came to computers and with the computers, eventually there came a period where i did a little bit of online gaming, and then you would talk to people from all over the world and then you just hit too, you know, you got to start speaking and i would frequently talk to people from the us or from england, or even people from other parts of the world and you know, english was always something i enjoyed, and i just fit so perfectly and because i travel a lot, it's also proven to be really useful for me yeah, of course tony morelan 49 56 so what you're saying is that you learned english by watching ren and stimpy? drazen stojcic 50 01 yeah, pretty much that's pretty much tony morelan 50 04 that's great hey drazen, it’s been excellent to have you on the podcast thank you so much for joining me and much luck in the new year drazen stojcic 50 13 thank you for having me and just you know, i'm very, very happy and honored to be on the podcast i always enjoy talking to you and i hope that this year sdc will be possible and that we will meet in person and see the other developers as well, you know, i really missed seeing them last year tony morelan 50 37 yeah, no, it'll be great to get everybody back together exactly excellent all right well, thanks, drazen drazen stojcic 50 43 thank you, tony outro 50 44 looking to start creating for samsung download the latest tools to code your next app, or get software for designing apps without coding at all sell your apps to the world on the samsung galaxy store check out developer samsung com today and start your journey with samsung tony morelan 51 00 the pow! podcast is brought to you by the samsung developer program and produced by tony morelan
technical_insights cloud services, account management
blogsamsung account is a global account service that brings the samsung universe together, from all samsung services to online and offline stores. it handles large-scale traffic with security and reliability. as a core samsung service, all tasks on samsung account, from general service deployments to cloud infrastructure upgrades, must be carried out without interruption to the service. this blog introduces the architecture designed for an elastic kubernetes service upgrade and shares our experience with upgrading the cloud infrastructure without interruptions to the high-traffic samsung account service. what is samsung account? samsung account is an account service that brings together more than 60 services and applications in 256 countries with over 1.7 billion user accounts. it is used for samsung electronics services including samsung pay, smartthings, and samsung health, as well as for authentication on various devices such as mobile, wearable, tv, pc, etc. samsung account helps deliver a secure and reliable customer experience with one account on a variety of contact points from online stores (such as samsung.com) and offline stores to our customer services. evolution of current samsung account architecture as the number of user accounts and connected services has grown, the infrastructure and service of samsung account has also evolved. it switched to the aws-based cloud for service stability and efficiency in 2019, and is currently servicing 4 regions: 3 global regions (eu, us, ap) and china. currently, samsung account consists of more than 70 microservices. in 2022, samsung account switched to the kubernetes base in order to reliably support microservices architecture (msa). kubernetes is an open-source orchestration platform that supports the easy deployment, scaling, and management of containerized applications. in 2023, samsung account reinforced disaster recovery (dr) to be able to provide failover across global regions, and expanded the ap region to improve user experience. in other words, samsung account has repeatedly evolved its infrastructure and services, and is currently running stably with traffic over 2.7 million requests per second (rps) and over 200k db transactions per second (tps). each aws-based samsung account region, with its own virtual private cloud, (vpc) is accessible through user devices, server-to-server, or the web. in particular, the web access provides a variety of features such as samsung.com and tv qr login on aws cloudfront, a content delivery network (cdn). samsung account microservices are being serviced on containers within elastic kubernetes service (eks) clusters, and internal communication between regions uses vpc peering. samsung account is using several managed services from aws to deliver various features. it is using aurora, dynamodb, and managed streaming for apache kafka (msk) as storage to build data sync between regions, and it provides account services based on different managed services including elasticache, pinpoint, and simple queue service (sqs). let's elaborate on the aws managed services that samsung account uses. the first is eks, which is a kubernetes service for running over 70 microservices on msa. next, aurora is used to save and query data as an rdb and dynamodb does the same but as a nosql database. along with them, elasticache (redis oss) is used to manage cache and sessions and msk handles delivering events from integrated services and data sync. if you’re building an aws-based service yourself, you would probably use these managed services as well. frustrating upgrades contrasting the convenience of managed services there is a major challenge to consider when you use these managed services, though. end of support comes, on average, after 1.5 years for eks and 2 years for aurora. various other services like elasticache and msk face the same problem. such service support termination is natural for aws, but upgrading these services when support ceases is often a painful task for those running them. because operation resources are often reduced upon switching to the cloud, large-scale upgrades that come around every 1 or 2 years have to be performed without enough resources for emergency response. these managed service upgrades put a major burden on samsung account. more than 60 integrated services have to be upgraded without causing interruptions, and the upgrades must be rolled out across a total of 4 regions. on top of that, samsung account is developing and running more than 70 microservices, so a significant amount of support and cooperation from development teams is required. the most challenging of all is that the upgrades need to be performed while dealing with traffic of over 2.7m rps and db traffic of 200k tps. eks upgrade sequence and restrictions you might think upgrading eks on aws is easy. in general, when upgrading eks, you start with the control plane including etcd and the apis that manage eks. afterwards, you move to the data plane where the actual service pods are on, and finally to eks add-ons. in theory, it is possible to upgrade eks following this sequence without any impact to the service operation. however, there are restrictions to general eks upgrades. if an upgrade fails in any of the 3 steps above due to missing eks api specs or incompatibility issues, a rollback is not available at all. in addition, it is difficult to do a compatibility check for the services and add-ons in advance. multi-cluster architecture for non-disruptive eks upgrades after much thought, samsung account decided to go with a simple but reliable option to perform eks upgrades. it's possible that many other services are using a similar way to upgrade eks or run actual services. samsung account chose to upgrade eks based on a multi-cluster architecture with 2 eks clusters. the architecture is built to enable an existing eks version to continue providing the service, while a new eks version on a separate cluster performs a compatibility validation with various microservices and add-ons before receiving traffic. the advantage of this method is that you can implement a rollback plan where the old eks version takes over the traffic if any issues occur when switching to the new eks version. a lesson we have learned from providing the samsung account service under high traffic is that there will be issues when you actually start processing traffic, no matter how perfectly you've built your infrastructure or service. for these reasons, it is essential to have a rollback plan in place whenever you deploy a service or upgrade your infrastructure. when you perform a multi-cluster upgrade, traffic must be switched between the old and new eks clusters. simply put, there are 2 main approaches. one approach is to switch traffic by placing a proxy server between the 2 clusters. the other approach is to switch the target ip using dns. needless to say, there may be a variety of other ways to accomplish this. in the first option, using a proxy server, you may encounter overload issues when handling high-volume traffic, such as with samsung account. additionally, there are too many application load balancers (albs) used for approximately 70 microservices, making it impractical to create a proxy server for each alb. in the second option, using dns, the actual user, client, and server replace the service ip of the old eks with that of the new eks during a dns lookup, redirecting requests to a different target at the user level. the dns option does not require a proxy server, and switching traffic is easy by simply editing the dns record. however, there is a risk that the traffic switch might not happen immediately due to propagation-related delays with dns. the dns-based traffic switch architecture was applied to achieve a non-disruptive eks upgrade for samsung account. let us describe the dns layers of samsung account with a hypothetical example. the top domain is account.samsung.com, and there are 3 global region domains under it, classified based on latency or geolocation. for us.account.samsung.com, the layers are split into service.us-old-eks.a.s.com and service.us-new-eks.a.s.com, representing the old and new domains. this is a simple, hypothetical example. in reality, samsung account uses more dns layers. during the recent eks upgrade, we switched traffic between the internal domains of the 2 eks clusters based on weighted records while adjusting the ratio, rather than switching all at once. for instance, when a user sends a request to account.samsung.com, it goes through us.account.samsung.com, and the actual eks service ip is applied at the end based on the specified weight. retrospective of the non-disruptive eks upgrade in summary, i would say "it's a successful upgrade if the connected services haven't noticed." with this eks upgrade, we deployed and switched traffic for a total of 3 regions, 6 eks clusters, and more than 210 microservices over the course of one month. the traffic switch was conducted with ratios set based on each service's load and characteristics, and no issues with connected services were reported during this one month eks upgrade. of course, as they say, "it's not over until it's over." we did have a minor incident where there were insufficient internal ips in the internal subnet due to many eks nodes and service pods becoming active simultaneously, which scared us for a moment. we secured the ip resources by reducing the number of pods for kubelet and add-ons by about a thousand and quickly scaling up the eks nodes. one thing we realized while switching traffic with dns is that 99.9% of the entire traffic can be switched within 5 minutes when the dns weight is adjusted. closing note richard branson, co-founder of virgin group, once said, "you don't learn to walk by following rules. you learn by doing, and by falling over." samsung account has been growing and evolving, addressing many bumps along the way. we continue to resolve various challenges with the stability of our service as the priority, keeping this "learning while falling over" spirit in mind. thank you.
Je-Min Kim
tutorials game, mobile
blogin this article i would like to introduce a hardware optimisation technique called variable rate shading (vrs) and how this technique can benefit games on mobile phones. introduction traditionally, each shaded pixel in a rendered image is being shaded individually, meaning we can shade very high details anywhere in the image which, in theory, is great. however, in practice, this can lead to wasteful gpu calculations for areas where details are less important. in some cases, you do not need 1x1 shading of pixels to produce a high quality image. for example, for those areas that represent unlit surfaces caused by shadows naturally contain less details than brighter lit areas. moreover, areas which are out of focus due to camera post-effects and areas affected by motion blur naturally do not contain high details. in these cases we could benefit from letting multiple pixels be shaded by just a single calculation (like a 2x2 or 4x4 area of pixels) without losing any noticeable visual quality. the high resolution sky texture on the left looks very much like the lower resolution sky texture on the right. this is due to the smooth colour gradients and lack of high frequency colour variation. for those reasons, there is room for a lot of optimisation. you could argue that optimisation for handheld devices, like mobile phones, is more essential than on stationary devices, like games consoles, due to a couple of reasons. firstly, the hardware on handheld devices is often less powerful than conventional hardware due to smaller size and less electrical power supply. the compact size of the hardware for handheld devices are also the reason why they are more likely to suffer from temperature issues causing thermal throttling, where the performance slows down significantly. secondly, heavy graphics in games can quickly drain your phone's battery life. so, it is crucial to keep the gpu resources to a minimum when possible. variable rate shading is a way to help doing just that. how does variable rate shading work? in principle, variable rate shading is actually a very simple method which can be implemented without having to redesign an existing rendering pipeline. there are three ways to define areas to be optimised using variable rate shading: let an attachment in the form of an image serve as a mask. execute the optimisation on a per-triangle basis. let the vrs optimisation be based on a per-draw call. use an attachment as a mask you can provide the gpu with an image that serves as a mask. the mask contains information about what areas need to be rendered in a traditional manner by shading each pixel individually, and which areas need to be optimised by shading a group of pixels at once. the image below is visualising such a mask by colour-coding different areas: the blue area does not have any optimisation applied (1x1) as this area is where the player focuses on when driving. the green area is optimised by shading four pixels (2x2) by only one shading calculation, as this area contains less details due to motion blur. the red area can be optimised even more (4x4), as it is affected by a more aggressive motion blur. the yellow and purple areas are also shaded with less shading calculations. the areas defined in the image above could be static, at least while the player is driving the boat at top speed, as the boat is positioned at the centre of the image at all times. however, the level of optimisation could be reduced when another boat is passing by or when the boat slows down and therefore the motion blur is gradually reduced. there are times where a more dynamic approach is needed, as it sometimes can be difficult to know beforehand what areas should be optimised and what areas should be shaded in a traditional manner. in those cases, it could be beneficial to generate the mask more dynamically by rendering the geometry for the scene in an extra pass. simply colour the geometric elements in the scene and pass it to the gpu as a mask for the variable rate shading optimisation. if the scene is rendered by using deferred lighting, an extra pass may not be needed as the mask could be based on the default geometry pass required for deferred shading. optimisation based on primitives another way of using variable rate shading is taking advantage of other extensions as they allow you to define geometric elements to be optimised rather than using a mask. this can be done on a per-triangle basis or simply done by a per-draw call. defining geometric elements could be a more efficient approach as there is no need for generating a mask as well as needing less memory bandwidth. for the per-triangle basis extension, you are able to define the optimisation level in the vertex shader. for the per-draw call method, the optimisation level can be defined before the draw call takes place. keep in mind that the three methods can be combined if needed. the image below is a rendering pass where all objects in a scene are shaded in different colours to define what areas should be shaded in a traditional manner (meaning no optimisation) and what areas contain less details (therefore needing less gpu calculations). the areas defined above can be defined by all three methods. in general, by breaking a scene up in layers, where the elements nearest the camera have less optimisation and layers in the background have the most optimisation, would be an effective way to go about it. the image below shows the same scene, but this time we see the final output where vrs is on and off. as you may have noticed, it is very hard to tell any difference when the vrs optimisation is turned on or off. experiences with variable rate shading so far some commercial games have already successfully implemented variable rate shading. the image below is from wolfenstein young blood. as you may have noticed, there is barely any visual difference when vrs is on or off, but you are able to tell a difference in frame rate. in fact, the game performs, on average, 10% or higher when vrs is turned on. that may not sound like a lot, but considering that it is an easy optimisation to implement, there is barely any noticeable change in the visual quality. the 10% performance boost is on top of other optimisation techniques and it is actually not a bad performance boost after all. other games have shown an even a higher performance boost. for example, gears tactics has a performance boost up to 30% when using variable rate shading. the image below is from that game. virtual reality variable rate shading can benefit virtual reality as well. not only does virtual reality by nature require two rendered images (one image for each eye), but the player who wears the virtual mask naturally pays most attention to the central area of the rendered image. the areas of the rendered image that are seen from the corner of your eye naturally do not need the same amount of details as the central area of the rendered images. that means even though a static vrs mask can be used for a reasonable overall optimisation, using an eye tracker could result in an even more efficient optimisation and therefore less noticeable quality reduction. it is crucial to have a consistent high frame rate for virtual reality. if the frame rate is not relatively consistent or the rendering performance is suffering for a consistent low frame rate, it quickly gets uncomfortable to wear a vr headset and the player might even get dizzy and feel physically sick. by reducing the gpu calculations, using variable rate shading not only boosts the frame rate, it also uses less battery for mobile devices. this is a huge win for systems like samsung gear vr where a long battery life is much appreciated as the graphics are running on a galaxy mobile phone. the image below shows a variable rate shading mask generated by eye tracking technology for a virtual reality headset. the centre of the left and right images shade pixels in a traditional manner. the other colours represent different degrees of optimisation areas. which samsung devices support variable rate shading? all hardware listed here supports variable rate shading. mobile phones: samsung galaxy s22, s22+ and s22 ultra tablets: samsung tab s8, s8+ and s8 ultra the following graphics apis, vulkan and opengl es 2.0 (and higher), both support variable rate shading. the opengl extensions for the three ways of using variable rate shading are the following: gl_ext_fragment_shading_rate_attachment for allowing to send a mask to the gpu. gl_ext_fragment_shading_rate_primitive for per-triangle basis, where writing a value to gl_primitiveshadingrateext in the vertex shader defines the level of optimisation. gl_ext_fragment_shading_rate for per-draw call, where glshadingrateext should be called to define the optimisation level. the extension that enables variable rate shading for vulkan is vk_khr_fragment_shading_rate. conclusion in this article, we have established the following: variable rate shading is a hardware feature and is fairly easy to implement as it does not require any redesign of existing rendering pipelines. variable rate shading is an optimisation technique which reduces gpu calculations by allowing a group of pixels to be shaded by the same colour rather than each pixel individually. variable rate shading is particularly useful for mobile gaming as well as samsung gear vr, as it boosts performance and prolongs battery life. the level of optimisation can be defined by passing a mask to the gpu that contains areas of different optimisation levels. some implementations have proven to boost the framerate 10% or higher, while other implementations manage to increase the frame rate up to 30%. note: some images in this post are courtesy of ul solutions. additional resources on the samsung developers site the samsung developers site has many resources for developers looking to build for and integrate with samsung devices and services. stay in touch with the latest news by creating a free account and subscribing to our monthly newsletter. visit the marketing resources page for information on promoting and distributing your apps. finally, our developer forum is an excellent way to stay up-to-date on all things related to the galaxy ecosystem.
Søren Klit Lambæk
Develop Galaxy Watch for Tizen
doccreate your first tizen wearable native widget application welcome to tizen wearable native widget application development! a wearable native widget application is created using the c language, and can be run on tizen wearable devices the application uses the native api, which provides various interfaces to the device hardware allowing you to take advantage of numerous capabilities tailored to run with limited device resources a widget application is one of the tizen application types it can be shown by specific ui applications such as the home screen and lock screen that can contain widget applications figure widget application on a wearable device 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 widget application, which displays some text on the screen with no user interaction 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 widget 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 widget application project in the tizen studio an application project contains all the files that make up an application note standalone widget application packages are not allowed in the tizen store for user convenience, you can use a standalone widget application for testing purposes in the tizen studio if you want to publish the application in the tizen store, combine it with at least 1 ui application in the same package for more information, see developing multiple projects as a combined package the following figure illustrates the application to be created the application screen displays the hello widget text and no user interaction is provided figure wearable native widget 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 widget 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, widget preview image and supported size , and 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/widget h and src/widget 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 widget application is initialized to use the functions and data types of the widget application api by including the <widget_app h> header file in your application #include <widget_app h> all header files that you need are already included in the widget h file, which is generated by the tizen studio when the template project is created the widget application life-cycle callbacks manage specific parts of the application life-cycle they are set in the widget_app_lifecycle_callback_s structure, and the structure is passed to the widget_app_main function of the widget application api to start the widget application event loop int main int argc, char *argv[] { widget_app_lifecycle_callback_s ops = {0,}; int ret; ops create = widget_app_create; ops terminate = widget_app_terminate; ret = widget_app_main argc, argv, &ops, null ; if ret != widget_error_none dlog_print dlog_error, log_tag, "widget_app_main failed err = %d", ret ; return ret; } the create event is triggered before the application main loop starts in this callback, you can initialize any resources that can be shared among widget instances register the widget instance callback functions, and create a widget instance class and return a handle for it, so that the handle can be used for making widget instances static widget_class_h widget_app_create void *user_data { /* hook to take necessary actions before the main event loop starts */ widget_instance_lifecycle_callback_s ops = {null,}; return widget_app_class_create ops, user_data ; } the terminate event is triggered before the application ends when you no longer need the widget application, use it to release the resources and terminate the application static void widget_app_terminate void *user_data { /* release all resources */ } the widget application provides a life-cycle and functions for making and managing a widget class the application has one process, whose responsibility it is to make a class in the widget_app_create callback function of the widget application api with this class, the framework can make instances whenever applications for widget viewers such as home screen or lock screen request for a widget instance the widget instance has its own life-cycle, which is similar to the widget application however, the widget instance is simply an object that is shown by the applications for widget viewers many widget instances can be running on the same widget application process to manage the widget instance life-cycle, add the relevant callbacks to the widget_instance_lifecycle_callback_s structure during the widget application initialization static widget_class_h widget_app_create void *user_data { widget_instance_lifecycle_callback_s ops = { create = widget_instance_create, destroy = widget_instance_destroy, pause = widget_instance_pause, resume = widget_instance_resume, update = widget_instance_update, resize = widget_instance_resize, }; return widget_app_class_create ops, user_data ; } the create callback is triggered when the widget instance is created you can use the callback to initialize resources for the widget instance and draw the ui if the bundle content is not null, restore the previous status static int widget_instance_create widget_context_h context, bundle *content, int w, int h, void *user_data { widget_instance_data_s *wid = widget_instance_data_s* malloc sizeof widget_instance_data_s ; int ret; if content != null /* recover the previous status with the bundle object */ /* create the ui */ return widget_error_none; } the destroy callback is triggered when the widget instance is destroyed you can use the callback to release all widget resources if the reason for the termination is not widget_app_destroy_type_permanent, store the current status with the incoming bundle static int widget_instance_destroy widget_context_h context, widget_app_destroy_type_e reason, bundle *content, void *user_data { if reason != widget_app_destroy_type_permanent /* save the current status at the bundle object */ return widget_error_none; } the pause callback is triggered when the widget instance is paused you can use the callback to take the necessary actions when the widget instance becomes invisible the framework can destroy a paused widget instance static int widget_instance_pause widget_context_h context, void *user_data { return widget_error_none; } the resume callback is triggered when the widget instance is resumed you can use the callback to take the necessary actions when the widget instance becomes visible static int widget_instance_resume widget_context_h context, void *user_data { return widget_error_none; } the update callback is triggered when a widget update event is received you can use the callback to take the necessary actions for the widget update if the force parameter is true, the widget can be updated even in the pause state static int widget_instance_update widget_context_h context, bundle *content, int force, void *user_data { return widget_error_none; } widget instances can have private data the data usually includes view objects to make a screen for each widget instance the framework provides an easy way to find private data from the widget context handle, which is provided as a parameter in the callback functions the following example shows how to make private data and use it you can define a private data structure and attach it to the widget instance by calling the widget_app_context_set_tag function of the widget application api struct widget_instance_data { evas_object *win; evas_object *conform; evas_object *label; }; typedef struct widget_instance_data widget_instance_data_s; static int widget_instance_create widget_context_h context, bundle *content, int w, int h, void *user_data { widget_instance_data_s *wid = widget_instance_data_s* malloc sizeof widget_instance_data_s ; ret = widget_app_get_elm_win context, &wid->win ; wid->label = elm_label_add wid->conform ; widget_app_context_set_tag context, wid ; } you can get the private data from the widget instance by calling the widget_app_context_get_tag function of the widget application api the following code within the widget_instance_update callback is not included in the default application template in the tizen studio, but you can add it to test the data handling feature static int widget_instance_update widget_context_h context, bundle *content, int force, void *user_data { widget_instance_data_s *wid = null; widget_app_context_get_tag context, void** &wid ; if wid->label elm_object_text_set wid->label, "update widget" ; return widget_error_none; } if you use private data, make sure that all the resources that you allocate are freed in the callback function for the widget instance destructor static int widget_instance_destroy widget_context_h context, widget_app_destroy_type_e reason, bundle *content, void *user_data { widget_instance_data_s *wid = null; widget_app_context_get_tag context, void** &wid ; if wid->win evas_object_del wid->win ; free wid ; return widget_error_none; } 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 the above screen is shown through the viewer, to allow you to develop a lone widget application for testing purposes <a name="viewer"></a> to see the widget running on the home screen, add the widget there 1 press the **back** key in the upper-right corner of the emulator device to return to the home screen showing a watch face 2 swipe the home screen right until you see **+ add widget** select it 3 swipe right until you see your widget application select it ![adding to home screen] https //docs tizen org/application/native/get-started/wearable-widget/media/widget_run_add_home_wn png you can see the added widget on the home screen to access the widget from the home screen, swipe right ![home screen widget] https //docs tizen org/application/native/get-started/wearable-widget/media/emulator_running_wn_widget 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 add the widget to the home screen to easily access it 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 widget application created with the widget template has a simple user interface with a label component showing the hello widget text the ui is created using efl figure user interface in the widget template creating the basic ui the ui in the widget 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 widget text is implemented with a label component the ui is created in the widget c file data structure a pointer to the ui components is stored in the widget_instance_data_s data structure #include <widget_app_efl h> struct widget_instance_data { /* window */ evas_object *win; /* conformant */ evas_object *conform; /* label */ evas_object *label; }; typedef struct widget_instance_data widget_instance_data_s; ui creation the widget_app_create life-cycle callback is called when the application main loop starts it registers the widget_instance_create callback, which creates the ui when the widget instance starts static widget_class_h widget_app_create void *user_data { /* register system event handlers */ widget_instance_lifecycle_callback_s ops = { create = widget_instance_create, destroy = widget_instance_destroy, pause = widget_instance_pause, resume = widget_instance_resume, update = widget_instance_update, }; return widget_app_class_create ops, user_data ; } ui components the widget_instance_create function creates the ui components window, conformant, and label the function defines a pointer to fill in the widget_instance_data_s structure static int widget_instance_create widget_context_h context, bundle *content, int w, int h, void *user_data { widget_instance_data_s *wid = widget_instance_data_s* malloc sizeof widget_instance_data_s ; int ret; if content != null /* recover the previous status with the bundle object */ the window object for the widget is retrieved with the widget_app_get_elm_win function of the widget application api to create the ui on the home screen the evas_object_resize function is used to resize the window to fit the screen /* window */ ret = widget_app_get_elm_win context, &wid->win ; if ret != widget_error_none { dlog_print dlog_error, log_tag, "failed to get window err = %d", ret ; return widget_error_fault; } evas_object_resize wid->win, w, h ; 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 /* conformant */ wid->conform = elm_conformant_add wid->win ; evas_object_size_hint_weight_set wid->conform, evas_hint_expand, evas_hint_expand ; elm_win_resize_object_add wid->win, wid->conform ; evas_object_show wid->conform ; the label component for the text 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, and its text is set with the elm_object_text_set function /* label */ wid->label = elm_label_add wid->conform ; evas_object_resize wid->label, w, h / 3 ; evas_object_move wid->label, w / 4, h / 3 ; evas_object_show wid->label ; elm_object_text_set wid->label, "<align=center>hello widget</align>" ; 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 /* show the window after the base gui is set up */ evas_object_show wid->win ; widget_app_context_set_tag context, wid ; return widget_error_none; } 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 green /* label */ wid->label = elm_label_add wid->conform ; evas_object_resize wid->label, w, h / 3 ; evas_object_move wid->label, w / 4, h / 3 ; evas_object_color_set wid->label, 50, 255, 150, 255 ; evas_object_show wid->label ; elm_object_text_set wid->label, "<align=center>hello widget</align>" ; figure modified label component
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 mobile
blogjeanne hsu, senior marketing manager for developer relations at samsung, chatted with yuki he, chairperson, ceo and founder of joyme. jeanne hsu (jh): yuki, what was your professional journey that led you to joyme? yuki he (yh): i entered the internet industry in 2003 and joined tencent in product management when they started their product team. i was doing entertainment and social apps like qq and qq pets. i enjoyed working in this industry and developed a more profound interest in social products. later on in 2013, i started working on overseas products, got familiar with the global internet market, and was responsible for a utility product. at that time, samsung also partnered with us to include our product. i also got a chance to visit samsung's south korean headquarters to discuss other partnership matters. in 2015, i participated in the entrepreneurial process of musical.ly (later became tiktok) as a director. i saw a promising future of combining live video and social interaction. i wanted to use both to connect people virtually and in real time no matter where they were located. i saw the vast opportunities in the u.s. market, so i left and decided to build my own company, joyme. jh: where is joyme located? yh: joyme is in various regions including the los angeles (u.s.), singapore, brazil, and the middle east. jh: how many employees work at joyme? yh: we have 500 people total including 300 employees and 200 contractors. jh: how did the relationship with samsung first start? yh: we published liveme in galaxy store in 2020. we already had a relationship with samsung from my previous work. so this was a natural extension of the partnership. jh: best of galaxy store award – 2021 best entertainment app for joyme's liveme app. what does it mean to win this award? yh: we take this award very seriously and especially thank samsung for the recognition. samsung has many users and is one of the largest store platforms in the world. samsung is a world-renowned company, with a prominent brand name. winning this award also gives us great motivation to continue creating even better products for samsung users. jh: in what ways have you promoted winning the award? yh: we have promoted this fantastic news through the media agency and received positive market feedback. we plan to promote the award-winning news through international media, liveme's social media, and the official website. we believe the recognition from samsung is going to boost our branding and let more samsung users get to know more about us. winning the award gives us great motivation to continue doing what we do best: give our users and the entertainment community the best service. liveme – 2021 best entertainment app jh: what have you noticed about mobile trends and liveme? yh: the mobile phone camera has changed people's lives when they interact with their phones. you can be anywhere in the world to connect online with people, show your talent, expand your circle of friends, and share parts of your life. bringing the community closer together is the original concept of liveme. i felt the video and interactive components were important. people can go online with liveme and feel happier. jh: are there any unique aspects or optimizations to the galaxy store version of liveme? yh: we integrated the payment channel sdk with the samsung iap (in-app purchase) sdk. our base operation is android. galaxy store is very good for the developer so we don't have to do different versions. it saves a lot of time and resources. in the future, we hope to have deeper integration with samsung. jh: how did you come up with the concept for liveme? yh: in 2015, livestream video was not as popular as it is now; people took pics. but the camera performance on mobile phones was becoming more sophisticated and advanced. i found that many users gradually developed taking videos on their mobile phones. video is a richer content carrier than still images or plain text. i could see the future of information transmission trends. then video transmission changed; it was faster and people could send full rich videos instead of choppy/frozen bits of pixels. now instead of just watching a video, people could interact with live video streams. users could respond with comments or emojis in real time. the live-stream video experience further enhanced the connection between people. for example, people can stay at home and make friends all over the world. they use this platform to show off their talents. having this vision of connecting the world was the original idea that inspired me to develop liveme. broadcasters and business model jh: i noticed on facebook that liveme's tagline reads: “create content, meet friends, and make money.” tell me more about liveme and the business model. how do the broadcasters make money? yh: broadcasters earn money by presenting engaging content in their livestream channel. they can build up a global fan base. then viewers can send virtual gifts to show their appreciation. they also encourage people to subscribe to their channel. for example, out of 100k people that enter a broadcaster's room, 20% could give them gifts like flower animations and virtual diamonds. the more gifts they receive from their fans, the better. it shows a very active community. some broadcasters see this as a hobby, but some make it their professional career. we're not talking about famous celebrities who have their own channels but rather the uber driver, bar singer or amateur dancer. they can use liveme as an entertainment channel and make money doing it as a living. we help 300,000 broadcasters earn money in the u.s. globally we have a million broadcasters that are making good money via liveme. it's a very powerful story. not only do they receive gifts from their fans, but they also get benefits from liveme. we also give the broadcasters gifts depending on the volume and activity of their fan base. it helps incent broadcasters to generate new content. every month, we give several millions of u.s. dollars to the broadcasters. what's more, we have an ongoing plan with a $60 million investment to support our broadcasters and creators. we're able to offer jobs to people all over: in the u.s., brazil, japan, and the middle east, just to mention a few. jh: what a strong message. “we believe in you, and are willing to pay you for your creativity attracting a large fan base.” it's an intriguing business model. what else are broadcasters doing to increase their audience? yh: we have talented broadcasters who create content and make friends by livestreaming. they can interact with viewers. fans can also beam in to the “room”, do challenges and play mini games with the broadcasters. there can be up to nine people in a livestreaming room. youtube cannot do that. fans then become part of the action with other community members. and there are more people who are commenting, giving gifts, and cheering these people on. having this very interactive community lends itself to many creative ideas. we can combine games with the livestreaming: in soccer, the broadcaster guards the goalpost and another person kicks the ball, in real-time. people can play casual games together. then the community interacts as they play games, dance or sing. it's very entertaining! app ideas, discoverability and reach jh: how many apps has joyme published, and how many are on galaxy store? yh: liveme and photogrid are the two main apps of joyme. liveme is a live video social app and photogrid is a video and photo editing app. both liveme and photogrid are on galaxy store. jh: where do you get your app ideas? yh: user feedback is important to us. they give us ideas and inspiration. we learn from other apps (funny and creative ideas from games and apps). we'll also run campaigns to celebrate special events like our 6th birthday this past april; fans sent us video birthday cards. we do marketing research to see if there is new technology we could use. for example, new technologies like virtual character ai improves the user creative experience in our apps. jh: what is the work flow when designing, developing and publishing an app? yh: there are six steps for our app development and publishing. first, we need to list out the product project needs. it is necessary to determine the project's overall plan, the timeline, the general framework, the main functions, and the core belief of the app. what are the needs of target users? what kind of value can this app create for the user? once the app has its primary functions defined, we research to understand potential competitors and competitive environment. for example, is it a saturated market or a competitive market? next is the realization of the app function by designing the first draft of ui and ux. after multiple meetings and rendering, we will have the final interface design ready. the product will then enter the research and development stage. while forming the app with programming, we prepare everything in the app store account for release. the next step is to test the app. we test the app thoroughly before release by having internal test users test the first version and extract user feedback to improve and optimize the user experience. finally, it is time to publish the app. we'll use the app store account to release and publish the tested app, and leave three to five days to fix any bugs after the app is released. jh: with all the competition for apps, what has been your strategy for discoverability? yh: we buy ads traditionally from google and meta, etc. every app developer does that. but we have a community of broadcasters who can promote our apps as well. they will share their live-steaming with their fans by cross-promoting from other channels they've cultivated. we can see that more people are making friends and enjoying the interaction with the broadcasters. friends are telling others about broadcasters that appeal to them. there's nothing more compelling than the “tell a friend” concept. we do some pr and marketing events. before covid, we used to do live in-person promotions with iheartradio; one was for the event music house. we hosted parties in la and san francisco with broadcasters, asking them to invite their friends to join in. we found that people share their experiences on social media. it was a fun way to promote the liveme app to their friends. now we hold other online events, building on our platform, so people worldwide can participate. jh: what has been your strategy for generating revenue? yh: liveme generates revenue by iap (in-app purchases) for virtual gifts to support favorite broadcasters or participate in in-app events. to encourage users to be more engaged, we create monthly competitions with different themes, holidays, and unique virtual 3d animation gifts to best express users' distinct support styles. jh: in the last five years, liveme is in 85 countries. how do you attribute your growth and expansion? yh: liveme started with multiple tests and trials in a few countries to build a solid foundation. in the early stages, it is necessary to confirm if the product provides valuable services for users that reflect the actual demand in a pilot before launching a large-scale expansion. the internet industry is getting so competitive that users' needs and requirements change every second. it is truly a great challenge for our developers. our fundamental strategy is making good products and services that genuinely exceed user expectations. joyme has also been exploring and improving under the same principle. jh: what is in the future for joyme / liveme? yh: our mission is to "connect the world and spread happiness." joyme will continue to devote itself to creating exciting pan-entertainment products. in the future, we will also develop immersive meta-universe experience products. everyone is facing different obstacles in life under the influence of the pandemic, so i hope joyme can create products that give more companionship, happiness, and love to bring our global users together. feedback and advice jh: what advice would you give developers looking to bring their apps to galaxy store? yh: for specifics about galaxy store, i recommend the following: become familiar with the policy for galaxy store. if developers ignore this, their apps will soon be off-line. understand how to control the risk of payments. different platforms have varying risks. get good feedback from users and cooperate with samsung. we do activities together with samsung and benefit from their promotions. incent galaxy store users. we give gifts to galaxy store users, such as free coins to buy gifts to send to broadcasters. it encourages users to buy more coins and engage with liveme. jh: why is it important to offer your app on galaxy store? yh: our main market is the u.s. and samsung has a major presence there. marketing jh: what are some of the ways you promote liveme? yh: here are our websites and channels: website - https://www.liveme.com/ facebook - https://www.facebook.com/streamliveme/ twitter - https://twitter.com/streamliveme (@streamlivem) youtube - https://www.youtube.com/c/livemeofficial/featured instagram - https://www.instagram.com/streamliveme/ diversity and inclusion jh: what is joyme doing related to diversity and inclusion? yh: joyme supports multiple languages and is available in many countries, so focusing on content localization based on local culture, trends, and holidays is essential. we are committed to meeting the needs of our diverse users and respecting different cultures and religions. our goal is to create a supportive community that includes all races, religions, and cultures to connect users in the various regions. our management team is 40% to 50% women; some of them have been with me for more than five years, building a good relationship with each other. we also have offices in eight countries with different nationalities and cultures, all working together. jh: i understand you were involved in the women's entrepreneurship day (wed) summit. tell us more about that. yh: yes, thanks for asking. this international annual wed summit empowers women and girls worldwide to alleviate poverty their communities. i spoke to encourage them to become active participants in the economy by becoming leaders, innovators, and entrepreneurs. it gave me an opportunity to share my story with young women from all over the world and highlight how liveme is empowering women to share their talents and follow their passions. fun jh: what do you do for fun outside of work? yh: i enjoy playing different sports and fitness; i am also into singing. i was the singer of the official theme song "song of tencent" for tencent. i participated in many singing competitions during my college years and was pretty good at it. if i didn't become a product manager in the internet industry, i would probably have become a singer. yuki singing in fact, that was one reason i launched liveme. i started out as a broadcaster and gained a lot of fans by singing and dancing. everyone has the opportunity to grow their channel. nobody knew i was the ceo of the company. once they found out, they said “i knew yuki before as a broadcaster.” now, i leave the broadcasting to the other talent. jh: it's great you started as a broadcaster. so you know firsthand how to showcase your singing and dancing talents. kudos to you! thank you so much for this interview yuki. yh: you're very welcome. i am happy to chat with you. additional resources on the samsung developers site the samsung developers site has many resources for developers looking to build for and integrate with samsung devices and services. stay in touch with the latest news by creating a free account and subscribing to our monthly newsletter. visit the marketing resources page for information on promoting and distributing your apps. finally, our developer forum is an excellent way to stay up-to-date on all things related to the galaxy ecosystem.
Jeanne Hsu
We use cookies to improve your experience on our website and to show you relevant advertising. Manage you settings for our cookies below.
These cookies are essential as they enable you to move around the website. This category cannot be disabled.
These cookies collect information about how you use our website. for example which pages you visit most often. All information these cookies collect is used to improve how the website works.
These cookies allow our website to remember choices you make (such as your user name, language or the region your are in) and tailor the website to provide enhanced features and content for you.
These cookies gather information about your browser habits. They remember that you've visited our website and share this information with other organizations such as advertisers.
You have successfully updated your cookie preferences.