Filter
-
Content Type
-
Category
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Mobile/Wearable
Visual Display
Digital Appliance
Platform
Recommendation
Filter
Develop Samsung DeX
docoptional compatibility features modifying apps for samsung dex the following section includes tips on how to add extra features to a samsung dex app – such as assigning a menu action to a mouse right click for the best desktop experience, apps should meet these optional compatibility features however, they are not required to launch in desktop mode mouse right click enabling mouse right-click allows for easier interaction with apps for example, it can be useful for showing desktop-like action such as a contextual menu if an app uses the edittextview of the google api, it does not need to implement additional features for using mouse right click in edittextview, the following actions are available mouse right-click show contextual menu mouse left-double click on text select the text if an app is not using edittextview of the google api, this code snippet enable mouse right click @override protected void oncreate bundle savedinstancestate { super oncreate savedinstancestate ; setcontentview r layout activity_main ; layout_main = relativelayout findviewbyid r id layout_main ; registerforcontextmenu layout_main ; } @override public void oncreatecontextmenu contextmenu menu, view v, contextmenu contextmenuinfo menuinfo { if v getid == r id layout_main { menu setheadertitle "context menu test" ; menu add menu none, one, menu none, "menu 1" ; } super oncreatecontextmenu menu, v, menuinfo ; } @override public boolean ontouchevent motionevent event { if event getaction == motionevent action_down && event getbuttonstate == motionevent button_secondary { layout_main showcontextmenu event getx , event gety ; } return super ontouchevent event ; } mouse-wheel zoom enabling mouse-wheel zoom allows for easier interaction with apps that require multi-touch zoom pinch zoom in and out to operate efficiently for example, maps or games to enable multi-touch, an app must receive the wheel up/down event motionevent action_scroll in activity dispatchtouchevent motionevent event and apply the pinch-zoom function of the app with step by step information of the wheel scroll for example final float vscroll = event getaxisvalue motionevent axis_vscroll ; - vscroll is -1 0, wheel down - vscroll is 1 0, wheel up @override public boolean ongenericmotion view v, motionevent event { int action = event getaction ; if action == motionevent action_scroll { float wheely = event getaxisvalue motionevent axis_vscroll, i ; if wheely > 0 0f { // wheel down } else { // wheel up } return true; } } mouse icon change this allows the mouse icon to change when pointed at a clickable object to change the mouse icon, set android state_hovered="true" on the required views for example app/res/drawable/tw_list_selector_material_light xml <selector xmlns android="http //schemas android com/apk/res/android"> <item android state_hovered="true" android state_finger_hovered="true"> <nine-patch android src="@drawable/tw_list_hover_holo_light" /> </item> see android's pointer icon , set pointer icon and resolve pointer icon reference guides for more details mouse app scroll bar mouse scrolling works automatically if apps use listview, gridview, or scrollview / horizontalscrollview of the google sdk see android's app scroll bar reference guide for more details keyboard shortcuts keyboard shortcuts provide enhanced multi-tasking usability in apps see android's keyboard input reference guide for more details this may include features such as closing popups —> esc switch between open apps —> alt-tab take screenshot —> prt sc undo/redo —> ctrl-z/y cut/paste —> ctrl-x/y select all ctrl-a drag and drop files drag and dropping files in android allows you to easily move files between views see android drag-drop , drag on listener and drag events reference guides for more details configure app size change the size of an application window, on supported devices running android 7 1 1 + , while connected to samsung dex set window size in dex mode method 1 adding meta-data in the androidmanifest xml the following meta-data can be used to customize the launch window size for an app in dex mode this meta-data could be declared in element if the meta-data launchwidth and launchheight is set to 0, the activity will be launched in full screen in samsung dex mode meta data value remarks com samsung android dex launchwidth int dp app launch window width com samsung android dex launchheight int dp app launch window height com samsung android sdk multiwindow dex launchwidth int dp app launch window width * this would be deprecated from samsung mobile with android o os com samsung android sdk multiwindow dex launchheight int dp app launch window height * this would be deprecated from samsung mobile with android o os <application> <!--fullscreen window--> <meta-data android name="com samsung android dex launchwidth" android value="0" /> <meta-data android name="com samsung android dex launchheight" android value="0" /> </application> <application> <!--tablet size window--> <meta-data android name="com samsung android dex launchwidth" android value="800" /> <meta-data android name="com samsung android dex launchheight" android value="600" /> </application> method 2 setting launchbounds in the code activityoptions uses the setlaunchbounds api to launch an app in fullscreen mode for example, set launchbounds as 0, 0, 0, 0 to launch the app in fullscreen in samsung dex mode the code below demonstrates how to set the launchbounds // ex fullscreen window activityoptions options = activityoptions makebasic ; options setlaunchbounds new rect 0,0,0,0 ; mcontext startactivity intent, options tobundle ; // ex tablet size window activityoptions options = activityoptions makebasic ; options setlaunchbounds new rect 200,200,1000,800 ; mcontext startactivity intent, options tobundle ; other meta-data used to set the property for window size the following list contains details needed to configure the android 7 1 1 + window size meta-data provided by samsung to set the maximum size of window dexlaunchwidth, dexlaunchheight <application > <meta-data android name="com samsung android sdk multiwindow dexlaunchwidth" android value="100" /> </application> <application > <meta-data android name="com samsung android sdk multiwindow dexlaunchheight" android value="100" /> </application> meta-data provided by google to set the minimum size of window minwidth, minheigh <layout android minwidth="320dp" android minheight="320dp"/> </layout> timing delay for header and footer samsung dex provides the ability to add a delay on the translucent header and footer bar in an application when the mouse hovers over the top or bottom of the screen, this bar will appear without a delay by default this customization method allows for a more immersive full screen experience with samsung dex meta data value remarks com samsung android dex transient_bar_delay int msec this value indicates the delay until the translucent bar is displayed * translucent bar header/taskbar in samsung dex full screen mode <activity android name=" testactivity"> <meta-data android name="com samsung android dex transient_bar_delay" android value="2000" /> </activity> disable presentation class on samsung dex mode presentation class allows an app to show content on a secondary display this may not be ideal for samsung dex apps, and can be disabled if needed see android's app presentation reference guide for more details disable fixed orientation for camera if an app requires fixed orientation for camera use, it may not translate well to samsung dex desktop mode fixed orientation for camera can be disabled, if needed see android's camera reference guide for more details some tip for real-time camera rotation control when connected to samsung dex, you can change the orientation of the camera image to best suit how your device is physically set up for example, if you have your camera mounted in landscape mode, you can display the image in portrait mode figure 11 orientation of camera you may also encounter orientation changes are needed in the following scenarios the camera app is launched on the dex screen in samsung dex dual mode the camera app is launched on the presentationview in screen mirroring mode surface configuration check the preview direction after excute camera app on the dex screen use surfaceview class surfaceholder [auto rotate is set to on]-> whenever rotate device to 90 degree and -90 degree, preview screen is also rotated in the right direction [auto rotate is set to off]-> rotation issue is occurred use textureview class rotation issue is occurred so, applications to utilize the camera in samsung dex can change the direction of a device and rotate the preview/capture screen with the camera api camera api version surface how to rotate camera hal 1 android hardware camera1 surfaceview class surfaceholder use setdisplayorientation int degree supported by camera1 api camera hal 3 android hardware camera2 surfaceview class surfaceholder camera2 api does not support to setdisplayorientation int degree in only case of auto rotate set to on, > whenever rotate device to 90 degree and -90 degree, preview screen is also rotated in the right direction textureview class application can use setrotation float rotation or settransform matrix transform supported by textureview view how to implement this solution check the mode that the app run whether samsung dex dual mode enabled or not / the presentationview in screen mirroring mode enabled or not // checkable whether device is in dual mode or standalone mode object desktopmodemanager = mcontext getapplicationcontext getsystemservice "desktopmode" ; if desktopmodemanager != null { try { method getdesktopmodestatemethod = desktopmodemanager getclass getdeclaredmethod "getdesktopmodestate" ; object desktopmodestate = getdesktopmodestatemethod invoke desktopmodemanager ; class desktopmodestateclass = desktopmodestate getclass ; method getenabledmethod = desktopmodestateclass getdeclaredmethod "getenabled" ; int enabled = int getenabledmethod invoke desktopmodestate ; boolean isenabled = enabled == desktopmodestateclass getdeclaredfield "enabled" getint desktopmodestateclass ; method getdisplaytypemethod = desktopmodestateclass getdeclaredmethod "getdisplaytype" ; int displaytype = int getdisplaytypemethod invoke desktopmodestate ; isdualmode = isenabled && displaytype == desktopmodestateclass getdeclaredfield "display_type_dual" getint desktopmodestateclass ; isstandalonemode = isenabled && displaytype == desktopmodestateclass getdeclaredfield "display_type_standalone" getint desktopmodestateclass ; // check isenabled, isdualmode or isstandalonemode as you want } catch nosuchfieldexception | nosuchmethodexception | illegalaccessexception | invocationtargetexception e { // device does not support dex 3 0 } } else { // device does not support samsung dex or is called too early on boot } // check whether presentation is enabled or not import android hardware display displaymanager; import android view display; displaymanager displaymanager = displaymanager context getsystemservice context display_service ; display[] presentationdisplays = displaymanager getdisplays displaymanager display_category_presentation ; if presentationdisplays length > 0 { ispresentation = true; } whether the app is running in the samsung dex screen or the device screen // checkable whether the camera app is executing on dex screen or device screen configuration config = mcontext getresources getconfiguration ; try{ class configclass = config getclass ; int sem_desktop_mode_enabled = configclass getfield "sem_desktop_mode_enabled" getint configclass ; int semdesktopmodeenabled = configclass getfield "semdesktopmodeenabled" getint config ; if sem_desktop_mode_enabled == semdesktopmodeenabled { isdexmode = true; } else { isdexmode = false; } } catch nosuchfieldexception | illegalaccessexception e { } get the sensor value for the device's rotation import android view orientationeventlistener; private orientationeventlistener morientationlistener = null; private static final int orientation_change_margin_in_degree = 15; public static final int angle_0 = 0; public static final int angle_180 = 2; public static final int angle_270 = 3; public static final int angle_90 = 1; public static final int angle_none = -1; morientationlistener = new orientationeventlistener context { @override public void onorientationchanged int orientation { angle = calculateangle orientation ; } }; morientationlistener enable ; // mapping the value 0,1,2,3 for the range of angle private int calculateangle int orientation { // default rule // -1, -45 315 <= orientation < 45, return value = 0 // 45 <= orientation < 135, return value = 90 // 135 <= orientation < 225, return value = 180 // 225 <= orientation < 315, return value = 270 // +- margin to prevent frequent orientation changes int newangle = 0; if orientation == angle_none { newangle = angle_none; } else if 315 - orientation_change_margin_in_degree <= orientation || orientation < 45+ orientation_change_margin_in_degree { newangle = angle_0; } else if 45 - orientation_change_margin_in_degree <= orientation && orientation < 135+ orientation_change_margin_in_degree { newangle = angle_270; } else if 135 - orientation_change_margin_in_degree <= orientation && orientation < 225+ orientation_change_margin_in_degree { newangle = angle_180; } else if 225 - orientation_change_margin_in_degree <= orientation && orientation < 315+ orientation_change_margin_in_degree { newangle = angle_90; } return newangle; } modify the preview screen with your desired value, as shown in the image above to check the value you currently have currently set, use setvaluable ispreview_amend // if using dual mode or presentation mode and the app run in dex screen, // amend the preview screen with the direction of the screen in real time // set valuable ispreview_amend to true to check whether the value has been modified morientationlistener = new orientationeventlistener mcontext { @override public void onorientationchanged int orientation { if isdexmode { if isdualmode == true || ispresentation == true { angle = calculateangle orientation ; if angle == 0 { mcamera setdisplayorientation 90 ; //using camera1 api //mtextureview setrotation 0 ; //using camera2 api and texture view ispreview_amend = true; } else if angle == 1 { mcamera setdisplayorientation 0 ; //using camera1 api //mtextureview setrotation 270 ; //using camera2 api and texture view ispreview_amend = true; } else if angle == 2 { mcamera setdisplayorientation 270 ; //using camera1 api //mtextureview setrotation 180 ; //using camera2 api and texture view ispreview_amend = true; } else if angle == 3 { mcamera setdisplayorientation 180 ; //using camera1 api //mtextureview setrotation 90 ; //using camera2 api and texture view ispreview_amend = true; } } } } }; morientationlistener enable ; in case of dual mode or presentation, amend the preview screen via the direction of the screen in real time set the valuable ispreview_amend to true for checking whether it is amended or not rotate the capture screen using values “angle” and “ispreview_amend” if the value of ispreview_amend is true, the capture screen must be rotated with the value of the angle if the value of ispreview_amend is false, the capture screen must be rotated with the value of orientation in case of using camera hal1 android harware camera1 , //rotate the capture screen camera picturecallback jpegcallback = new camera picturecallback { //rotate the image to the device screen matrix matrix = new matrix ; //if the preview screen of camera is rotated, the value of ispreview_amend is “true” //in this case, the capture screen must be rotated if ispreview_amend == true { if angle == 1 { matrix postrotate 0 ; } else if angle == 2 { matrix postrotate 270 ; } else if angle == 3 { matrix postrotate 180 ; } }else //if the value of ispreview_amend is false, the capture screen must be rotated //with the value of orientation { matrix postrotate orientation ; } } in case of using camera hal3 android harware camera2 and textureview, //rotate the capture screen if ispreview_amend == true { if angle == 0 { capturebuilder set capturerequest jpeg_orientation, getorientation 0 ; //90 degree } else if angle == 1 { capturebuilder set capturerequest jpeg_orientation, getorientation 1 ; // 0 degree } else if angle == 2 { capturebuilder set capturerequest jpeg_orientation, getorientation 2 ; // 270 degree } else if angle == 3 { capturebuilder set capturerequest jpeg_orientation, getorientation 3 ; //180 degree } } note app developers working with 3rd party camera apps must implement the correct settings according to the 3rd parties app structure appendix 1 the values to utilize for the preview / capture screen for a camera application int mdisplayorientation = mactivity getwindowmanager getdefaultdisplay getrotation the value of rotation angle for device camera camerainfo info facing rear camera 0, front camera 1 camera camerainfo info orientation angle difference between mdisplayorientation and preview screen call the api, camera setdisplayorientation int degree , with above calculated values for the angle of preview/capture screen note in the case where the camera app is selected through the samsung dex desktop display, this implementation is not allowed the above values will remain fixed as the monitor should not have the ability to be rotated appendix 2 use cases to modify the screen mirroring based on the device rotation enabling a device to rotate each has the correct value according to the rotation angle of the device disabling a device to rotate and set it to have a portrait orientation the values of the orientation and the angle must be set to “portrait” and “0” disabling a device to rotate and set it to have a landscape orientation the values of the orientation and the angle must be set to "landscape" and “90” note in the case where the camera app is selected through the samsung dex desktop display, have the values of “portrait” and “0” these will remain fixed as the monitor should not have the ability to be rotated appendix 3 implemented sample video look at the sample video when autorotate is on look at the sample video when autorotate is off samsung mobile browser follow these instructions to provide a desktop experience with the samsung internet browser by default, open web pages in “desktop view” instead of "mobile view" mozilla/5 0 linux; android $ver; $model applewebkit/537 36 khtml, like gecko samsungbrowser/$app_ver chrome/$engine_ver mobile safari/537 36 ? current values android_ver = 7 0 app_ver = 5 2 , engine_ver = 51 0 2704 106\ user agent string for samsung internet “desktop view based on chrome linux ua with additional samsungbrowser/$ver keyword allow users to switch to mobile when needed mozilla/5 0 linux; android $ver; $model applewebkit/537 36 khtml, like gecko samsungbrowser/$app_ver chrome/$engine_ver mobile safari/537 36 ? current values android_ver = 7 0 app_ver = 5 2 , engine_ver = 51 0 2704 106\ user agent string for samsung internet “mobile view” support mouse events in samsung dex mode, mouse events are processed as mouse events in mobile mode, mouse events are transferred to touch events however, because touchpad is a supported input device in samsung dex, touch events are also supported removing mouse event listeners on touch supported browsers might limit mouse usage on your web site support auto-play <video width="320" height="240" controls autoplay> <source src="movie ogg" type="video/ogg"> html < video > autoplay attribute works in desktop mode not supported in mobile mode
Distribute Galaxy Store
docmovies, tv, and game guides • fan-made content • protected logos or brand names of products including, but not limited to automobiles, motorcycles, handbags, and cameras • images of products including, but not limited to, automobiles, motorcycles, cameras, and handbags when the product brand can be identified • images of private buildings not visible from a public space, and copyrighted images of any building or structure for example, st peter’s basilica, illuminated eiffel tower, and the empire state building • works, names, photos, likenesses, or signatures of any person or celebrity generally, while they are living or less than 70 years after their death 3 2 7 for apps that include, present, or use material protected by the laws of the countries that the app is published in, or support a method to share or download material not owned by the person or entity who registered the app, the person or entity must first get the permission of the rightful owner, maintain evidence of the permission, and must present a copy of the permission to samsung noteif you find protected material inappropriately inside a galaxy store app or inappropriately available via a galaxy store app, please directly contact the app seller to resolve the issue in the case that the seller cannot be reached, you can report the violation here 3 3 kids category 3 3 1 apps published in the kids category of galaxy store • must comply with applicable children’s privacy laws and statutes of the countries that the apps are published in including, but not limited to, the children’s online privacy protection act coppa and european union’s general data protection regulation gdpr • must be designed for children under 13 years of age • must not contain links to outside of the app 3 4 miscellaneous 3 4 1 apps must comply with all local laws of the countries that the apps are published in 3 4 2 apps must observe and comply with all legal requirements and local customs of the countries that the apps are published in 3 4 3 for apps published in south korea • apps must comply with the act on promotion of information and communications network utilization and information protection, and all other relevant republic of korea laws • app registration must specify the required and optional permissions and describe why and how they are used • in-app payments/purchases apps offering forms or methods of randomized virtual items for purchase, such as but not limited to loot boxes or loot crates, must disclose the odds of receiving those items to customers prior to purchase noteyou can download the guideline on the disclosure of probability information in game rating and administration committee grac 3 4 4 apps must not visually or audibly present or encourage any type of the following content • overtly political communication • illegal activities, services, or substances • illegal, false, or deceptive investment or money-making advice, promotions, or opportunities • pharmaceutical products that are not certified in the countries that the apps are published in
Develop Samsung Wallet
docmovies", "data" [{ "refid" "ref-20230304-001", "createdat" 1612660039000, "language" "en", "attributes" { "title" "samsung wallet", "mainimg" "https // /main png" *refer to wallet cards }, "localization" [{ "language" "ko", "attributes" { "title" "삼성 월렛" } }] }] }, "account" { "type" "phonenumber", "value" "+821012345678” } } /** example **/ post /atw/v1/cards/1656147182764415319 [headers] authorization eyjjdhkioijbvvriiiwidmvyijoxlcjwyxj0bmvyswqioiixmjg1o x-smcs-partner-id partner-id-0001 x-request-id req-202303140003 x-request-cc2 kr /** payload **/ { "cdata" "eyjjdhkioijkv1qilcjhbgcioijsinrpbwvzdgftcci6imnyzwf0z…" } [response] type value description http status 200 ok payload n/a example 200 ok [result] http status code description 200 200 ok 400 400 bad request requests cannot or will not be processed the request due to something that is perceived to be a client error 401 401 unauthorized authorization token is invalid or expired 500 500 internal server error 503 503 service unavailable
Learn Developers Podcast
docmovies as well like the lady in the tramp that's on disney plus that was filmed they actually looked at my house to potentially film it there but they said that the lot was too big so they actually filmed it a few blocks down and yeah, and then also, my house is where the movie legend of bagger vance was filmed there's a scene where it's where the little kid lives the caddy and there's a whole scene at the dinner table where they're, they're talking and stuff that's my dining room oh, wow it was one of the houses the few houses around there that had a dining room with a view to the kitchen as well and they needed that for the scene so robert redford picked out the wallpaper it's kind of cool tony morelan 11 47 absolutely crazy yeah oh, wow i knew this podcast would be fun, but i have no idea so let's circle back around and let's talk a little bit about design okay, tell me how you first heard about the sample galaxy watch chris shomo 12 00 okay, well, i'm a tech geek i love any type of mobile tech, especially before the watches came out on i was like a cell phone fanatic like, you know, first we wanted them to get small and now they're getting bigger yes now we need the biggest phone ever, which i absolutely love but i was eyeing smartwatches for a while and finally i was like, okay, i'm getting one at the time i'm like, i couldn't really afford it but you know, i don't care i'm getting one so i went down to the best buy and i got the first gear s to sport i just loved it it was great but there was one thing that bothered me i needed more watch faces i was bored with the watch faces that were available and went on the it was galaxy apps before but now the galaxy store and you know, i even paid like i think it was like five or $10 for a watch face it looked like the coolest one out there then like, alright, how do i make my own? so that's when i just googled and i found it was the galaxy watch designer well, at the time, it was the gear watch designer 1 0 wow and, like, right when it first came out, i mean, i think i might have actually caught it within days of it coming out and i downloaded it, and i just started playing around with it and i never even planned on releasing any of them for anybody else i just, you know, wanted to make some for me and then i'm like, alright, look, i can, i can load some and see if i can make a few dollars let's do it so i think i made like $17 off of two watch faces the first day and then i'm just thinking to myself, like, you know, what if i have like 300 watch faces on there, you know, how much how much can i make her? so i mean, sure enough now gosh, i have about 394 watch faces and themes published wow, that's amazing and how long would you say this has been? oh gosh i started in i think it was february, early february of 2016 okay, so when i started, and you can actually kind of look back at some of my very early designs, and see how the design has improved over time sure the very first one that i did, i just called it gear spin and i didn't really know much about the designer, the software and everything i was just getting into, it didn't really think that i could even put a graphic on, you know, a watch hand and use it other than a watch hand at the time so i even animated a gear using adobe flash exported the frame animations out and threw it in there just to get a gear spinning sure now, i'll just put it on a second hand but i'm thinking coming from a designing standpoint, not a watch standpoint and, and that's something that you that you really have to start doing it start thinking, you know, i'm also a watchmaker in a way exactly, you know, so you got to start thinking, that language and that starts you know, meshing with the creative ideas and then you start, you know, you got to focus on functionality at the same time that you're trying to focus on dynamics and what it looks like, that sort of thing so tony morelan 15 11 that's true and you know, i do a lot of teaching to students just learning how to watch design and the challenges are that they've got this tool that can allow them to just do amazing graphics and amazing animations and then they forget that really, this is a time piece where people need to quickly tell what time it is so even though you can have a lot of fun with your graphics in your animation, you still need to make it where you know on quick notice, you can actually tell what time it is i mean, that's the whole the function of the watch and that's what i love with your designs as well i mean, you've got some amazing, fun, quirky, crazy designs i mean, everything from dogs and butterflies to spooky, eyeballs and reapers so let's talk a little bit about your approach to design and some of the tools you're using you had mentioned adobe flash so we're going back in the day oh gosh, yeah chris shomo 16 03 well, i don't use that anymore but i used to use that all the time tony morelan 16 07 so tell me kind of that your workflow, you know, when you know, from concept, your tools, are you sketching on pencil and paper when you have an idea, or do you just dive right into a software program? chris shomo 16 18 well, i guess this is where professors are going to want to smack me and i should be sketching more than that you know, scat always says, you start with the basics, and you start sketching, and i need to carry around a sketchbook but no, i kind of jump into the software first but in a way, i kind of sketch digitally i'll start with a program like adobe illustrator, just to get the basic shapes done and i'll move them into photoshop, of course, to get the nice effects to get the textures, some of the shadows or to create the shadow layers that you'll export separately later you know, those are our two the main tools of getting i guess, the framework of the of the watch, but of course, i like to do animations, so using a lot of after effects and premiere, and sometimes when i have to maya and all that kind of stuff, and then you know, getting it out to the, the frames, and also being very cautious about file size as well you know, we are dealing essentially with an app, even though it's very focused around design, which i'm very thankful thank you samsung for giving me awesome design software, where i don't have to code everything but, but you do have to remember that, you know, people will get frustrated if you have a, you know, a 50 megabyte watch face, which i mean, i could easily make one that large but it's all about understanding the compression and understanding your tools to make sure that when you deliver that watch face, it's fine, it's dynamic, it has all the effects but it doesn't take forever to install or it doesn't, you know, someone doesn't have an issue with it so understanding the technical side but really understand or design software tony morelan 18 02 that helps, you know, and you had mentioned a little trick that i may have actually learned from you in that where you had said that you know, your first animation was done using flash and bringing those in as animated gifs but you then said, hey, i could have just made this a watch hand and that's one of those tricks that when you realize that watch hands don't actually have to be watch hands it's the watch and feature is basically just a rotating graphic that you can then set its direction that it rotates, you can set the you know, the time that it rotates so again, another tip that came from chris that helped me in my, in my success as a watch face designer and i'm actually going to take this moment to thank you again, because it was your you had mentioned, you started in 2016 i think it was at the developer conference in 2017 that samsung invited you out to actually speak at the event was that correct? yes, that's right so tell me a little bit about that that experience, because it was after that conference, they posted the video online and that's how i first learned about designing for samsung it was finding this video of chris shomo from infinity watch faces speaking at the conference, that then got me excited so tell me a little about that chris shomo 19 20 uh, that moment, the whole experience was awesome at first late, like when you get an email saying, hey, would you like to come to the samsung developers conference? i'm like, what, at first, i'm just kind of like, samsung sees me this is cool you know how to play i'm getting so excited the experience was great meeting the team was wonderful and just, you know, the team itself were, you know, the designers of the software, the galaxy watch designer, and all that they were so embracing of everybody that came it was such a wonderful experience and then also talking with them and understanding, you know, their process and what goes into creating the software that was amazing too but i guess one of the, the most awesome and rewarding parts of this is all the designers led you, to me that have come to me, it's just like, just been like, thank you for giving that presentation because you guys showed me that, you know, anybody can do this and, and, you know, and then if you have some fun and, you know, wonderful designs that people like then then you can really succeed at it as well and i just i love that yeah, that i could influence someone to start a watch face design career there's another one in particular, that is with usa design he started a little bit later he was doing some games for the watch and he was there at the presentation as well and now he's like one of the top sellers it's amazing he jumped into it he founded as a design formula that works really great with the active two, especially when that came out without the bezel at the time, and is doing phenomenal and i just absolutely love to see that and the fact that i might have played a part in pushing him in that direction is just, it's rewarding it's humbling it's, it's cool tony morelan 21 28 yeah, no, that's, that's great it was you know, when i watched that video of your presentation, and you had mentioned, the first thing was that you can create these watch faces without coding you know, i've done a little bit of coding, but my experience is a lot like yours i mean, i had my own freelance design company i did a lot of website designing but when i learned that you could create these watch faces, really without doing any coding so it's just such an extension of photoshop or illustrator in using like after effects with the timeline you can have so much fun doing it you had mentioned earlier little secret again, just like the watch hands rotating how you could actually have buttons that you could tap and reveal things by using a transparent png that didn't have any pixels in it, you use that as sort of like a cover button well, when i learned about that, i then dove into this whole idea of being able to tap certain areas of the watch and have it reveal new things like, you know, if you wanted to show your step counter, you could tap an icon and it would then show the numbers so you could customize the look of the watch face, cleaning it up by not having all the graphics show, but tapping to reveal whatever sort of data you wanted to see your heart rate beats per minute, i mean, all sorts of different elements and it was from you the that i learned about that i then have totally expanded on that creating videos on tap reveal, that are shown on youtube and doing a whole thing around that and i've seen that a lot of people really enjoy, you know, learning about that and that again, came from you in that presentation so thank you a big thank you from the crowd of designers that really appreciate what you've what you've inspired chris shomo 23 09 thanks yeah, i mean, it's fun and that all kind of spawned from figuring out a solution to putting all this information on a watch face, but not making it look too busy and so kind of hiding it and revealing it there, it kind of making use with the tools that are given to you, and how can you make it work to simulate something when you when you don't have all the code underneath it so tony morelan 23 35 that's great so we've talked a lot about watch faces i know you also are doing theme designing so what was that progression? you first were designing for watches and then learn that you could actually do something very similar with theme studio and creating themes for our phone devices chris shomo 23 52 yeah, no, the whole idea is matching your watch face to your theme and having total continuity between the two and for example, the shock theme that one's actually a free one just called shock, you can look it up that's the most downloaded theme that i have and it has a matching much face called shock as well so you just be shocking everybody with the shock but, but yeah, in those i also like to i like to make fun and exciting something that you wouldn't expect from dancing frogs to lightning bolts to oh gosh, and i got so many more that are just about to come out i'm not going to ruin the surprise, but y'all are gonna love them tony morelan 24 34 wonderful i'm looking at your website and the one that jumps out to me is martian bash i know it's a great dancing alien you know, how is that is there been a lot of success behind some of these quirky dancing cuz i've seen like santas dancing and you've got a lot of fun ones chris shomo 24 48 well, yeah, because i want to reward people for taking some steps a lot of these characters that are on there, they change what they're doing based upon step gold percentage so if you want the aliens dance you're going to have to meet your step goal so in the morning, he might, you know, he's standing there, he's waving at you and then as you proceed during the day, he's running one direction and towards you that another direction and then finally, yeah, he's dancing whoo, you just read your step goal one of the points of these watches is for health and to encourage people to, you know, get out of the chair and you know, move around, and so why not make something that's fun and exciting and encourages that at the same time? that's great so even the one called bolt that has lightning bolts that go across it starts as like a tiny little bolt and as you proceed through the day with your step, go, more electricity comes out and i'm getting ready to release another one with a fun little loving alien that does a lot of other stuff to your step goal as well so that should be fun tony morelan 25 45 super excited about that tell me watch face designing and theme designing is this your full-time gig or do you actually still go back and do some of your website designing or anything beyond design? chris shomo 25 55 oh, this is actually full part time gig chris shomo 26 00 between that and website design and i'm also the cto and creative director of the picker joe's brand you probably heard of antique pickers, vintage pickers, they go around and find really cool stuff and bring it to people yes so yeah, there's a store in savannah, georgia called picker joe's antique mall and it's 10,000 square feet 25,000 items that change daily, about 65 antique pickers that go out and find all this stuff we like to say that it's an experience like no other because it really is we have people that come in from different parts of the world, from across the country, and they go, wow, this is the best antique mall experience that i've ever had and we've also been on oh gosh, i don't know how many interviews so far with the same production company that does american pickers and so they are still considering us possibly for that show oh, wow but, but i designed the branding and do all the advertising and we do crazy videos usually filmed with the latest samsung phone as well and if you go to our instagram if you look at our youtube and stuff, you'll see some of the, the wild and insane advertisements that we do all the time and that's one of the things that really sets it apart from other stores i mean, if you ever heard of an antique store that you know for halloween has monsters invading us and appearing everywhere and like all sorts of things, no, probably not but i encourage everybody to check it out and if you're in savannah, you've got to experience it you really did tony morelan 27 31 definitely in i can see in your designs you definitely have a lot of fun humor happening i'm looking at the watch face for joe, joe's, your character of the dog that seems like his tongue is actually bigger, bigger and then his head and wagging more than his tail yep, chris shomo 27 53 yep and i actually have a dog named joe and that's actually what picker joe's is named after do oh, that's great figure so he's a jack russell and he actually looks very similar to joe and he likes all the time he's always happy and always mischievous as well, too so, again, he'll react to your step go, he'll, he'll do some fun stuff at 50% as well so definitely check that out tony morelan 28 18 so, are you doing all this design work yourself? or do you have a team of designers that work with you in producing watch faces and themes? chris shomo 28 25 most of this stuff is just me but i do have a another a friend and fellow colleague that graduated with me, jonathan maillard he's over in denver right now so i do pull him in on tons of different projects we're working on some right now some interesting apps and hopefully in the very near future, some game designs as well oh, that's great that's great yeah, games are a big push for samsung so super excited to hear that you're going to bring your brand over to that side and let's produce some amazing games it's going to be fine do you work out of your house? do you actually have an office space? okay, i have multiple locations that i can work out of i definitely have the house set up and with the cool gaming computer and all that kind of stuff and then we have the office which is actually right above a florist it's really cool you can walk up the stairs and you smell roses love it always say i always get to stop and smell the roses every day and, and then also working out of picker joe's as well in the side office there tony morelan 29 26 so we talk a lot about savannah is that where you were born, or were you born and raised somewhere else? chris shomo 29 33 born and raised in the mountains of virginia and pulaski, virginia? oh, wow yeah so a little town called pulaski it's in the middle of the blue ridge mountains and it's your cool i guess mainstreet hometown recently it's been hit kind of a little hard from the economy my master's thesis in school for architecture was actually called the polanski institute of art design, which was taking the million square feet of the pulaski furniture plant and change it into a design school, which would in turn, hopefully help the economy and encourage businesses to open up to cater to students and yeah, that's pretty much what my master's thesis was first seen on my hometown but then, of course, i moved to savannah in 2000 and i've been there ever since tony morelan 30 29 so let's talk a little bit about marketing i mean, you are definitely one of the most successful designers for samsung tell me some of your tips and tricks when it comes to actually marketing your watch faces in your themes are you using social media? are you doing any additional advertising? what's your what's your approach to marketing? chris shomo 30 49 okay, so first off, i started out with the website, and just really making sure that it crawled on google so i'm always getting some sort of traffic and so either way website at any given moment can get like 200 to 500 hits a day, which, you know, that really helps just get the brand out there tony morelan 31 08 and share the url chris shomo 31 10 oh, it's www infinitywatchfaces com, and also social media, instagram and facebook we used to use google plus a lot it was a big designer community, but of course that's gone but that has shifted over to the facebook groups now and like the facebook group, that ash with iot gadgets, runs, it's one of the largest facebook groups out there and they have great moderation some good people are definitely running it and it's a great place to really show off your designs and spread the word to everybody and it has just a great following so i always recommend you know, get on social media and you just scream out your brand's everybody i actually tony morelan 31 55 interviewed ash iot gadgets on the podcast nice if you haven't listened to that yet, go back a few episodes it was a great, great time he's an excellent interview, great person doing amazing things and yeah, that facebook group is huge it's crazy chris shomo 32 11 yeah, it's crazy it's got to take a lot of time to moderate i'm sure it does but um, oh, and also on youtube we got our favorite watch face reviewer andrew tony morelan 32 22 jibber jab reviews yes and again, that came out of your presentation when you spoke at the conference you'd mentioned jibber jabber, and first thing i did when i became a watch-based designer was track jibber jabber reviews down on youtube and get him to review some of my watch faces i have just done a live chat with andrew, that we published last week great interview, he talks a lot about strategies, not only using youtube, but even beyond youtube for marketing your app so and i know you've got a great relationship with andrew, can i say this? can i share this? you're helping him with a new website that he's launching is that correct? chris shomo 32 59 yeah as the website is in the very beginning stages, it's going to grow over time doing some interesting work on pulling his youtube channel and all over the place and yeah, it's going to be something you're going to want to visit very often cause he's going to have some cool giveaways and a bunch of other stuff so, yeah, andrew is great to work with and it's interesting, because, you know, in the very beginning, he's tracking down watch face designers to do a review, and now everybody's tracking him down, of course, which is wonderful but, um, but yeah, he's done a phenomenal job and he's just, he's very vital to the community i totally agree i mean, andrew is a great guy and a lot of watch face designers owe their success to, to andrew so your watch faces and themes have a lot of animation so i want to ask about instagram a lot of times people just post pictures on instagram are you utilizing videos on instagram? oh, probably more video than anything else and a lot of that video is just taking my galaxy phone and just reading according the watch on my wrist, this is the first thing i want to do actually, as soon as i have a design, like even almost done, it's a work in progress and it's fun sometimes for your customers to see works in progress to see the early stage and, and all the work that goes into it as well and you'll find that you'll get a lot of a lot of following on there, which is great and, and a lot of times customers will, will critique it and you'll end up getting a better design in the very end because they kind of helped with the design process ah, that's awesome i think the first thing i do, of course, is i post on instagram and then the next thing i do is i head on over to that large facebook group and i started announcing there and, you know, i'll do some, you know, some works in progress, like post and that sort of thing you know, making sure that i replace that post as opposed to adding another one with, you know, the final, you know, work and just, you know, keep on updating that that sort of thing because you know, everybody's notified at the end another picture to a post they like so, yeah, just knowing these little tricks with social media and with instagram, knowing how to use your hashtags, it's all about hashtags on instagram, yeah, then you don't have to, to pay essentially, we're on facebook, you know, you might want to, you know, every once in a while, on paid advertise a little bit, sometimes it works but the main thing is being active with those groups, getting people to recognize your brand and getting repeat customers that also want to share your stuff, too tony morelan 35 30 and glad you mentioned the hashtags, we actually posted on our site, which is developer samsung com if you go to the galaxy store page, we actually posted a long list of valuable hashtags that you can use, whether your marketing your watch faces or your themes or apps or games so it's a great place to start to go take a look at some really good hashtags that could work chris shomo 35 52 nice and i just need to give a huge shout out and thank you to everybody with the samsung developers program because like i've also seen that grow over time and the resources available are just amazing and it's so helpful and you guys have yeah, even great every step along the way thank you tony morelan 36 13 yeah, no, you're welcome you're welcome you know, one of the things that we've done to try and help designers like yourself promote their apps is galaxy store badges, which i know that you use so a little bit about your experience with that, and where are you using those galaxy store badges? chris shomo 36 31 well, these badges are great because first they make you look legit they make you look professional, because they know, you know, it's 100% hey, this is available on the galaxy store and also being able to track the clicks and where people are coming from you can you can make a link specifically for a facebook promotion and you know, how many people you know clicked on that to participate in that so how do you know how where to grow unless you know where you stand and that helps you understand this statistics and where people are coming from so it's a valuable resource tony morelan 37 03 what about banner promotions? i love chris shomo 37 06 banner promotions you will see your best downloads during then that when you have one of those and ron is great yes, yeah, he helps guide you along just making sure that the banner looks great definitely everybody needs to take in his comments, everything that he tells you because i mean he, he's saying him for a reason so he will help your sales tony morelan 37 29 my biggest success came from a watch face that i had done that was featured on a banner promotion and it was crazy the amount of downloads and sales that were generated by having that banner promotion so for designers out there, once you've got a collection of strong designs, then you can approach samsung about being featured on a banner there is no cost to the banner, but there are a lot of people requesting it you have to be approved proved to actually have your designs featured on a banner but definitely worthwhile pursuing for sure chris shomo 38 07 and make sure that you have your social presence as well and all your facebook page and instagram page and all that when you submit for the banner because you know it's going to make you a better candidate for one tony morelan 38 18 yes, definitely they actually look at that they want to see previous downloads how much success you've already had so once you've got some experience, it's definitely worthwhile to at that point to reach out and then apply for a band promotion going back to your video, so you do have a lot of animation in your watch faces and your themes and i know you leverage video so talk a bit about youtube are you taking like all of these designs each time and posting them on youtube creating videos to expand your reach? chris shomo 38 44 most of them the main reason to do the video for me on youtube is to really have something dynamic to show on the galaxy store when someone sees that video after they land on your listing it really can be the difference as to whether they're going to buy it or not, and since most of mine offer animations to them, it makes sense to have a video to, to show it off one thing that i, i wish that the galaxy store had was an animated preview, like on like where the icon is, that was really cool because then everybody would be gravitating towards mine and other animated faces instantly but, but yeah, the youtube video is what really makes a difference and there are some watch faces that need to actually go back and make some videos for sometimes you finish the face and then of course, you're like, oh, now i have this whole production i got to make tony morelan 39 35 sure i totally agree with that and let me explain a little bit further about what you were talking about creating the video so that people can see it when they're viewing your galaxy store page so on the galaxy store page for a watch app, you have what are called screenshots and these screenshots show still images of your graphics that you use your marketing graphics however, there's also a way for you to include a little link to a video on youtube so you grab your youtube url, place it into your, your application for the, for this app and the very first screenshot will actually show your youtube video instead of the still image so it's a great way for users like you had mentioned, that want to see the motion, they can actually click on that screenshot, and it will launch the youtube video so it's a great way to market, you know, motion in your graphics so you had mentioned that your top theme is a free download so let's talk a little bit about the approach of offering apps for free because i know a lot of designers utilize the ability to you know, give away their apps and some designers are a little tight with that and they hold on to them and they don't do it where do you stand? i mean, are you using this as a marketing tool? do you just want to like get your brand out there? chris shomo 40 43 well, it started as a marketing tool, because you know, there's also a free section on the store, and if you don't exist on it, then well, it's just another avenue that people are not going to find you so you definitely need to make a free one and a good free one too just don't pick your worst design and be like, oh, i'm just going to make it free no, no, not at all it's not going to do any good so, for example, actually i did a watch face for jibber jabber reviews for andrew and that turned into my top downloading free watch face and that one at one time oh my goodness i think it was downloading like one to 3000 times a day tony morelan 41 22 wow so this is a branded jibber jabber reviews watch face yes so you so i actually remember when he posted his review of that i didn't realize that you were the designer behind that that's awesome yeah, chris shomo 41 35 but my name snuck on there like a little bit, but i wanted that to be mainly about him sure but yeah, not that one still gets downloaded like hundreds of times a day and stuff that very solid one and it gets reviews every single day to love it so having some free faces you can get discovered from people that you would have never discovered you before as well if you can get your watch face up to, you know, a certain section of the free section, which means it has to be good, essentially so, having done this now for several years, i'm sure you could face some challenges will first has been just the challenges of, you know, just growing with the software and understanding what you can do and taking advantage of updates to the software, like when the gyroscope became available and you could use that, oh my gosh, i was so happy when we could do that because that just adds a whole new level of dynamics to the watch faces and so it's really just, you know, learning your tools, but then also encountering that the watch face market has gotten a little bit congested with you know, there's a lot of people, you know, so you definitely have a lot more competition than when i first started out and, you know, i was just thinking the other day, i was like, wow, if i knew what i knew now, right in the very beginning, would i've been designing more sophisticated watch faces and have like a whole monopoly in the market or something like that, you know, you always think back like, oh my gosh, but no, no, i grew at a great rate with the software with the other designers you'll find that a lot of the other designers have become, you know, friends we all talk with each other yeah, we help out each other but yeah, it's a great community it really is tony morelan 43 22 talking about some of your favorite designers and who are the designers that you follow that you're inspired by? chris shomo 43 27 oh gosh, like jeweler broda like oh my gosh bergen of course like, those are great such clean watch faces i love those chris shomo 43 41 md matteo dini oh my gosh, like a little jealous there we'll have to say, but, but yeah, he's, um, the those are just a few of some of the amazing designers out there and a lot of great designers and, and again, the main thing is you know, everybody communicating and kind of working with each other? you feel like you are part of the community regularly tony morelan 44 07 yeah, that's what i've noticed i'm not too long ago actually did a podcast interview with tomas yes check from vienna studios yes yes great person yeah and he's done some amazing designs yeah, he's taken a different approach to watch face descending, where he designs extremely high end, very expensive watch faces that are in the hundreds of dollars and he is one of our top whitespace designers i mean, he has found a way to you know, make amazing revenue off of these high-end watch faces so yeah, i love the community it's been a lot of fun for me to not only be inspired by them when i was a watch face designer, but now being fortunate to be in a position working at samsung, i now get to have these conversations and then help out where i can with some of these you know, the rock stars of the watch facing design community chris shomo 45 04 that's awesome and i promise you that we all appreciate you too thank you so much tony morelan 45 09 thank you tony morelan 45 11 you've used galaxy watch studio for some time now, i'm going to ask you, what sort of features would you like to see added to it? so you'd mentioned about adding animations, maybe as a preview in the galaxy store but what other features would you like to see added to the galaxy watch studio, chris shomo 45 26 probably some little nitpicky things like being able to start and stop an animation with a click of a button that would be great to be able to have an animation react while your mobile for example, if i could have a guy that starts to run while i'm running, that would be cool to sure that would even take that joe watch face to another level, which would be awesome and then maybe in the future, and i think that someone was talking to me about this, but having the ability to do 3d and be able to put like a 3d mesh in there and have real shadows and that sort of thing who knows that that's really thinking into the future, that sort of thing sure and then if we look over to the theme side of things to my main one that i want right now is to have gyroscope action to have parallax effects i think that would add another dynamic to the theme designs tony morelan 46 25 yeah, i love that suggestion chris shomo 46 27 yeah so just, you know, just having like, you know, three to five layers that you could work with that could react with the gyroscope to mess with for like the regular background image people are looking at their phones, i don't even know how many times a day so let's make it like the best, most awesome dynamic experience ever and that would just be great tony morelan 46 48 that's what i mean wishes for that you know, and you were the first designer that i saw that truly leverage the gyroscope on the watch, where i can't remember the name of the watch face you had but as you rotated your wrist because of the gyro functionality these like metallic, big doors just like opened up to then show you know, the like data, you know whether it's the digital clock or heart rate, but it was so cool i could rotate my wrist and have these metal doors on my watch, paste, you know, collapse or open so that's how i first learned about the gyro is from your from your watch face design chris shomo 47 26 yeah, that as soon as they came out with the gyro is just like, oh, how can i use this to do like, tons of different things and i was thinking like a cuckoo clock, you know, when it opens up and that sort of thing so that kind of started at all and trying to think what the first one that i did using that is think it might have been digit glow spark tony morelan 47 45 that sounds right yeah so do you have any tips for designers when publishing on the galaxy store? i mean, we've mentioned a lot about marketing, but when it actually comes to, you know, creating the graphics behind their apps, what sort of tips could you give people and publishing on the galaxy store? chris shomo 48 05 definitely bone up on your photoshop skills, you got to design those thumbnails, don't just throw, you know, watch on a white background with the watch face on it because you really have to grab someone's attention talking from my website design experience, on average, you have about three seconds before someone clicks the back button or continues to read on the website it's kind of the same thing with watch face listing you know that you can have written information, everything, people aren't going to read it they're their visual, they want to look at the thumbnails and it starts with the icon as well make sure that icons looking good tony morelan 48 40 that's great are you familiar with the tool that i created called the asset creator? chris shomo 48 45 yes and i've actually been through it and i've used some of it to create some of my thumbnails and, you know, pulled some stuff out of it and threw some stuff in and that sort of thing so tony morelan 48 54 that's awesome yeah so super excited you know, we just announced galaxy watch three yes and so i spent a bit of time recently updating the asset creator to include all of the new watches for the galaxy watch three i just checked, you can actually go download the new updated version of the asset crater that includes all that that was just published recently so, in addition to that, i also have created what we call lifestyle photo packs, using the same tools within photoshop that allow you to use smart objects to quickly copy paste your design into a watch and have the perspective change and have the blurred change so that it truly just simply photoshopped right onto the watch i am madly working on new photos that show the galaxy watch three i will be publishing those very, very soon so super excited those have been a big success, a lot of help for people because it's not just showing your watch face on the watch just on a simple straight, you know, top down picture we're actually taking the watch and putting it into a scene so whether it is, you know, sitting on water drops, or it's on a slab of granite, or you know, some high-tech texture, these are great pictures to help using your screenshots when you're publishing your app so, look for those new galaxy watch three lifestyle photo packs coming out very, very cool chris shomo 50 22 i'm excited and one thing that's cool about that is it allows the customer to relate to the watch and wearing that watch face more by having photos like that so that that's great you can get your customer to relate to your product, you're golden, an architecture professor actually told me one time that a building or a product, any type of product, it is 10% your ideas and 90% the way you present them so if you can't present it right then your product is not going to mean anything tony morelan 50 55 so what is in the future for infinity watch face design tell me what can we get excited about? what's happening? chris shomo 51 02 oh gosh, what is in the future? we got so many things in the future, we're going to have some games come out, you know, break into the, the other part of the app world still continues with wearables of course, we're going to expand our video production as well working on that and infinity watch faces is going to be getting really involved with local businesses really soon, and helping promote their businesses to other local people and visitors ever since this whole pandemic, things going on local businesses have been hit so hard, we've lost a few in our neighborhood i just don't want to lose any more so i'll be going out and you know, just really doing what i can to tony morelan 51 49 help that's wonderful yeah, these are definitely challenging times you know, it's been a while now that we've all kind of been in this sort of lockdown and we've realized the effects that this has really had on our economy, it's also been an opportunity for us to try and find new ways to, you know, to still do the work that we do and in the reach that we do so it's nice to hear that you're, you know, finding ways to sort of help out in all of that aspect so, going back to the fun designs that you create, i need to ask you right now, which if you have to pick one, and then you've got 390 plus, i want you to pick one design, what is your current favorite? chris shomo 52 36 i know this is going to sound a little goofy, maybe a little girly the butterfly named fred love it's not very i think because the way the flowers interact with your wrist and then that that butterfly just landing perfectly right there on it every single time it makes me happy and the dude's name is fred come like fred butterfly tony morelan 52 59 how did you come up? fred for the butterfly, chris shomo 53 02 i don't know i was just kind of looking at an insect one day and i named an insect fred and then i was like, ah, this butterfly should be named fred now, i mean, i could have called it something like beautiful butterfly or blue butterfly or you know, just some sort of whatever name but let's give him an actual name and let's make a character out of this yeah wow, that is a great story i'm going to close this podcast though by asking what does chris sharma do for fun when you're not designing these wild themes and wild watch faces? oh, i live in the city of fun i mean, just going around and you know, going to experience the different restaurants and just the atmosphere in the summertime, i guess staying indoors more because it's so hot and humid down there someone asked me one time what's it like living in the south during all this heat because like just the other day that heat index was like 105 degrees that's of course, when you combine the humidity and the actual temperature, that's what it feels like and i told him when i was like, alright, take the hottest shower that you can now get out of the shower, do not dry off and put your clothes on that's what it feels like oh, so it's a sauna out there tony morelan 54 22 that's crazy you know, and i will say i have to share we've had to reschedule this interview numerous times, because there was a hurricane going through savannah and you were losing your internet connection so yeah, living in the south, i think definitely has a lot of excitement chris shomo 54 37 well, the hurricane is actually one of the normal things for 2020 chris shomo 54 43 we were very fortunate that the hurricane mainly missed us we got some wind from the outer bands and locally, my internet was like, it was all over the place we didn't have it and we had a flood yeah, it's just something that we got to deal with but i'm glad we were fine hazleton connect and get this interview done tony morelan 55 03 yeah, this is great this has been a lot of fun so chris, thank you very much for joining the podcast much access to you at infinity watch faces and looking forward to all the great new designs i know they're going to be coming down the road for us so thanks again chris shomo 55 15 thank you, tony and thank you, samsung, you guys are awesome outro 55 18 looking to start creating for samsung, download the latest tools to code your next app, or get software for designing apps without coding at all sell your apps to the world on the samsung galaxy store check out developer samsung com today and start your journey with samsung the pow! podcast is brought to you by the samsung developer program and produced by tony morelan
Develop Smart TV
apivoiceinteraction api to use samsung product api, <script type="text/javascript" src="$webapis/webapis/webapis js"></script> should be loaded in index html samsung tvs allow developers to use voice commands such as navigation, search, selection and media control to control their application the voice assistant in the tv can be bixby or other assistants regardless of which assistant is used, the application will interact with it via the voice interaction apis for best results, we recommend the application to be implemented with all the features that are described in this document since 6 0 product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol summary of interfaces and methods interface method voiceinteractionmanagerobject voiceinteractioncallback optional voiceapplicationstate onupdatestate ;optional boolean onnavigation voicenavigation voicenavigation ;optional boolean onsearch voicesearchterm voicesearchterm ;optional boolean onplay ;optional boolean onstop ;optional boolean onpause ;optional boolean onexit ;optional boolean onselection long voiceselection ;optional boolean ontitleselection domstring title ;optional boolean onfastforward ;optional boolean onrewind ;optional domstring onsearchcollection voicesearchterm voicesearchterm ;optional boolean onchangeappstate voiceapplicationstate state ;optional boolean onchangeprevioustrack ;optional boolean onchangenexttrack ;optional boolean onrestart ;optional boolean onskipbackward long offsetseconds ;optional boolean onskipforward long offsetseconds ;optional boolean onsetplayposition long position ;optional boolean onchangesubtitlemode mediafunctionmode mode ;optional boolean onchangeshufflemode mediafunctionmode mode ;optional boolean onchangescreenfitmode mediafunctionmode mode ;optional boolean onzoom mediazoommode zoom ;optional boolean onrotate mediarotatemode direction ;optional boolean onchange360mode mediafunctionmode mode ;optional boolean onchangerepeatmode mediarepeatmode mode ;optional boolean oncontinuewatching ;optional boolean oncustom domstring jsonobjectstring ;optional domstring onrequestcontentcontext ;optional boolean onadditiontolist listitem list ;optional boolean onremovalfromlist listitem list ;optional boolean onplaylist listitem list ;optional boolean onbrowselist listitem list ;optional boolean onskipad ; voicesearchterm voiceinteractioncontentcontext voiceinteractionmanager domstring getversion ;void setcallback voiceinteractioncallback callback ;void listen ;domstring getdatafromsearchterm voicesearchterm voicesearchterm, voicesearchtermfield field ;domstring buildcollectiondeeplinkdata domstring appid, domstring title, domstring payload ;domstring buildcollectionshowdata domstring appid, domstring title, domstring payload, domstring thumbnail ;voiceinteractioncontentcontext buildvoiceinteractioncontentcontextitem long positionx, long positiony, domstring title, domstring[] aliasarr, boolean bfocused ;domstring buildvoiceinteractioncontentcontextresponse voiceinteractioncontentcontext[] contentcontextarr ; 1 type definitions 1 1 voiceapplicationstate the application status handled via voice interaction enum voiceapplicationstate { "none", "home", "list", "player", "setting", "search", "unknown" }; the following values are supported none application default status home the status of application's home list the status of application showing something in list player the status of application playing something setting the status of application showing its setting search the status of application searching its content unknown the status of unknown 1 2 voicenavigation the navigation via voice interaction enum voicenavigation { "nav_previous", "nav_next", "nav_left", "nav_right", "nav_up", "nav_down", "nav_show_more", "nav_unknown" }; the following values are supported nav_previous the navigation for the previous page nav_next the navigation for the next page nav_left the navigation for the left item nav_right the navigation for the right item nav_up the navigation for the upper item nav_down the navigation for the down item nav_show_more the navigation for the detail page nav_unknown the navigation for unknown 1 3 voicesearchtermfield defines the fields which can be delivered via voice search enum voicesearchtermfield { "search_term_utterance", "search_term_title", "search_term_genre", "search_term_cast", "search_term_content_type", "search_term_release_date_from", "search_term_release_date_to" }; the following values are supported search_term_utterance the field for the full utterance search_term_title the field for the title search_term_genre the field for the genre search_term_cast the field for the cast search_term_content_type the field for the content type movie/tvshow search_term_release_date_from the field for the start date time iso 8601 search_term_release_date_to the field for the end date time iso 8601 1 4 mediafunctionmode enum for the param of media control function mode enum mediafunctionmode { "media_function_on", "media_function_off" }; the following values are supported media_function_on media function mode on media_function_off media function mode off 1 5 mediarotatemode enum for the param of rotate enum mediarotatemode { "media_rotate_left", "media_rotate_right" }; the following values are supported media_rotate_left media rotate mode left media_rotate_right media rotate mode right 1 6 mediazoommode enum for the param of zoom enum mediazoommode { "media_zoom_in", "media_zoom_out" }; the following values are supported media_zoom_in media zoom mode in media_zoom_out media zoom mode out 1 7 mediarepeatmode enum for the param of media repeat enum mediarepeatmode { "media_repeat_off", "media_repeat_one", "media_repeat_all" }; the following values are supported media_repeat_off media repeat mode off media_repeat_one media repeat mode for one track media_repeat_all media repeat mode for all tracks 1 8 listitem enum for the param of list item enum listitem { "list_bookmarks", "list_watch_later", "list_unknown" }; the following values are supported list_bookmarks bookmarks list_watch_later watchlater list_unknown unknown 2 interfaces 2 1 voiceinteractionmanagerobject the voiceinteractionmanagerobject interface defines what is instantiated by the webapis object from the tizen platform there will be a webapis voiceinteraction object that allows access to the functionality of the voice interaction api to use the voice interaction api, the following privileges must be declared in the manifest file of the application if they are not declared, all usage of these apis are blocked, and security exceptions are thrown to use these privileges, the minimum ‘required_version’ is 6 0 [nointerfaceobject] interface voiceinteractionmanagerobject { readonly attribute voiceinteractionmanager voiceinteraction; }; webapi implements voiceinteractionmanagerobject; since 6 0 attributes readonly voiceinteractionmanager voiceinteraction this attribute defines the namespace for voiceinteraction apis 2 2 voiceinteractioncallback every voice interaction application should implement a callback function, so that the assistant can operate the controls your application can interact with voice assistant by passing the callbacks in webapis voiceinteraction setcallback and calling webapis voiceinteraction listen except onupdatestate, onsearchcollection callbacks, the return value for the callback is the boolean flag for support or not if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function [callback, nointerfaceobject] interface voiceinteractioncallback { optional voiceapplicationstate onupdatestate ; optional boolean onnavigation voicenavigation voicenavigation ; optional boolean onsearch voicesearchterm voicesearchterm ; optional boolean onplay ; optional boolean onstop ; optional boolean onpause ; optional boolean onexit ; optional boolean onselection long voiceselection ; optional boolean ontitleselection domstring title ; optional boolean onfastforward ; optional boolean onrewind ; optional domstring onsearchcollection voicesearchterm voicesearchterm ; optional boolean onchangeappstate voiceapplicationstate state ; optional boolean onchangeprevioustrack ; optional boolean onchangenexttrack ; optional boolean onrestart ; optional boolean onskipbackward long offsetseconds ; optional boolean onskipforward long offsetseconds ; optional boolean onsetplayposition long position ; optional boolean onchangesubtitlemode mediafunctionmode mode ; optional boolean onchangeshufflemode mediafunctionmode mode ; optional boolean onchangescreenfitmode mediafunctionmode mode ; optional boolean onzoom mediazoommode zoom ; optional boolean onrotate mediarotatemode direction ; optional boolean onchange360mode mediafunctionmode mode ; optional boolean onchangerepeatmode mediarepeatmode mode ; optional boolean oncontinuewatching ; optional boolean oncustom domstring jsonobjectstring ; optional domstring onrequestcontentcontext ; optional boolean onadditiontolist listitem list ; optional boolean onremovalfromlist listitem list ; optional boolean onplaylist listitem list ; optional boolean onbrowselist listitem list ; optional boolean onskipad ; }; since 6 0 methods onupdatestate developers must specify the current application status to the onupdatestate function to get a proper voice control from the voice assistant this function is called right before processing every utterance, so that the voice assistant can be aware of the application status dynamically depending on the status, the callback function called could be different therefore, it is important to return the real status of the application optional voiceapplicationstate onupdatestate ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol return value optional voiceapplicationstate the status of the current application status "none" application is in its default status same as "player" status "list" the application is showing something in list during this status, the utterances "play this" or "play" will call onselection 0 the utterance "previous" will call onnavigation "nav_previous" "player" the application is playing a piece of content during this status, the utterance "play this" will call onplay since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "list"; } } ; onnavigation to support navigation controls via voice, the application should have the following callbacks otherwise, the key event will be generated optional boolean onnavigation voicenavigation voicenavigation ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters voicenavigation the navigation enumeration via voice return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "list"; }, onnavigation function voicenavigation { var bsupport = true; console log "onnavigation " + voicenavigation ; switch voicenavigation { case "nav_previous " // "previous page" break; case "nav_next" // "next page" break; case "nav_left" // "go to left" break; case "nav_right" // "move to right" break; case "nav_up" // "move up" break; case "nav_down" // "go down" break; // if there is no callback implementation for these enums, // tv will generate remote control key events "arrowright", "arrowleft", "arrowup", "arrowdown" case "nav_show_more" // "show me more" break; default bsupport = false; break; } return bsupport; } } ; onsearch for a contents search provided by the application, it can receive a search utterance to show the search results in order to support the search via voice, the application must be registered to samsung tv's companion search application and have the following callbacks the onsearch parameter has a specific format to learn more about it, please refer to the getdatafromsearchterm some callbacks are not called by default such as onsearch to receive all the callback signals on the development stage, request a key from samsung and apply the key to the manifest of your tizen application the following example shows how to add the "http //developer samsung com/tizen/metadata/support-vif-devfeature" key to the manifest file optional boolean onsearch voicesearchterm voicesearchterm ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters voicesearchterm the object contains the information via voice return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example <?xml version="1 0" encoding="utf-8"?> <widget xmlns="http //www w3 org/ns/widgets" tizen="http //tizen org/ns/widgets" id="http //yourdomain/voiceinteractionwebsample" version="1 0 0" viewmodes="maximized"> <access origin="" subdomains="true"></access> < application id="abcdefghrj voiceinteractionwebsample" package="abcdefghrj" required_version="6 0"/> <content src="index html"/> <feature name="http //tizen org/feature/screen size normal 1080 1920"/> <icon src="icon png"/> < metadata key="http //developer samsung com/tizen/metadata/support-vif-dev-feature" value="true"/> <name>voiceinteractionwebsample</name> < privilege name="http //developer samsung com/privilege/voicecontrol"/> < privilege name="http //developer samsung com/privilege/microphone"/> < profile name="tv-samsung"/> </widget> @endcode @param voicesearchterm the object contains the information via voice @see getdatafromsearchterm @throw none n/a @return boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function @code webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "home"; }, onsearch function voicesearchterm { console log "onsearch " + json stringify voicesearchterm ; var title = webapis voiceinteraction getdatafromsearchterm voicesearchterm, "search_term_title" ; var genre = webapis voiceinteraction getdatafromsearchterm voicesearchterm, "search_term_genre" ; console log "request to search " + title + ", " + genre ; return true; } } ; onplay supports the media control to handle playback play optional boolean onplay ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "player"; }, onplay function { // tv default action generates the remote control key, "mediaplay" console log "onplay called" ; return true; } } ; onstop supports the media control to handle playback stop optional boolean onstop ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "player"; }, onstop function { // tv default action generates the remote control key, "mediastop" console log "onstop called" ; return true; } } ; onpause supports the media control to handle playback pause optional boolean onpause ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "player"; }, onpause function { // tv default action generates the remote control key, "mediaplaypause" console log "onpause called" ; return true; } } ; onexit supports the media control to handle playback exit optional boolean onexit ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "player"; }, onexit function { // tv default action generates the remote control key, "exit" console log "onexit called" ; return true; } } ; onselection to support selection controls via voice, the application should have the following callbacks this callback supports the ordinal, relative selection control optional boolean onselection long voiceselection ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters voiceselection the relative index via voice, ex the last item is -1, the current item is 0, the first item is 1 return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "list"; }, onselection function voiceselection { var bsupport = true; console log "onselection " + voiceselection ; switch voiceselection { case -1 // "select the last one" break; case 0 // "select this" break; default { if voiceselection >= 1 // "select the first one" { // select the voiceselection th item // index of the first item is 1 console log "for ordinal " + voiceselection ; } else { bsupport = false; } } break; } return bsupport; } } ; ontitleselection title selection refers to an utterance in the format "select {title name}" to support the title selection via voice, the following two callbacks are required onrequestcontentcontext and ontitleselection the onrequestcontentcontext callback provides the information regarding the content of the screen such as title and position to the samsung tv this method will be invoked at the beginning of every utterance the response consists of positionx int , positiony int , title string , alias string array and bfocused bool the title property is used for asr conversion and the other properties are used to set the priority of each title the ontitleselection callback receives the title name from the utterance optional boolean ontitleselection domstring title ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters title the string input via voice return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "list"; }, onrequestcontentcontext function { console log "onrequestcontentcontext " ; var result = []; try { var item = { "positionx" 0, "positiony" 0, "title" "title text1", "alias" ["title1", "my text1"], "bfocused" true }; result push item ; var item2 = { "positionx" 1, "positiony" 0, "title" "title text2", "alias" ["title2", "my text2"], "bfocused" false }; result push item2 ; result push webapis voiceinteraction buildvoiceinteractioncontentcontextitem 2,0,"title text3", ["title3", "my text3"], false ; } catch e { console log "exception [" + e code + "] name " + e name + " message " + e message ; } return webapis voiceinteraction buildvoiceinteractioncontentcontextresponse result ; }, ontitleselection function title { console log "ontitleselection" + title ; return true; } } ; onfastforward supports the media control to handle playback ff optional boolean onfastforward ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "player"; }, onfastforward function { // tv default action generates the remote control key, "mediafastforward" console log "onfastforward called" ; return true; } } ; onrewind supports the media control to handle playback rewind optional boolean onrewind ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "player"; }, onrewind function { // tv default action generates the remote control key, "mediarewind" console log "onrewind called" ; return true; } } ; onsearchcollection supports the search utterance appending to the default search application the value of the result for the search term optional domstring onsearchcollection voicesearchterm voicesearchterm ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters voicesearchterm the object contains the information via voice return value optional domstring the formatted value of the result for the search term since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "none"; }, onsearchcollection function voicesearchterm { log "onsearchcollection " + json stringify voicesearchterm ; var result = []; //appname and appid are of the ui application to get the payload on launch result push webapis voiceinteraction buildcollectiondeeplinkdata "a1b2c3d4ef mytizenappid", "mytizenapp", "page_id=123456&method=voice" ; return json stringify result ; } } ; onchangeappstate to support the utterance of shortcut commands, the application must have the onchangeappstate callback optional boolean onchangeappstate voiceapplicationstate state ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters state the application context via voice return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "none"; }, onchangeappstate function state { // tv default action launches the samsung tv firstscreen, menu or search application depending on the input parameter // "go to home", "go to settings", "go to search" console log "onchangeappstate " + state ; var bsupport = true; switch state { case "home" // go to app's home break; default bsupport = false; break; } return bsupport; } } ; onchangeprevioustrack in order to handle requests to move to the previous track via voice, the application should override the onchangeprevioustrack callback optional boolean onchangeprevioustrack ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onchangeprevioustrack function { console log "onchangeprevioustrack" ; return true; } } ; onchangenexttrack in order to handle requests to move to the next track via voice, the application should override the onchangenexttrack callback optional boolean onchangenexttrack ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onchangenexttrack function { console log "onchangenexttrack" ; return true; } } ; onrestart in order to handle requests to restart to this track via voice, the application should override the onrestart callback optional boolean onrestart ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onrestart function { console log "onrestart" ; return true; } } ; onskipbackward in order to handle requests to skip backward via voice, the application should override the onskipbackward callback optional boolean onskipbackward long offsetseconds ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters offsetseconds the relative position in seconds return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onskipbackward function offsetseconds { console log "onskipbackward " + offsetseconds ; return true; } } ; onskipforward in order to handle requests to skip forward via voice, the application should override the onskipforward callback optional boolean onskipforward long offsetseconds ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters offsetseconds the relative position in seconds return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onskipforward function offsetseconds { console log "onskipforward " + offsetseconds ; return true; } } ; onsetplayposition in order to handle requests to set play position via voice, the application should override the onsetplayposition callback optional boolean onsetplayposition long position ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters position the absolute position in seconds return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onsetplayposition function position { console log "onsetplayposition " + position ; return true; } } ; onchangesubtitlemode in order to handle requests to turn the subtitle feature on/off via voice, the application should override the onchangesubtitlemode callback optional boolean onchangesubtitlemode mediafunctionmode mode ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters mode media_function_on turning on / media_function_off turning off return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onchangesubtitlemode function mode { console log "onchangesubtitlemode" ; switch mode { case "media_function_on" console log "function on" ; break; default console log "function off" ; break; } return true; } } ; onchangeshufflemode in order to handle requests to turn the shuffle feature on/off via voice, the application should override the onchangeshufflemode callback optional boolean onchangeshufflemode mediafunctionmode mode ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters mode media_function_on turning on / media_function_off turning off return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onchangeshufflemode function mode { console log "onchangeshufflemode" ; switch mode { case "media_function_on" console log "function on" ; break; default console log "function off" ; break; } return true; } } ; onchangescreenfitmode in order to handle requests to turn the screen fit feature on/off via voice, the application should override the onchangescreenfitmode callback optional boolean onchangescreenfitmode mediafunctionmode mode ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters mode media_function_on turning on / media_function_off turning off return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onchangescreenfitmode function mode { console log "onchangescreenfitmode" ; switch mode { case "media_function_on" console log "function on" ; break; default console log "function off" ; break; } return true; } } ; onzoom in order to handle requests to zoom in/out via voice, the application should override the onzoom callback optional boolean onzoom mediazoommode zoom ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters zoom media_zoom_in zoom in / media_zoom_out zoom out return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onzoom function zoom { console log "onzoom" ; switch zoom { case "media_zoom_in" console log "zoom in" ; break; default console log "zoom out" ; break; } return true; } } ; onrotate in order to handle requests to rotate left/right via voice, the application should override the onrotate callback optional boolean onrotate mediarotatemode direction ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters direction media_rotate_left rotate left / media_rotate_right rotate right return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onrotate function direction { console log "onrotate" ; switch direction { case "media_rotate_left" console log "rotate left" ; break; default console log "rotate right" ; break; } return true; } } ; onchange360mode in order to handle requests to turn the 360 feature on/off via voice, the application should override the onchange360mode callback optional boolean onchange360mode mediafunctionmode mode ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters mode media_function_on turning on / media_function_off turning off return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onchange360mode function mode { console log "onchange360mode" ; switch mode { case "media_function_on" console log "function on" ; break; default console log "function off" ; break; } return true; } } ; onchangerepeatmode in order to handle requests to change the repeat mode via voice, the application should override the onchangerepeatmode callback optional boolean onchangerepeatmode mediarepeatmode mode ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters mode media_repeat_off repeat mode off / media_repeat_one repeat this track / media_repeat_all repeat all tracks return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onchangerepeatmode function mode { console log "onchangerepeatmode" ; switch mode { case "media_repeat_one" console log "one" ; break; case "media_repeat_all" console log "all" ; break; default console log "off" ; break; } return true; } } ; oncontinuewatching in order to handle requests to launch the application with playing the history track via voice, the application should override the oncontinuewatching callback to play the history track this callback will be called after launching the application optional boolean oncontinuewatching ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, oncontinuewatching function { console log "oncontinuewatching" ; return true; } } ; oncustom supports the custom voice assistant action optional boolean oncustom domstring jsonobjectstring ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters jsonobjectstring the string stringified json object return value optional boolean boolean value of whether the app supports this feature voice assistant action will get the response "{"result_code" "success"}" for true, "{"result_code" "failure"}" for false/undefined since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "list"; }, oncustom function jsonobjectstring { console log "oncustom " + jsonobjectstring ; try { var customobject = json parse jsonobjectstring ; for var key in customobject { if customobject hasownproperty key { console log "key " + key + ", value " + customobject[key] ; } } } catch e { console log "exception [" + e code + "] name " + e name + " message " + e message ; return false; } return true; } } ; onrequestcontentcontext in order to support the voice title selection via voice, the application should override the onrequestcontentcontext callback, return the jsonobject string for the current content context list showing optional domstring onrequestcontentcontext ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol return value optional domstring domstring containing jsonobject string for the content context list since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "list"; }, onrequestcontentcontext function { log "onrequestcontentcontext " ; var result = []; try { var item = webapis voiceinteraction buildvoiceinteractioncontentcontextitem 1,1,"test", ["test set", "test title"], true ; result push item ; var item2 = webapis voiceinteraction buildvoiceinteractioncontentcontextitem 2,1,"test2", ["test set 2", "test title 2"], false ; result push item2 ; } catch e { console log "exception [" + e code + "] name " + e name + " message " + e message ; } return webapis voiceinteraction buildvoiceinteractioncontentcontextresponse result ; } } ; onadditiontolist in order to handle requests to add this context to list via voice, the application should override the onadditiontolist callback optional boolean onadditiontolist listitem list ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters list list_bookmarks bookmarks / list_watch_later watch later / list_preference preference / list_subscription subscription return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung tv may perform its basic function since 6 5 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onadditiontolist function list { console log "onadditiontolist" ; switch list { case "list_bookmarks" console log "add this context to bookmarks" ; break; case "list_watch_later" console log "add this context to watch later" ; break; case "list_preference" console log "like this context" ; break; case "list_subscription" console log "subscribe to context" ; break; default break; } return true; } } ; onremovalfromlist in order to handle requests to remove this context from list via voice, the application should override the onremovalfromlist callback optional boolean onremovalfromlist listitem list ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters list list_bookmarks bookmarks / list_watch_later watch later / list_preference preference / list_subscription subscription return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung tv may perform its basic function since 6 5 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onremovalfromlist function list { console log "onremovalfromlist" ; switch list { case "list_bookmarks" console log "remove this context from bookmarks" ; break; case "list_watch_later" console log "remove this context from watch later" ; break; case "list_preference" console log "dislike this context" ; break; case "list_subscription" console log "unsubscribe from this context" ; break; default break; } return true; } } ; onplaylist in order to handle requests to play this context from list via voice, the application should override the onplaylist callback optional boolean onplaylist listitem list ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters list list_preference preference / list_subscription subscription / list_watch_later watch later return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung tv may perform its basic function since 6 5 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onplaylist function list { console log "onplaylist" ; switch list { case "list_preference" console log "play liked content" ; break; case "list_subscription" console log "play subscription content" ; break; case "list_watch_later" console log "play watch later content" ; break; default break; } return true; } } ; onbrowselist in order to handle requests to browse this context from list via voice, the application should override the onbrowselist callback optional boolean onbrowselist listitem list ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters list list_preference preference / list_subscription subscription / list_watch_later watch later return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung tv may perform its basic function since 6 5 code example webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onbrowselist function list { console log "onbrowselist" ; switch list { case "list_preference" console log "browse liked content" ; break; case "list_subscription" console log "browse subscription content" ; break; case "list_watch_later" console log "browse watch later content" ; break; default break; } return true; } } ; onskipad in order to handle requests to skip ad content via voice, the application should override the onskipad callback optional boolean onskipad ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol return value optional boolean boolean value of whether the app supports this feature if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung tv may perform its basic function since 6 5 code example webapis voiceinteraction setcallback { onupdatestate function { return "player"; }, onskipad function { console log "onskipad" ; return true; } } ; 2 3 voicesearchterm this interface represents information about the voice search term [nointerfaceobject] interface voicesearchterm { readonly attribute domstring? utterance; readonly attribute domstring? title; readonly attribute domstring? genre; readonly attribute domstring? cast; readonly attribute domstring? contenttype; readonly attribute domstring? from; readonly attribute domstring? to; }; attributes readonly domstring utterance [nullable] the field for the full utterance readonly domstring title [nullable] the field for the title readonly domstring genre [nullable] the field for the genre readonly domstring cast [nullable] the field for the cast readonly domstring contenttype [nullable] the field for the content type movie/tvshow readonly domstring from [nullable] the field for the start date time iso 8601 readonly domstring to [nullable] the field for the end date time iso 8601 2 4 voiceinteractioncontentcontext this interface represents information about the content context for an item [nointerfaceobject] interface voiceinteractioncontentcontext { attribute long positionx; attribute long positiony; attribute domstring title; attribute boolean bfocused; }; attributes long positionx the field for x-axis position of the item long positiony the field for y-axis position of the item domstring title the field for the title of the item boolean bfocused the field for whether this item has a focus 2 5 voiceinteractionmanager the voiceinteractionmanager interface is the top-level interface for the voiceinteractionmanager api that provides access to the module functionalities [nointerfaceobject] interface voiceinteractionmanager { domstring getversion ; void setcallback voiceinteractioncallback callback ; void listen ; domstring getdatafromsearchterm voicesearchterm voicesearchterm, voicesearchtermfield field ; domstring buildcollectiondeeplinkdata domstring appid, domstring title, domstring payload ; domstring buildcollectionshowdata domstring appid, domstring title, domstring payload, domstring thumbnail ; voiceinteractioncontentcontext buildvoiceinteractioncontentcontextitem long positionx, long positiony, domstring title, domstring[] aliasarr, boolean bfocused ; domstring buildvoiceinteractioncontentcontextresponse voiceinteractioncontentcontext[] contentcontextarr ; }; methods getversion this method gets the plugin's version number domstring getversion ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol return value domstring domstring return value of plugin's version exceptions webapiexception with error type unknownerror in any other error case with error type securityerror, if the application does not have the privilege to call this method since 6 0 code example try { var version = webapis voiceinteraction getversion ; console log "works with voiceinteraction [" + version + "]" ; } catch e { console log "exception [" + e code + "] name " + e name + " message " + e message ; } setcallback api to define callback functions for the voice interaction commands void setcallback voiceinteractioncallback callback ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters callback composing the functions to be called for the voice interaction commands exceptions webapiexception with error type unknownerror in any other error case with error type typemismatcherror, if an input parameter is not compatible with its expected type with error type securityerror, if the application does not have the privilege to call this method since 6 0 code example try { webapis voiceinteraction setcallback { onupdatestate function { return "list"; }, onnavigation function vn { console log "onnavigation" + vn ; return true; }, onselection function voiceselection { console log "onselection" + voiceselection ; return true; } } ; } catch e { console log "exception [" + e code + "] name " + e name + " message " + e message ; } listen api to start listening the voice interaction commands after setting callbacks by setcallback void listen ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol exceptions webapiexception with error type unknownerror in any other error case with error type securityerror, if the application does not have the privilege to call this method since 6 0 code example try { webapis voiceinteraction listen ; } catch e { console log "exception [" + e code + "] name " + e name + " message " + e message ; } getdatafromsearchterm api to parse the searchterm from samsung side domstring getdatafromsearchterm voicesearchterm voicesearchterm, voicesearchtermfield field ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters voicesearchterm the voicesearchterm from samsung side as search term field the field enum to get the value return value domstring the result string formatted exceptions webapiexception with error type unknownerror in any other error case with error type securityerror, if the application does not have the privilege to call this method with error type invalidvalueserror, if any input parameter contains an invalid value with error type typemismatcherror, if an input parameter is not compatible with its expected type since 6 0 code example var title = webapis voiceinteraction getdatafromsearchterm voicesearchterm, "search_term_title" ; var genre = webapis voiceinteraction getdatafromsearchterm voicesearchterm, "search_term_genre" ; buildcollectiondeeplinkdata api to build data for search collection easily domstring buildcollectiondeeplinkdata domstring appid, domstring title, domstring payload ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters appid the app id to be shown in the search application, and to launch the payload title the title to be shown in the search application payload the payload value to be passed with application launch request return value domstring the result string formatted exceptions webapiexception with error type unknownerror in any other error case with error type typemismatcherror, if any input parameter is not domstring type with error type securityerror, if the application does not have the privilege to call this method since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "none"; }, onsearchcollection function voicesearchterm { log "onsearchcollection " + json stringify voicesearchterm ; var result = []; // appname and appid are of the ui application to get the payload on launch try { result push webapis voiceinteraction buildcollectiondeeplinkdata "a1b2c3d4ef mytizenappid", "mytizenapp", "page_id=123456&method=voice" ; } catch e { console log "exception [" + e code + "] name " + e name + " message " + e message ; } return json stringify result ; } } ; buildcollectionshowdata api to build data for search collection easily domstring buildcollectionshowdata domstring appid, domstring title, domstring payload, domstring thumbnail ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters appid the app id to be shown in the search application, and to launch the payload title the title to be shown in the search application payload the payload value to be passed with application launch request thumbnail the thumbnail url, path to be shown in the search application return value domstring the result string formatted exceptions webapiexception with error type unknownerror in any other error case with error type typemismatcherror, if any input parameter is not domstring type with error type securityerror, if the application does not have the privilege to call this method since 6 0 code example webapis voiceinteraction setcallback { onupdatestate function { console log "assistant tries to get app state" ; return "none"; }, onsearchcollection function voicesearchterm { log "onsearchcollection " + json stringify voicesearchterm ; var result = []; // appname and appid are of the ui application to get the payload on launch try { result push webapis voiceinteraction buildcollectionshowdata "a1b2c3d4ef mytizenappid", "mytizenapp", "page_id=123456&method=voice", "http //myservice com/content/123456 png" ; } catch e { console log "exception [" + e code + "] name " + e name + " message " + e message ; } return json stringify result ; } } ; buildvoiceinteractioncontentcontextitem api to build the voiceinteractioncontentcontext of an item voiceinteractioncontentcontext buildvoiceinteractioncontentcontextitem long positionx, long positiony, domstring title, domstring[] aliasarr, boolean bfocused ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters positionx x-axis position of the item positiony y-axis position of the item title the title of the item aliasarr the alias titles of the item bfocused whether this item has a focus return value voiceinteractioncontentcontext the voiceinteractioncontentcontext object containing an item showing exceptions webapiexception with error type unknownerror in any other error case with error type typemismatcherror, if any input parameters are not compatible with its expected type since 6 0 code example onrequestcontentcontext function { console log "onrequestcontentcontext " ; var result = []; try { var item = webapis voiceinteraction buildvoiceinteractioncontentcontextitem 1,1,"test", ["test set", "test title"], true ; result push item ; } catch e { console log "exception [" + e code + "] name " + e name + " message " + e message ; } return webapis voiceinteraction buildvoiceinteractioncontentcontextresponse result ; } buildvoiceinteractioncontentcontextresponse api to build the response of onrequestcontentcontext callback function from voiceinteractioncontentcontext domstring buildvoiceinteractioncontentcontextresponse voiceinteractioncontentcontext[] contentcontextarr ; product tv privilege level public privilege http //developer samsung com/privilege/voicecontrol parameters contentcontextarr voiceinteractioncontentcontext objects of the items showing return value domstring the domstring of jsonobject string containing the items showing exceptions webapiexception with error type unknownerror in any other error case with error type typemismatcherror, if any input parameters are not compatible with its expected type since 6 0 code example onrequestcontentcontext function { console log "onrequestcontentcontext " ; var result = []; try { var item = webapis voiceinteraction buildvoiceinteractioncontentcontextitem 1,1,"test", ["test set", "test title"], true ; result push item ; } catch e { console log "exception [" + e code + "] name " + e name + " message " + e message ; } return webapis voiceinteraction buildvoiceinteractioncontentcontextresponse result ; } 3 full webidl module voiceinteraction { enum voiceapplicationstate { "none", "home", "list", "player", "setting", "search", "unknown" }; enum voicenavigation { "nav_previous", "nav_next", "nav_left", "nav_right", "nav_up", "nav_down", "nav_show_more", "nav_unknown" }; enum voicesearchtermfield { "search_term_utterance", "search_term_title", "search_term_genre", "search_term_cast", "search_term_content_type", "search_term_release_date_from", "search_term_release_date_to" }; enum mediafunctionmode { "media_function_on", "media_function_off" }; enum mediarotatemode { "media_rotate_left", "media_rotate_right" }; enum mediazoommode { "media_zoom_in", "media_zoom_out" }; enum mediarepeatmode { "media_repeat_off", "media_repeat_one", "media_repeat_all" }; enum listitem { "list_bookmarks", "list_watch_later", "list_unknown" }; [nointerfaceobject] interface voiceinteractionmanagerobject { readonly attribute voiceinteractionmanager voiceinteraction; }; webapi implements voiceinteractionmanagerobject; [callback, nointerfaceobject] interface voiceinteractioncallback { optional voiceapplicationstate onupdatestate ; optional boolean onnavigation voicenavigation voicenavigation ; optional boolean onsearch voicesearchterm voicesearchterm ; optional boolean onplay ; optional boolean onstop ; optional boolean onpause ; optional boolean onexit ; optional boolean onselection long voiceselection ; optional boolean ontitleselection domstring title ; optional boolean onfastforward ; optional boolean onrewind ; optional domstring onsearchcollection voicesearchterm voicesearchterm ; optional boolean onchangeappstate voiceapplicationstate state ; optional boolean onchangeprevioustrack ; optional boolean onchangenexttrack ; optional boolean onrestart ; optional boolean onskipbackward long offsetseconds ; optional boolean onskipforward long offsetseconds ; optional boolean onsetplayposition long position ; optional boolean onchangesubtitlemode mediafunctionmode mode ; optional boolean onchangeshufflemode mediafunctionmode mode ; optional boolean onchangescreenfitmode mediafunctionmode mode ; optional boolean onzoom mediazoommode zoom ; optional boolean onrotate mediarotatemode direction ; optional boolean onchange360mode mediafunctionmode mode ; optional boolean onchangerepeatmode mediarepeatmode mode ; optional boolean oncontinuewatching ; optional boolean oncustom domstring jsonobjectstring ; optional domstring onrequestcontentcontext ; optional boolean onadditiontolist listitem list ; optional boolean onremovalfromlist listitem list ; optional boolean onplaylist listitem list ; optional boolean onbrowselist listitem list ; optional boolean onskipad ; }; [nointerfaceobject] interface voicesearchterm { readonly attribute domstring? utterance; readonly attribute domstring? title; readonly attribute domstring? genre; readonly attribute domstring? cast; readonly attribute domstring? contenttype; readonly attribute domstring? from; readonly attribute domstring? to; }; [nointerfaceobject] interface voiceinteractioncontentcontext { attribute long positionx; attribute long positiony; attribute domstring title; attribute boolean bfocused; }; [nointerfaceobject] interface voiceinteractionmanager { domstring getversion ; void setcallback voiceinteractioncallback callback ; void listen ; domstring getdatafromsearchterm voicesearchterm voicesearchterm, voicesearchtermfield field ; domstring buildcollectiondeeplinkdata domstring appid, domstring title, domstring payload ; domstring buildcollectionshowdata domstring appid, domstring title, domstring payload, domstring thumbnail ; voiceinteractioncontentcontext buildvoiceinteractioncontentcontextitem long positionx, long positiony, domstring title, domstring[] aliasarr, boolean bfocused ; domstring buildvoiceinteractioncontentcontextresponse voiceinteractioncontentcontext[] contentcontextarr ; }; };
Learn Developers Podcast
docmovies games tony morelan 32 29 well, hey, tan, thank you very much for being on the podcast absolutely appreciate you taking the time tan nguyen 32 35 thank you for having me, tony and thank you for all the opportunities you're giving to us it's really great to be part of your ecosystem and the relationship we have with you guys it's really amazing thank you very much closing 32 52 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 33 08 the pow! podcast is brought to you by the samsung developer program and produced by tony morelan
Learn Developers Podcast
docseason 2, episode 4 previous episode | episode index | next episode this is a transcript of one episode of the samsung developers podcast, hosted by and produced by tony morelan a listing of all podcast transcripts can be found here host tony morelan senior developer evangelist, samsung developers instagram - twitter - linkedin guest olga gabay zeru studio listen download this episode topics covered galaxy themes studio galaxy store consumers galaxy store developers galaxy store badges social media promotions licensing ip marketing best of galaxy store awards helpful links olga gabay linkedin zeru studio facebook behance 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 four on today's show, i interview olga gabay olga is a 2020 best of galaxy store award winner for her phone ui theme design, dark warrior in just a few years, her design style for capturing emotion in her themes, has helped her become one of the top developers on galaxy store not only do we talk about her approach to design, the impact of covid, but also the challenges related to using licensed imagery enjoy i am super excited to have on the podcast with me today olga gabay welcome to the podcast, olga olga gabay 00 50 thank you tony morelan 00 52 i absolutely love your work your designs always evoke such emotion you know, when i see your themes, i often think of them as like movie posters, or even like video game covers they all seem to like tell a story that being said, though, when they look at your full library of work, it's quite a variety of styles who is olga gabay? olga gabay 01 15 well, basically, i'm a graphic designer, i started to do this middle of 90s by now it's like, almost 26 years of experience so throughout all these years, what i collected, i mean, like, ideas, experiences i just brought up now in my themes, and i still keep experimenting so actually, sometimes people they don't believe all my works are by the same designer, because there is a variety of styles actually, i'm not really happy with that, because i'm more jealous to people who can produce all their works in just one style something when you can say this designer has some unique face some unique style, and i don't have it, i want to try these and that and that, you know, like everything, a little bit of everything tony morelan 02 03 yeah, when i think of olga gabay, i definitely do think of those that that certain style that i had mentioned, where it really does capture emotion but as i'm scanning through your collection, i see this wide variety and i think i can relate to that a lot because even in my watch face designing that i was doing i remember before i worked at samsung, i had someone at samsung, give me a little advice and say, you know, you should pick a style, you should pick a direction and then build on that brand and i couldn't do it i was just i would do something that was very artistic, or i do something that's very mechanical and i guess that's just that's how i work but that's what i can relate to that for sure interesting that you said that you started designing back in the 90s that's about the time that i did, too we get the joy of working when adobe was doing all those early releases of photoshop and illustrator, we got to be a part of that so is that true? were you working in photoshop back in the in the early days? olga gabay 03 02 oh, yes, absolutely so i believe my first photoshop ah, that was a version of 2 5 i think okay and yes, that's so it was a lot of fun back then because, you know, like when they introduced this layer system? oh, yes i was like, wow, now you can put things on different layers that was so exciting tony morelan 03 21 yeah, i remember that i remember even like multiple undo’s when i first started, i think it was photoshop, you know, 1 2, we didn't even have multiple undo it was one undo and that was there was no history you couldn't go back that was everything was on one layer but you know what that made us pay attention that much more closely to the work that we were doing? did you study design in school? is this, you know, a career path that you started out olga gabay 03 51 early on? yeah, i will start in just the college but back then in the college, we didn't study any computers so we were doing everything that old fashioned ways like with paper paints, pencils, glues that sort nothing much yes tony morelan 04 05 and you know what's great about that, and you can tell me if you have the same sort of theory on that i often tell when i'm when i'm teaching classes in schools, you need to grab a pencil and paper to do your initial copying, that if you dive right into a computer program, you're limiting your freedom to design so i always say those first comp designs, you should really grab pencil and paper did you have the same approach to design? olga gabay 04 30 yes, i agree with that but i used to do it for many years but you know, in all my themes now, i never did even a single time because i was always like under the pressure of to make my collection and then i just lost this habit so nowadays, i just go straight but of course i do draft it's not like i create the image of the wallpaper as it's supposed to be first, i'm just composing everything with low resolution images and just doing some marks with an image electronic pen sure so with my tablet, you know, so it's still drafting, but electronically gotcha i tony morelan 05 06 see i see yeah, i'm not surprised when i see your work i do see a lot of, i'll call it collaging so it looks like you're compiling different imagery and bringing it together to make a new scene so i could definitely see where you do rounds of, of comping and revisions to finally get to that final design olga gabay 05 25 yeah, exactly tony morelan 05 26 let me back up just a little bit and tell me where are you originally from? olga gabay 05 31 so, i came from russia from moscow i moved to canada 20 years ago, in the greater toronto area, as life is more quiet here nice i'm tony morelan 05 39 sure it's a little a little cold, where you are at least this time of year up in canada your name is olga gabay but tell me do you have a company name? is there a brand name behind olga? olga gabay 05 50 yes, my company name is zero studio but because it's a small studio, and i'm the only designer there two other people they do some routine things not related to the designing so i often go under my own name i know it's sometimes it creates a little mess but my name in the theme store is more a result of registration so i could not put the company name that's the problem now i can change it tony morelan 06 15 yeah, once you start building your collection, it can be a little difficult to halfway through to want to change course and switch the brand name because you lose the history and the download recording of it yeah, i understand your situation on that tell me about how you first learned about samsung and designing themes olga gabay 06 34 oh, actually, that's a little bit funny story, because i was just exploring things on my phone, some new features, some settings, you know what i can do? and i came across the theme store and the very first thing i realized there that it's not all these themes, they're not created by samsung electronics itself, i mean by the local people so there are all different designers from all over the world and when i found that out at home, i can do the same, i need to give it a try so then i just googled how to create themes for samsung galaxy phones and that brought me to the page where everyone can register for the program sure tony morelan 07 14 so how many years ago was that? olga gabay 07 16 sorry, something years ago? first, it took me about two months to create my portfolio actually, then the review? you know, it's a long process tony morelan 07 23 yes, the review team gets a lot of applications yes, i know super excited that you were selected and that you've become one of the top designers for samsung is theme designing? is this your full-time job? or do you do other design projects olga gabay 07 39 currently, it's my full-time job, i was so excited to be accepted, i just started creating one thing after another at first it was mostly wallpapers, then themes, you know, you also need to do a lot of other things like searching for the images that you are going to use sometimes it takes a lot of time to find the appropriate images that you want to use in the in the other thing is social media promotion, takes tons of time, yes, registering the application, all these keywords, translating them in other languages and verifying the language because you cannot simply put like translate from english to chinese yeah, you need to check if your translation is correct so the context is still the same and yes, it takes a lot of time tony morelan 08 22 so that's interesting what you said as far as translating for different languages, because i know that you have that opportunity when you're publishing your app to go in, in what's called add a language, if you don't add a language than english is just the default language for your theme meaning that regardless of what country a user is, in, when they actually look at your theme for sale, they're having to read it in english so you are taking that extra step and correct where you are selecting to add a language and then putting in translation so that users from around the world will actually see your text in their native language, correct? olga gabay 08 56 yeah, because i found out that many users, they do their search with their local language on the other hand, there are one major issue first of all, you cannot translate in all the languages, you can select the few most common ones yes and the second issue, as i just mentioned, it's you need to be sure that the context is correct because you know, like google translator or university context, sometimes they still can be misleading you cannot always trust them so then how do you gain confidence that what you're translating is correct well, i only have issues with chinese korean language and you know, chinese language is mandatory there because if you don't have chinese translation, your product won't be on the chinese market yes, korean language again, due to the huge amount of buyers in korea so all i can do is just put the translation of the google and check if the image is matching the word so if the result will be similar to what i expect to see so in chinese i recently translated the word pink color, okay, but the chinese it to be translated as a cream oh, and that's something you don't want to do because when you put this translation in that image search, you receive exactly the cream like cakes and oh, interesting yeah, or for instance, the word spring, it will give you spring like a piece of metal tony morelan 10 14 yes, like a bouncing spring okay so i see what you're doing so you're taking the translated words, and then sort of cross referencing them in google to just make sure that they are pulling up imagery that matches it so you know that yeah, that it has translated it correctly? yeah so let me go back and ask you, you had said that the name of your company is zero studios, that that's spelled ze are you? is that correct? olga gabay 10 39 yes correct tony morelan 10 39 yeah how did you come up with that name? is there a meaning behind that? olga gabay 10 42 already internet years, i use the name zero as my nickname and it means a sky in basque language i just wanted to have a nickname something related to sky i don't know why it was just kind of mode and then i just borrowed my own nickname to name the studio, because, you know, it's actually was quite quick decision i just needed to use something funny tony morelan 11 05 so you had mentioned that there are a few other people that work with you, but they don't do design? where are they assisting you? olga gabay 11 10 yep the social media marketing, because you know, it's a routine job when you need to repeatedly for instance, copy paste tags, yes, like scheduled posts, when you need to follow people, but it takes a lot of time so that's why i need to save and the second person is making this some registrations and updates, updating applications for instance, recently, i needed to change prices and because different countries, different abilities to pay, right, so we cannot put the same price for united states, for india and for i don't know, like africa, for instance right? we need to adjust them accordingly so like, depending on how much people can afford, every product should be changed manually tony morelan 11 56 yeah so you're coming up with a custom pricing approach, depending on different countries? olga gabay 12 02 yeah, that's an incredibly difficult job what i could do is just to hire someone to change his prices tony morelan 12 09 i see i see so we've talked a lot about themes, but are you designing also, wallpapers, aod? icons? yes, olga gabay 12 17 i designed everything so all four section like themes, wallpapers, say, always on display images and icons and because i have a huge amount of wallpapers, and lds, that creates actually a big number of products in my store so exactly, it would be 1650, something like this tony morelan 12 40 wow so i can see where you would need help with this managing olga gabay 12 46 so yeah, exactly because if it was just a few hundreds of them, it was fine but you know, well, okay, there are also a lot of free products but still, there are still hundreds of products to be changed manually tony morelan 13 00 so let's talk about that for a moment because that always is a good topic of discussion and that is this whole free approach so give me your insight, you know, how are you utilizing the ability to offer free wallpapers free themes? olga gabay 13 14 well, i will say my approach is just to take into account the people who cannot pay for the products, of course, it's mostly wallpapers again, simply because you know, it takes just a little job to do them because some wallpapers i create from scratch, but still majority are modified stock images so you just recall or in them like recomposing them, but just a little, you know, it's not like really a long, difficult work but i have approximately 10% of my themes are free and some of them, it took many, many hours to create and still i was willing to release them for free because like i said, the people who cannot buy mostly this, it's a conscious that don't have access to the paid content in the store because we have a huge section of this country's especially in africa, asia, like small island countries, they don't have an atoll, right? tony morelan 14 06 yes, that's a great approach i mean, i often tell designers that you know, you can utilize the free aspect of the galaxy store, but you do need to limit it so that you don't want to just be giving away all of your content, where you know, your fanbase is just expecting to get free i mean, you can use it as a way to broaden your brand but so you said at about 10% of your apps are free, meaning that the remaining 90% are paid, correct? olga gabay 14 34 yes, but it's only related to themes for wallpapers and lds, the percentage of free content is higher, okay it can be up to 30% because you know, it's kind of compromise if the person cannot or don't want a want to buy the theme, at least maybe this person can be satisfied with just the wallpaper tony morelan 14 55 so let's talk about your imagery, because i think that is one thing that stands out the most i mean, you do this this collaging you've talked a bit about how sometimes you're utilizing your own photography, but you also are licensing stock photography yes tell me a little bit about that approach olga gabay 15 13 again, in the very beginning, i was only using my own images and it was actually helpful because when i was creating my portfolio, i didn't want any conflict in situations, but the review team, so they wouldn't say, okay, like, we're not sure if this image is ever belong to you so i made sure i use only my own images just to show my capabilities, so that i can use my own photography or my own artworks but of course, later on, i started to utilize stock images simply because it's impossible for one person again, to create everything on their own right? because you cannot be illustrators 3d designer, videographer and everything so i started introducing stock images and the most difficult part, as we all know, you know, it's is licensing because first of all, there is no clear border between modified image and non-modified image because of course, if you're doing a complex collage, that's obvious, but if you change just a little, you cannot always say for sure whether it's good to be using the theme or not, that's actually the open question and i know that many designers, they keep asking it so my approach is to use different stocks for that the photobank that has soft agreement likes kind of, oh, you can, you can use it, but just make sure you modify the just a little and the amount of your downloads is not too high, it just doesn't exceed certain number but there are also some stocks with harder restrictions, then you want to make sure you don't go with this image aziz, tony morelan 16 41 you had mentioned that when you first apply to become a themes designer that you made certain that all of the artwork shown in your comp designs, was truly your own artwork and i just want to mention that yes, that is a requirement that for those that are applying to become a themes designer, you must use 100% all original artwork, you cannot use stock imagery and just to repeat, when you are publishing themes if you are using stock photography, you must you must make sure that you have the proper license in place for distributing certain imagery like that great to see that you are making that an important asset to your theme thank you so let's talk a bit about your workflow and the software you use to create your themes and wallpapers what's your what's your first step? olga gabay 17 28 okay, first step, i need to get some inspiration normally, i don't need to do anything special for it because in your normal life, when you observe some scenes or 3d or you're watching nice landscapes on instagram, or some other people art works on pinterest, you already like i use you see it and you think oh, here is some inspiration for a new theme and most often i get an influence from the music that i listen to that actually a majority of my themes, they based on the picture that that i create in my head by listening to something to some music, that's very interesting tony morelan 18 05 i love hearing that it's funny, because when i see a lot of your theme designs, they inspire an emotion and that emotion can definitely be conveyed, you know, through music so interesting that it's kind of reverse in the same state what music you're inspired by at that moment is what helps you in your mind, think of what would that theme be? olga gabay 18 26 yes, exactly so you can actually see this picture in your head while you see hear the sound and even i have a few themes that started with a ringtone so i don't know if you noticed, i have many of my themes, actually majority of my themes they have customized sounds, yes and here's the thing, some of the themes it's when i hear that beautiful piece on there in the sound bank, and i like wow, that's a perfect ringtone now, i need to make a picture for this ringtone that's funny, but you know, it's like that the old way reverse way to do things but yes, it's also a source of inspiration tony morelan 19 06 so that's really interesting that you say that because this past year, you actually won the best of galaxy store award for best innovative theme and when i saw your theme nominated, that's what stood out when i heard the ring tones i thought wow, this is really capturing the essence of the theme titled dark warrior so let's talk a little bit about that how did you first learn that you were winning? the best innovative theme for best of galaxy store awards? 2020 olga gabay 19 35 yes, i will justify it and i didn't expect that to be honest tony morelan 19 40 so have you leveraged? you know, the fact that you won this award? olga gabay 19 44 well, it just inspired me to create more themes of that would contain something different or for that i reserved the store market regularly just to check what other designers do and trying to figure out what they didn't try to apply in their themes so something that can be sort of unique element, we all want to be unique and something right because we want to be distinct, not just fluid, the store with the same kind of themes tony morelan 20 15 yes so what was unique with this year's award show was that because of the pandemic, we were not able to have an in-person event so then everything was online for those of you that haven't seen it, go check out on youtube, we have our best of galaxy store awards for 2020 olga wins the best innovative theme award for her theme, dark warrior i actually had the honor of helping olga create the trailer video, when we announce who won the award and what it was for we play a quick little 32nd clips to help the viewers see what this theme was, that was a blast for me to take your theme and the essence that you've created and tried to bring that to film, i was able to, you know, have some fun doing some voiceover work, i had a colleague of mine help with myself, where we both did the voice that is heard overlaid on top of the video and doing the motion behind it so i actually had a blast working on that trailer for your dark warrior theme olga gabay 21 14 and it was a fantastic job of you actually, because i was i was like so much surprised and it was really amazing, you know? tony morelan 21 22 yeah, so that was definitely go check out the video on youtube, you can jump ahead to when olga wins the award and take a look at that it really it was definitely a highlight for me working on that on the theme boards project so let's go back even a little bit further you actually came out to sdc19 to san jose, correct? olga gabay 21 44 yes, correct tony morelan 21 45 yeah, that's when i first met you so tell me about that experience? what was that like to fly down to san jose and get to meet not only the people at samsung, but i'm sure you had the opportunity to meet a lot of the other developers that were there at the event olga gabay 21 58 actually, i can tell straight it was my best experience of this year, as the best event i ever attended the last few years probably or even more, it was actually very exciting because not only i could meet people in the real life, make new connections but i learned a lot i attended your seminar on designing watch face tony morelan 22 19 so the seminar that you're referring to was that the one that i had the comedian up on stage with me, and we were working with the audience yeah yeah, that was a lot of fun yeah, we actually brought in a professional comedian and together, we were able to get the audience to help us inspire to create a watch this and that was a quite a fun event olga gabay 22 41 yeah, absolutely tony morelan 22 44 unfortunately, this year, we were not able to have a live event because of the pandemic can you tell me how the pandemic has affected you in your work? olga gabay 22 53 honestly, it wasn't affected at all, because i just keep doing my things and even my sales were not affected surprisingly, you know, i actually was i was prepared for the worst, but it didn't happen and i would say it, it was rather beneficial, because i spent more time staying home and that gave me opportunity to learn more, you know, now i can see i improve my skills because if not, i would probably spend this time more thinking outside with people like this that's true tony morelan 23 27 and you know what, you're not the first developer who has told me that, you know, due to the pandemic, more people were on their devices, they were at home, we saw a definite uptick in the use of devices, which meant that more people were downloading themes and wallpapers, but likewise, more developers were stuck at home and so they had more time to really work on their marketing their designs just really building their brand so we did see some success stories come out of this you know, unfortunate pandemic that we've all been in so what is in the future for olga gabay and zero studios olga gabay 24 11 so i'm planning to introduce in more of my own artwork like the same as i did in the very beginning, and to be unique tony morelan 24 18 so let's talk about some of the other designers so who out there in the samsung galaxy store inspires you olga gabay 24 24 i will say the theme designers are a sebastian ward cabbage and air design tony morelan 24 29 yes, both are great designers if you want to find them on the galaxy store sebastian wolodkiewicz is sw designs that's the letter s and the letter w and aire designs is spelled a i r e designs yeah, i love all of their themes olga gabay 24 45 in my opinion that's how that perfect theme should look like in terms of interface and usability so something that looks comfortable for the eyes with good looking icons and what i love about these two designers, they always have good choice of colors other icons are clear, readable they don't use color combination that tony morelan 25 04 hurt your eyes when i teach classes, i remind the students if it takes somebody, you know, a few seconds to actually figure out what that icon is, then you failed so yeah, so color, simplicity, when it comes to icons, those are all extremely important so when you're not designing themes, what do you like to do for fun? olga gabay 25 24 first of all, i prefer to spend time outside, especially, and the nature and i stick to the active lifestyle so i love all kinds of alternative workouts that can be performed outside of the gyms, and also, it's traveling and mostly traveling so i have visited many different countries and cities, and i love to do travel photography and then i also sell some disk images on photo banks and that's kind of, i will say, hobby or side hustle, what i enjoyed that's great that's great so not only are you utilizing stock imagery by purchasing the license to use them in your work, but you also are taking your photos and putting them out there for other people to you so tony morelan 26 07 that that's great yes, exactly well, olga, thank you very much for being on the podcast i really appreciate you taking the time to chat with me it's been, it's been a lot of fun olga gabay 26 17 thank you very much to me for this opportunity i really enjoyed this chat closing 26 21 looking to start creating for samsung, download the latest tools to code your next app, or get software for designing apps without coding at all sell your apps to the world on the samsung galaxy store check out developer samsung com today and start your journey with samsung the pow! podcast is brought to you by the samsung developer program and produced by tony morelan
Learn Developers Podcast
docmovies, people might be using toughbook tony morelan 18 01 yeah, those giant like case almost for their device bala thinagarajan 18 06 sure, exactly and they use a toughbook they connect that to a tactical radio through a wired connection and they will be communicating with their command center on the toughbook, they will see the map data, what's happening around the world exactly they are all that information can be accessed now, the main goal of tactical edition was to replace the 20-pound toughbook with a few 100 grams of samsung smartphone that's the main goal sure, and how we are able to achieve that as we work with department of defense, we understood the requirement and we enable special drivers and protocols on the device and made the device interoperable with tactical radio, okay, so that the device can communicate and receive the data from the tactical radio and provide that information in the graphical user interface on the mobile phone so that's what we did on tactical edition so just to simplify, tactical edition is nothing but a military smartphone tony morelan 19 02 so when you're not working with developers on knox, what is it that you do for fun? bala thinagarajan 19 06 i'm an outdoor person, and i like to hike so there are hundreds of trials here in the bay area if someone want to find me during weekend, probably they will find me on all those trails tony morelan 19 16 nice i do a ton of hiking as well and i've hiked many of the hills on your side of the bay one of these days, you got to come over to my side of the bay now and head up towards mount diablo that's where i do most of my hiking now yeah, bala thinagarajan 19 28 that's one of the blessing like to live in the bay area tony morelan 19 30 yeah, lots of wonderful, outdoor and then also we have the opportunity to hopefully get indoors soon and get back into the office it'll be nice exactly hey, bala, thank you very much for joining me on the podcast today it was great to chat with you and get to learn much more about knox and its capabilities thank you, tony closing 19 48 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, checkout developer samsung com today and start your journey with samsung the pow! podcast is brought to you by the samsung developer program and produced by tony morelan
Develop TV Seller Office
docmovies, drama, tv series, culture, documentaries, music videos, animations, and user created content warningfor apps serving a global country if the country of service includes china and other countries , you cannot select a videos category unless the app is allowed if the applications collect user's personal information, you must enter a url where the user can view privacy policy to comply with legal requirements related to personal information, review samsung's privacy guide, as well as the legal requirements of the countries in which the service is offered after entering all service information, click the "save" button to complete the registration setting service country in the "applications > service country" menu, you can set the country/region where the application will be released partner sellers can launch tv application services in any country, including the us, whereas public sellers can only launch in the us input field description displayed on tv rating certification if you are issued a rating certification, you must register the certificate no country or region select countries where your application is offered no some countries require a certificate to launch the application in order to release the application for the brazilian market, you need to select an age limit and upload a certificate issued by mj/dejus the age limit may be changed according to review by samsung sidia applications with an age rating of 18 years or older cannot be launched in korea for vod applications if the service category or mapping category is videos , you cannot service global countries, including china, unless the applications are specifically allowed to release the application, you must also either exclude china or set the application to only release in china when you change the service country of an application that has already been released and is being offered on the tv, you must enter a reason for the change, and the change is deployed after samsung reviews the reason therefore, it is recommended to contact the samsung content manager first before making any changes, as changes made without prior agreement may be rejected after setting the service country, click the "save" button to complete the registration if the service country of an application being offered on the tv is changed, the change is not implemented immediately, but only after samsung's review process warningthe service country and certificate cannot be changed while certification and verification processes are in progress or while an beta test or an alpha test is in progress once that process is complete, this restriction is lifted the same restriction also applies if a previously requested service country change has not yet been completed entering billing information in the "applications > billing info" menu, you need to enter whether the application has a payment function if there is no payment function, select 'free' feature description samsung checkout select if your application uses the embedded billing function in samsung smart tv 3rd party billing select if your application uses a partner's own billing function you need to also select the billing type, either transaction-based or subscription-based free select if your application does not have a billing function if the samsung checkout option is selected, you need to check all items in the integration checklist after reviewing the guidelines presented checklist guide test in-app purchase in dpi sandbox environment at least once before submitting your app before submitting an app for qa, we require you to complete testing the in-app purchase with actual payment methods for any items enter your company's bank information correctly for settlement and remittance, we need your company's bank account information please enter your bank account information at samsung checkout dpi for more information, see the managing bank account information guide make sure that your product sku is created at dpi before submitting your app to test your product, you need to create your product at dpi to sell your product to smart tv users, you need to create the product at dpi please make sure that you register your product at dpi the app must check checkout-available country before calling the billing api ensure that the 'billing service available country check api’ is integrated to your app to check checkout-available country please ensure that checkout is supported in your service country by using the billing service available country check api once confirmed, your application can call the billing api at checking billing service available country/location in addition, to use the samsung checkout function, the related privilege api must be defined in the application package configuration file applications that do not have the privilege defined cannot be submitted for more information on the api, refer to the billing api guide after selecting the billing function, click the "save" button to complete the registration any changes made are reflected when you submit a new version of the application warningif your billing information is checking from samsung checkout, you cannot change this information and you cannot change this information if you are joining or moving a group entering application feature information if smart tv features are implemented in the application, you need to check it in the "applications > app feature info" menu the feature you checked previously is selected by default as a feature of this application, so the same information will be applied when you submit a new version unless you change it if you change this information, it will be applied from the new application version you will submit if none of the features are applicable, select "not applicable" but please note that when you select "not applicable" if you have previously selected features, all of them will be deselected feature description caption select if your application supports caption this feature does not refer to subtitles, but ip video closed captioning which is used mainly in the us subtitles are located under player features external devices select if your application uses external devices such as usb storage, camera, or microphone, and describe all external devices used game platform integration select if your app supports game platform integration service on samsung tv hdr select if your application supports high dynamic range in-app ad select if your application is connected to an advertising platform for monetization an application is not considered to be ad-supported if the advertisements are not connected to an advertising platform an embedded, static image in an application is not classified as an advertisement importantif you are using in-app ads, but do not specify as such, your app may be rejected also, apps that support in-app advertisements must be updated to use relevant api’s documented here mobile device select if your application works with mobile devices and attach the corresponding mobile application however, if the mobile application was developed using the 'samsung smartview sdk', select the 'smart view' feature instead overlay select if your application supports overlay pip the overlay technique means the pip is located in an html element in a tizen web application player select if your app uses a video streaming solution smart view select if your application supports a mobile application developed through the ‘samsung smartview sdk’ tts select if your application supports text to speech umd search make sure to select this if your content ingested on umd for universal guide/universal search if you unchecked this, all you content catalogue on umd are not populated on universal guide/universal search if you have any question for this feature, please contact your app spm/tam after selecting all implemented functions, click the "save" button to complete the registration any changes made are reflected when you submit a new version of the application if you select the caption, in-app ad, player, or smart view functions, you need to additionally enter detailed information for each function in the sub-menu importantcaption and tts functions must be implemented in order to release an application to a model group subject to fcc regulations applications that do not support caption or tts functions cannot be submitted to model groups subject to fcc regulations caption information if the caption function is applied, enter the caption application method and details in the "applications > app feature info > caption" menu to comply with the fcc's ip video subtitle rules, content providers must support subtitles for ip video applications are considered part of the device and strict rules apply, and cps must use their own or manufacturer's solutions for captions you can download and refer to the 'video caption implementation guide' and 'user interface accessibility compliance manual' through the "fcc guide document download" button input field description displayed on tv solution for captioning select what solution was used for captioning select cea-708/cea-608 or smpte-tt/sami if using samsung's solution, or application ui if you use your own solution no content title and location provide the video title and url to play with caption no after entering the caption details, click the "save" button to complete the registration any changes made are reflected when you submit a new version of the application importantcaption and tts functions must be implemented in order to release an application to a model group subject to fcc regulations applications that do not support caption or tts functions cannot be submitted to model groups subject to fcc regulations in-app ad information if the in-app ad feature is applied, enter additional items from the "applications > app feature info > in-app ad" menu if your application is ad-supported, you can supply a developer url path for your app-ads txt file as per iab documentation on authorized digital sellers this will generate a unique app store url you need to enter whether to use tifa tizen identifier for advertising tifa is a device identifier that is compliant with the iab guidelines for targeting and ad tracking in accordance with samsung terms and conditions, tifa is a required parameter to be passed from the application through samsung’s ads api if you select yes/no and your app uses tifa in ways that don’t match your answers, the app could be rejected during pre-testing in this case, resubmit the app again after you correct the answers or fix your app following tifa guideline input field description displayed on tv application developer url enter or update the developer url path to where your app-ads txt file is located for example, you must enter "https //www samsungtvplus com/" not "https //www samsungtvplus com/app-ads txt" importantto verify that this domain is valid, add "/app-ads txt" to the developer url to open it if the url does not load the app-ads txt file, a different url should be supplied once the developer url is entered, the bundle id is automatically generated and displayed in the section, which can be used to access the app store url noteto access your unique app store web page, add the bundle id to the url "https //www samsung com/us/appstore/app/" for example, if your bundle id is "g15147002586", the url of your page will be "https //www samsung com/us/appstore/app/g15147002586/ " the developer url, bundle id, and app store id are then displayed in the metadata on that page use the bundle id and app store url in your ad tags or bid requests to support app-ads txt verification no use tifa select if your application uses tifa for advertising purposes collecting or using tifa information for any other purpose is prohibited no confirm tifa guideline if the application is using tifa, you need to check the requisite guidelines and terms and conditions and select the check box no after entering additional details for the in-app ad feature, click the "save" button to complete the registration and update the developer url and bundle id information are reflected immediately, and the change for tifa yes/no will be reflected from the time you submit a new version of the application noteto use the in-app ad feature, the related privilege api must be defined in the application package configuration file applications that do not have a privilege defined cannot be submitted for more information on the api, refer to the adinfo api guide player information if the player function is supported, enter the details of the video streaming solution in the "applications > app feature info > player" menu feature description video codec select the video codec spec between divx, h 263, h 264, hevc, motion jpeg, mpeg1, mpeg2, mpeg4, mvc, rv8/9/10, vc1, vp6, vp8, vp9, wmv7, wmv9, xvid, and other audio codec select the audio codec spec between aac, ac3, adpcm, aiff, alac, ape, dts, flac, he-aac, lpcm, midi, mp3, vorbis, wav, wma, wma/dd+, and other container select the container spec between 3gpp, asf, avi, mkv, mp4 fmp4 , mpeg-ts, mstroska, ps, vob, vro, webm, and other drm select the drm spec between aes-128, playready, verimatrix, widevine classic , widevine modular , and other streaming engine select the streaming engine spec between hls, http https , mpeg-dash, smooth streaming, and other player api select the player api spec between avplay, c#, mse, and other subtitle select the subtitle spec between close caption, smpte-tt, webvtt, and other other describe if there are other player specifications not listed above after entering the player details, click the "save" button to complete the registration any changes made are reflected when you submit a new version of the application smart view information if the smart view function is selected, enter detailed information about the smart view function and mobile application in the "applications > app feature info > smart view" menu input field description displayed on tv service logo upload the mobile application icon or website logo no service title register the mobile application title on the app store or website no service access provide at least one of the following application source, website url, other no additional features select features you added on your smart view enabled application, between ble bluetooth low energy discovery, wow wake on wireless lan , and speaker no for the logo image, upload an image sized 512x512 or 1020x1024 pixels, in the 24-bit png format, and with a file size of 300kb or less images with transparency are also permitted depending on the service access method selected, upload the application source directly or enter the url information to access it if there are other ways to access the mobile application, explain them after entering the smart view details, click the "save" button to complete the registration any changes made are reflected when you submit a new version of the application entering verification information this information will be used by the samsung smart tv certification and verification team, and the process may be rejected if it is missing please check if you can fully test your application with the information you provide and update it if there is any invalid information input field description displayed on tv app description file provide application documentation to help samsung testers understand the application's workflow and user scenarios for detailed specifications of the application description document file, refer to the application ui description guide no geo ip block select if geo-filtering is used for application content make sure that all ip addresses used by samsung testers are allowed on your servers no test accounts if your application requires a login to use, provide the credentials for test accounts you must provide at least 1 test account for each model group that your application supports each test account must have enough credit to comprehensively test all the application features on a specific platform importantthe application is tested simultaneously across all requested model groups consequently, you must provide a number of test accounts equal to or greater than the number of requested model groups insufficient test accounts can cause your application to fail verification at the testing phase additionally, if the content and user experience vary depending on the account, provide accounts that can test each specific scenario example if the presence of ads, live tv, or premium vod differs by account id samsungtest1@samsung com ads provided id samsungtest2@samsung com 4k content provided id samsungtest3@samsung com live tv provided no voucher code if you have content to use after payment, enter voucher information for testing no after entering the test information, click the "save" button to complete the registration and update any changes for geo ip block, test account, and voucher code information are reflected immediately, and the change for app description file will be delivered with the app package when you submit a new version of the application
Learn Developers Podcast
docmovies, i think it's one of the early ones when they go back in time and they go back to earth, in a running lead to a hospital and scotty sees a mouse and he picks it up, he starts talking to the mouse and of course, he doesn't do it he kind of mumbles under his breath about, you know, how advanced they are you know, maybe we're going to get there where voice works well enough, where much of our interaction with tech is done through voice scores yeah, like i said, i think we'll see keyboards have been around forever, they'll probably still be here in 10 years, and miles on swiping and typing, i just think there's a bunch of things that if we think about it, we can do better with voice or voice is part to that multi-modality, part of that interaction with our technology so that's what i like to seek out five or 10 years be kind of a, not a novel thing, like it is now in a lot of ways but it just you expect yeah, tony morelan 24 26 and it's, you know, it's crazy to think, you know, it seems like smartphones have been around forever but it was not that long ago that truly the first smartphone was introduced to us and 10 years from now is not much and just think about the advancements that definitely voice will take over that time roger kibbe 24 42 yeah, absolutely absolutely you know, like truly understanding yep human voices really hard i can say something to you in 10 different ways can you understand i'm seeing the same thing? oh, yeah that's really hard for an ai to do that yeah part of the challenges we have right now voice is when you're developing a voice application need to be pretty deterministic about if a user says this this way, then this is what you do and here's some variations and how they say, because the ai gets better, you won't have to be so deterministic in your development they'll just say, when the user intends this is their intention right? thank you yes, something like that that's going to be huge, huge unlock for the industry but it is a really hard ai problem tony morelan 25 32 yeah, you know, actually some of the biggest laughs that we get in our house, so it's when we listen to my wife try and talk to one of those voice automated systems that you see on phone systems when you're asking a question trying to be transferred to a different department and the phone system doesn't understand what my wife says she doesn't say it any differently she just says it more aggressively she gets mad or she gets angrier, but she's still saying the same terms and it's still sending her to the wrong department and you know, myself, the kids, we all are just laughing as she just gets have tried to deal with this really, you know, low level ai system roger kibbe 26 05 yeah, you know, this industry calls us ivr so they mostly been around for a long time and you know that the driver there was cost reduction right so it's expensive for a csr to answer phones cause reduction we all understand it, but sometimes doesn't put people first and i think you saw that with ivr it's funny when you were mentioning your wife getting frustrated and i likewise, um, you know, i will say hitting 0000 in an ivr often kicks you out of it but uh um, there's even websites that actually tell you how to if you're stuck in ivr hell, like this is how you say or this is the buttons you press to get out of that which is pretty funny but that you caught up in something i think is pretty interesting we can all feel as humans emotions in our voice, happiness, sadness, excited, bored that the there is a lot of research being done around voice assistance, understanding kind of the emotion in there because just hearing a voice we as humans hear obviously the words we also understand the emotion they're subtle cues and how we say things obviously, they're face to face there's also a body language one of the challenges and then ai i talked about, is it just understand it's saying, here's the words, what are those words mean? if i could understand the emotion of the user, that could be another input into my understanding, or if you're pissed and angry, and you're talking to an ai voice assistant, maybe you don't want it to be happy, full of personality and cracking jokes you want it to be direct and to the point and the other hand if you're having fun, maybe the personality of the voice assistant the personas industries likes to call it is more fun and crack some jokes in this kind of friendly i think there's a big unlock for voices systems to understand kind of the emotional cues that we as humans are giving with the tone and how we say things sure tony morelan 28 17 so let's talk a little bit about discoverability oh, you know, i can only imagine if there's a lot of third-party apps out there what's bixby doing to help make discoverability? a little easier? roger kibbe 28 27 yeah, there are a lot of third-party applications for all the voice assistance and part of the challenge is, you have to use the name so if i use if i call my voice app would say voice, the podcast helper okay, if i want to use the podcast helper, i have to say something like, ask podcast helper to start or ask podcast helper to play my favorite podcast the problem there is that ask podcast helper, i have to remember that phrase and i have to remember that term for the name of application the problem with discoverability is people don't remember that and so they don't use it and so if i just say, tell my voices to play my favorite podcasts, it's going to use whatever built in functionality it has to play podcasts as an example, and not podcasts helper, and not podcast helper on the other hand, podcast helper may be a better experience sure i, as a user, feel that podcast helper is my favorite way to listen to podcasts so what we did with big suzy, introduced late last year, somebody called natural language categories, and it's really to address that and the whole idea is, is these categories are way categories of interactions so like playing a podcast, podcast is one of our categories i'll give you another example and give you an actual real-world example weather is one of our categories so if i ask bixby what's the weather like? whatsoever like today, what's the weather like next week? what's the weather like? he will answer that in the built-in weather capsule i answered that, but i actually in my big city, so there is a weather capsule called big sky that i really like goes into more detail it's kind of for weather geeks, and i like weather and so in bixby once i enable big sky what i can do, because it's part of the natural light, the weather natural language category, i as an end user can go and say, i want this to be the default so the next time i say, hi bixby, what's the weather, big sky answers, built in weather functionality so what lets you do is choose and personalize your voices system the closest thing i mean, look, look at android phones look at samsung phones if you install two different map apps on an android phone, the first time you go to launch a map, it says hey, you have map app, a or have that be which one you want to use? and do you want to make one-year default? well, bixby has really exactly the same thing but for voice so what's the weather? like if i've enabled two of them and say, hey, you have weather capsule a, or you have big sky? which one would you like to use? would you like to make one the default? so i said, hey, use big sky and make it the default and from then on big sky answers that i can always go into settings and change that or i can always go back to that old kind of invocation name and say, ask weather app pay for the weather and it'll override, right because then i'm specifically addressing the name of a capsule, and that will answer so we've had this in about 20 different categories we keep on building these and thinking about it we think it's a big unlock to not only developers kind of solving this discoverability problem, but to my mind, even more importantly, as a consumer i said, i like big sky over the in weather app, but everybody has their own preferences there so let the consumer choose what they want their experience to be sure their favorite provider for x, y, or z, and really personalize the experience to the consumer so suddenly, it may come across in how i'm describing it, but we're definitely super excited about because he thinks there's such amazing possibilities there tony morelan 32 21 yeah, no, that sounds that sounds great so let's talk about getting started if developers or designers want to think about getting into voice, what advice would you give them? yeah, so a couple roger kibbe 32 30 things come to mind the first is when you're thinking about what you want to build is voice the best interface for it right so, you know, obviously, i'm a fan of voice i think it's amazing i also think there's areas where typing on a keyboard, or swiping on a screen or better interfaces, right for what you're trying to do so you need to think about if it's easy are faster or better to do it swiping or typing i probably shy away from it okay on the other hand, if it's hard or difficult, i always like to think about things where i'm like, wow, i got to go through 12 different menus to go do this wow voice might be really amazing there so if you're going to replace some functionality, think about stuff that were voices a better interface or where voice is just brand new, it would not work well without voice being the kind of the modality with which you interact with that technology so that's number one number two, i'd say is follow your passion okay, you know, the very best apps, pc, a phone or for voice are typically where the developer had some passion about it so it really comes through so if you're passionate about cooking, hmm, maybe there's something cooking voice experience you can build if you're passionate about exercise maybe there's an exercise voice experience you can build so i say, follow your passions, because you're going to build something that passion will come through to people using your app and you know what? it's going to be a heck of a lot more fun to build yeah if it's something that follows your passions, you want to build something that you use right, exactly this is fun i'd use it this is so cool i want to share it with the world tony morelan 34 28 yeah, yeah, i think that's a lot of great entrepreneurs get started as they're doing something that they want, that they're excited about and then they worry about, you know, the money in the marketing later but yeah, completely agree with you so, in doing a little research for this interview, i, i discovered i learned that you actually host your own podcast tell me a little bit about the bixby developers chat podcast that you host roger kibbe 34 56 yeah, yeah so just started that in january this year, you know how to get started, i went and told my boss and said, i want to start a podcast he said, go for it i don't know what that means i mean, he knew what it meant but it was kind of like, go for it let's figure it out and see how it works and really the genesis is, you know, every time i go to a voice conference, i have these kinds of long in-depth kind of conversations with people around hey, what are you building with voice? what's your thinking about it? where can you go in the future? and i really wanted to share some of those conversations with the world you know, i'm passionate about voice and these great conversations with it to my earlier point about what you're passionate about, go share it, so wanted to go share it with the world and so i think we're done we've done 11 podcasts right now we do one every two weeks on breeding, typically people in the voice industry in when we talk about what they're doing, what they've built what they think the future will look like on these our general conversations we definitely talk about bixby somewhat, but i really the whole idea was a little bit kind of a halo effect is hey, people who are interested in voice would go listen to this podcast and yeah, absolutely we want them to go listen and go, hey, i got to go check out that bixby and go try it out or develop something on it i like what those guys are doing yeah but the podcast yep, wide ranging i've talked to voice designers, i talked to some podcasters i've talked to developers and i continue to think of who would be an interesting guest to talk about it it's a lot of fun um, i continue enjoy it listenership seems to be growing pretty well so i don't know for one podcaster to another yeah, i think podcasting is a lot of fun tony morelan 36 48 yeah, definitely so for our podcasting fans how can they find your podcast? where are you guys hosted? what's it called? roger kibbe 36 54 yeah, great question bixby developers chat so any of your major podcast players, if you start searching for bixby, your bixby developers that'll come across we're also built in the bixby capsule so if you enable it you can say hi bixby, play bixby developers chat and then we're online if you just search for bixby developers chat, and you can see it and please listen, and then let me know what you like your what you'd like to see in the future i think a lot of the value of podcasting is listening to your audience and they'll say, i love this i'd like more of this, less of this love to hear about it tony morelan 37 31 wonderful so you've been around voice for a long time in fact, you know, not just with your podcast, but prior to that with all of your work with voice i'm sure you've got a lot of experiences around voice so tell me some of your favorite experiences and why roger kibbe 37 43 yeah, i'm going to say maybe my favorite capsule and bixby is something built in it's the yelp capsule and why i really like that is i talked earlier about i said, grace is a great way to interface in many ways, but not always so voice is a really great input modality so if i wanted to find a chinese restaurant in san francisco, that's open past 10pm on saturday nights that's a pretty easy you, you can understand exactly what i'm saying sure, um, there's a lot of information than that now think about that if i was to search using a typical web interface, right, there's a lot of clicking and typing and things like that and drilling down i need to do there yeah, but if i just ask the bixby oh, capsule, something like that, it could parse all that input, and then show me the results so it's great for input modality on the other hand, i get a list of restaurants and a list of restaurants via voice may be kind of overwhelming so that's a great place where the screen etc screen, this list here and then i kind of go back to touch when i swipe through those and touch and find more information why i like that is it's a great example of multi-modality and kind of using the mix the modalities together so the yelp capsule and bixby the other thing i'll say one of my favorite things to do on voice is, or just generally is i love trivia there’re some pretty fun voice trivia experiences one i really like on a very popular question of the day it's actually quite simple but really well done so boom, start question of the day aspects be hi bixby star question of the day, it gives you one question, multiple choice answers if you get the answer right, you get a bonus question and you can ask that what's really well done in that is the content is really well done so the questions are great, the content is great i'm going to say our content is king invoice and that's a great example it's incredibly simple what they built but incredibly great because the content so great, there's experience that isn't on bixby i'd love to see come to bixby what's that? it's a trivia game called feel the pressure feel the pressure which is on alexa yeah and you've done great content and really great sound effects the sound effects in that game made me want to play that game more and i love the thinking of what set sound effects and the impact upon your kind of psyche are so i love that game but yeah, those are two examples of things that i think are done really, really well with voice tony morelan 40 22 excellent, excellent laughter definitely check those out so if people want to learn more about bixby or even you as an evangelist, what's the best way for them to get in touch with you? roger kibbe 40 29 yeah so for bixby so www bixbydevelopers com that is our website and by the way, that is where you can go i mean, today, you can start developing for bixby so you download the bixby developer studio or id, you can do all your development there's even a simulator in there so if you don't yet have a samsung device, you can go and build that simulator and just from a phone to watch the tv and smart appliance so you can build all that so that's www bixbydevelopers com kind of your home hub for everything big sweet the other things i'd say follow us on social we try to be pretty active on twitter so at bixby developers can also find us at facebook bixby developers search for bixby developers on social myself i am definitely pretty active on twitter at roger kibbe i love to talk about voice what people are doing, what's happening, learn about new areas that people are exploring so let's connect and continue the conversation on twitter tony morelan 41 37 excellent, excellent so let me ask you a few questions about bixby studio so that's the software that's used to create your capsules tell me a little bit about getting bixby studio is this free? does it cost? roger kibbe 41 49 yeah, hundred percent free you literally it's on the homepage of bixby developers calm for mac, windows and linux you download it it's a full-blown id with develop debug, there's a testing suite in there there's a simulator, like i said, so you can go from end to end testing and you all do it in that id, there's no it automatically syncs to the cloud that's actually kind of a big competitive advantage for us is our idx some of our competitors require you to do things and kind of sync to the cloud or use two different interfaces everything in bixby developer studio isn't one you can do it all there and do all your development there until you're ready to submit to the marketplace and then you start that within that, that studio as well so is there a process where developers have to be approved to publish their capsules? yeah, so much like what happens with the other voice assistants and happens in various mobile phone app stores there is a process so you submit your capsule with information for the marketplace and that is some information with the reviewers if necessary, and then there's a review process and they make sure you know, there's certain rules around, you know, appropriate content, or have you does that actually work particularly tricky with voice, right? people won't always phrase something the same way so you want to build over flexibility you create these things called hints, which are kind of phrases that will kick off your voice experience or capsule you want those to work so the reviewers check all that and make sure it all works and if that's all working, then we'll go live in the marketplace and if it doesn't, they'll give you some feedback one of the things we're particularly proud about is our developer kind of outreach in a lot of areas around there and if somebody doesn't pass, we try to give really useful feedback about hey, here's what you need to fix and we also get feedback around hey, this, maybe this went live, but this could be even better x, y or z because it's always in our interest to have really great capsules on the marketplace, so our developers spend our, our capsule review team spends a little more time reviewing things, because part of their job is to give some constructive feedback on sure you know, good degrade, i like to say, tony morelan 44 18 exactly so not just does it work or does it not, you know, pass or fail? you're actually giving more insight on how to improve this to get more success yeah, roger kibbe 44 25 absolutely tony morelan 44 26 wow that's great that's great all right so i am going to finish off with our last question here, our last topic, in doing a little research on viv labs and adam shire i came across this penn and teller video of him doing magic so and i've been found some other videos of adam doing magic, and i'm wondering, does magic work its way into viv labs i mean, a little bit about that roger kibbe 44 53 yeah, so absolutely this so adam is actually this pretty talented amateur magician he probably kickoff professional if you really put his mind to it so he loves to talk about magic and he seems to know everyone in the magic industry, he's incredibly well connected there um, so a couple things happen one, we have what we call friday magic so every friday afternoon, kind of near the end of the day, we have a magician come in use of magic, which is really kind of a cool way to start the weekend, you know? sure all right, you know, the work week is over, well laugh and be entertained with some magic and then we all we all go home that happens it's a lot of fun we definitely when we go to trade shows, we often bring magician in place, sometimes very entertaining results there but yeah, it's just one of these fun little side things that happens we had that friday, magic we talked about it we do it at trade shows and yeah, it makes me smile thinking about it tony morelan 45 59 yeah no, that's awesome that those things were great it was a it was a nice discovery well, hey, roger, absolutely appreciate you taking the time this has been a great interview i love getting to know more about you and also about bixby and voice so again, thank you very much for joining me on today's podcast roger kibbe 46 13 oh, my pleasure always love to talk to voice thanks so much tony morelan 46 17 so before i end this show, i want to do something a little fun with bixby bixby said she can rap but i want to know hey bixby, can you beatbox? roger kibbe 46 28 check this out outro 46 39 looking to start creating for samsung, download the latest tools to code your next app, or get software for designing apps without coding at all sell your apps to the world on the samsung galaxy store check out developer samsung com today and start your journey with samsung the pow! podcast is brought to you by the samsung developer program and produced by tony morelan
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.