-
Posts
1,079 -
Joined
-
Last visited
Never
Everything posted by Samsung Newsroom
-
Samsung Developer Conference is Where Now Meets Next. It’s two days of learning and inspiration where Samsung introduces new technology for the now and a greater vision for what’s next. Join fellow developers to imagine future possibilities and master the skills to realize them. At last year’s conference, Samsung broke barriers and redefined technology with announcements on One UI, Bixby Developer Studio, and more. Plus, devs learned about the latest SDKs directly from Samsung engineers during hands-on code labs. Technical sessions provided more updates on a range of topics, including Bixby and the New Exponential Frontier of Intelligent Assistants, which was one of the most attended sessions in 2018. Key leaders from the Samsung team broke down what Bixby was, why it was different, how to capitalize on it, tips for integration, and more. SDC19 Will Be One for the Books SDC19 will once again operate at the intersection of now and next with two days of exciting code labs, demos, technical sessions, and keynotes with the industry’s leading experts. Discover the latest in tech with groundbreaking sessions on Bixby, AI, blockchain, wearables, and more. Every element of this year’s conference is about the developer experience, including the brand identity. For SDC19, emoticons were created out of programming code — a playful representation of the developers, creators, technologists, and Samsung pros that make up the conference’s diverse audience. Emoticons symbolize what tiny bits of code can create when thoughtfully assembled. Get Early Bird Pricing Grab your spot today for Samsung Developer Conference and save $150! Don’t miss your chance to experience cutting-edge technology, network with tech leaders, and learn Samsung’s latest dev tools first-hand. See you there on October 29–30 at the San Jose Convention Center. Already registered? We can’t wait to see you! In the meantime, follow us on Facebook, Twitter, LinkedIn, and Instagram for the latest updates on sessions, speakers, and more. View the full blog at its source
-
At GDC 2019, Arm and Samsung were joined on stage in the “All-in-One Guide to Vulkan on Mobile” talk to share their learning from helping numerous developers and studios in optimizing their Vulkan mobile games. In tandem, Arm released Vulkan Best Practices for Mobile Developers to address some of the most common challenges faced when coding Vulkan applications on mobile. It includes an expansive list of runnable samples with full source code available online. This blog series delves in detail into each sample, investigates individual Vulkan features, and demonstrates best practices of how to use them. Overview Setting up a Vulkan swapchain involves picking between options that don’t have a straightforward connection to performance. The default options might not be the most efficient ones, and what works best on a desktop may be different from what works on mobile. Looking at the VkSwapchainCreateInfoKHR struct, we identified three options that need a more detailed analysis: presentMode: what does each present mode imply in terms of performance? minImageCount: which is the best number of images? preTransform: what does it mean, and what do we need to do about it? This blog post covers the first two points, as they are both tied to the concept of buffering swapchain images. Surface transform is quite a complex topic that we’ll cover in a future post on the Arm community. Choosing a present mode Vulkan has several present modes, but mobile GPUs only support a subset of them. In general, presenting an image directly to the screen (immediate mode) is not supported. The application will render an image, then pass it to the presentation engine via vkQueuePresentKHR. The presentation engine will display the image for the next VSync cycle, and then it will make it available to the application again. The only present modes which support VSync are: FIFO: VK_PRESENT_MODE_FIFO_KHR MAILBOX: VK_PRESENT_MODE_MAILBOX_KHR We will now each of these in more detail to understand which one is better for mobile. Figure 1 shows an outline of how the FIFO present mode works. The presentation engine has a queue (or “FIFO”) of images, in this case, three of them. At each VSync signal, the image in front of the queue displays on screen and is then released. The application will acquire one of the available ones, draw to it and then hand it over to the presentation engine, which will push it to the back of the queue. You may be used to this behavior from other graphics APIs, double or triple buffering – more on that later! An interesting property of the FIFO present mode is that if the GPU can process images really fast, the queue can become full at some point. When this happens, the CPU and the GPU will idle until an image finishes its time on screen and is available again. The framerate will be capped at a stable 60 fps, corresponding to VSync. This idling behavior works well on mobile because it means that no unnecessary work is performed. The extra CPU and GPU budget will be detected by the DVFS (Dynamic Voltage and Frequency Scaling) system, which reduces their frequencies to save power at no performance cost. This limits overheating and saves battery life – even a small detail such as the present mode can have a significant impact on your users’ experience! Let us take a look at MAILBOX now. The main difference, as you can see from Figure 2 below, is that there is no queue anymore. The presentation engine will now hold a single image that will be presented at each VSync signal. The app can acquire a new image straight away, render to it, and present it. If an image is queued for presentation, it will be discarded. Mobile demands efficiency; hence, the word “discarded” should be a big red flag when developing on mobile – the aim should always be to avoid unnecessary work. Since an image was queued for presentation, the framerate will not improve. What is the advantage of MAILBOX then? Being able to keep submitting frames lets you ensure you have the latest user input, so input latency can be lower versus FIFO. The price you pay for MAILBOX can be very steep. If you don’t throttle your CPU and GPU at all, one of them may be fully utilized, resulting in higher power consumption. Unless you need low-input latency, our recommendation is to use FIFO. Choosing the number of images It is now clear that FIFO is the most efficient present mode for mobile, but what about minImageCount? In the context of FIFO, minImageCount differentiates between double and triple buffering, which can have an impact on performance. The number of images you ask for needs to be bound within the minimum and maximum images supported by the surface (you can query these values via surface capabilities). You will typically ask for 2 or 3 images, but the presentation engine can decide to allocate more. Let us start with double buffering. Figure 4 outlines the expected double-buffering behavior. Double buffering works well if frames can be processed within 16.6ms, which is the interval between VSync signals at a rate of 60 fps. The rendered image is presented to the swapchain, and the previously presented one is made available to the application again. What happens if the GPU cannot process frames within 16.6ms? Double buffering breaks! As you can see from Figure 5, if no images are ready when the VSync signal arrives, the only option for the presentation engine is to keep the current image on screen. The app has to wait for another whole VSync cycle before it acquires a new image, which effectively limits the framerate to 30 fps. A much higher rate could be achieved if the GPU could keep processing frames. This may be ok for you if you are happy to limit framerate to 30 fps, but if you’re aiming for 60 fps, you should consider triple buffering. Even if your app can achieve 60 fps most of the time, with double buffering the tiniest slowdown below 60 fps results in an immediate drop to 30 fps. Figure 6 shows triple buffering in action. Even if the GPU has not finished rendering when VSync arrives, a previous frame is queued for presentation. This means that the presentation engine can release the currently displayed image and the GPU can acquire it as soon as it is ready. In the example shown, triple buffering results in ~50 fps versus 30 fps with double buffering. The sample Our Vulkan Best Practice for Mobile Developers project on Github has a sample on swapchain images, that specifically compares double and triple buffering. You can check out the tutorial for the Swapchain Images sample. As you can see from Figures 7 and 8, triple buffering lets the app achieve a stable 60 fps (16.6 ms frame time), providing x2 higher frame rate. When switching to double buffering the framerate drops. We encourage you to check out the project on the Vulkan Mobile Best Practice GitHub page and try this or other samples for yourself! The sample code gives developers on-screen control to demonstrate multiple ways of using the feature. It also shows the performance impact of the different approaches through real-time hardware counters on the display. You are also warmly invited to contribute to the project by providing feedback and fixes and creating additional samples. Please also visit the Arm Community for more in-depth blogs on the other Vulkan samples. View the full blog at its source
-
The Samsung Galaxy S10 5G has now arrived in the U.S. That means that now is a great time for forward-thinking developers to target this device in anticipation of upcoming growth of 5G technology. As a technologist at Samsung, I am very excited about the possibilities created by 5G, and have been investigating how we can build a foundation to create 5G apps and games on the S10 5G. What’s so special about 5G? You may know it’s another generation of network transfer standard faster than the 4G/LTE speed we are used to now. While that is true, it overlooks the extent of the technological advance of this generation. It’s exponentially faster than 4G and has lower latency. These upgrades will both enhance and empower a whole set of technologies previously unfeasible. As a global leader of 5G devices, we will guide you through upcoming Android APIs and common practices to: Check for and test for 5G capabilities Monitor real-world device connection speed App design considerations to take advantage of 5G speed For example, the most straight-forward use case of mobile networks is watching videos on the go. Prior to 4G, the slow speed and low resolution supported by 3G resulted in poor experiences. Now 5G enhances the video resolution even further, producing film-like experiences. However, as is the case in the current 4G era, your device will not always be at 5G. Your connected speed could be affected by a number of factors. What do these varying factors mean to the application developer who’s working with videos? Ideally, depending on the actual connection speed, an appropriately sized video stream should be sent to the user. If instead you always stream the highest definition version, the video will inevitably lag and result in a bad experience. Don’t worry, as long as you follow the tip below, this won’t be a problem for you or your users. Stating with Android Q, there are capabilities to detect actual connection speed. A developer will use the class: NetworkCapabilities While this may seem like another long, complex class with many options, the functions of interest to a 5G developer are: getLinkDownstreamBandwidthKbps() This returns downstream bandwidth measured in kilobytes-per-second. A developer can poll this value periodically to gauge actual connection speed. They can then route appropriately-sized streams to the end user. NetworkCapabilities.NET_CAPABILITY_NOT_METERED This indicates that the end user has not set, or doesn’t have a connection limitation imposed upon them, thus bandwidth isn’t a cost factor to the end user. If this flag were false, a developer might want to warn the user and give them steps to handle the situation appropriately. Otherwise, the user may misplace blame of any video stoppage on the developer. The exact strategies of monitoring and switching to non-5G mode are usually the same whether you develop a video app or competitive networked game, with customizations on frequency and indication to the user. Overall, it is not a daunting task and does not interfere with your app’s structure. At Samsung we are eager to help developers succeed on our platforms. This is only the first of many guides we have planned to assist you in preparing your apps to take advantage of 5G. For more developmental resources on 5G and Samsung in general, please go to developer.samsung.com. We are excited to have you onboard. View the full blog at its source
-
A key component of theme design is custom icons. These icons can launch apps like email, camera, and music, and are also used as weather app symbols and user-interface indicators throughout a theme. Icons are a great way to show off your design skills, enhance your theme concept, and set your design apart from others. They can be sold as Icon Packs or as part of a Galaxy Theme on the Galaxy Store. In this article, you’ll find some useful tips for both prospective Galaxy Theme designers and current designers on how to create custom theme icons. Becoming a Samsung Theme Partner Only those who have been accepted into a Samsung Theme Partnership can design and sell themes on the Galaxy Store. You can learn more about how to apply for a theme partnership by reading How to Submit a Galaxy Themes Portfolio. You can download the Theme Editor software and start customizing the icons in your theme design once you’re a part of the program. Customization When building a theme there are many opportunities to replace the default icons, buttons, and indicator symbols with customized graphics. However, only the icons in the Icon Pack have to be customized when you submit a theme for approval. The theme will be rejected if the default icons are not replaced with customized icons. Non-Customizable Icons Certain icons cannot be changed. These icons include third-party apps like YouTube and Facebook, or system apps like Smart Switch and Optical Reader. However, you can still add a custom background or frame to these icons by using the Icon Tray feature. Read below for more information on Icon Trays. Icon Design Tips Download Default Icons. If you would like to have example files of the default icons, download by right-clicking one of the icons in the UI preview window and selecting [Download]. To download all of the icons, right-click and select [Download All]. Size and Resolution. Icons within the Icon Pack must be 144 pixels square in size, with a screen resolution of 72ppi. Color Mode. The document image color mode for icons must be either grayscale or RGB. Adobe Illustrator. Use a vector-based program like Adobe Illustrator to easily edit or enlarge your icon artwork without losing quality. Adobe Photoshop. If using a bitmap-based program like Adobe Photoshop, place vector artwork as smart object layers. This allows the artwork to be enlarged without losing quality. Document size. As mobile device screens improve, the Themes Editor software may increase the required size for app icons. Start with a larger document size that can be easily reduced to 144 pixels. Example: A 576 pixel document can be reduced to 144 pixels when multiplying by 25%. Designing at a larger size ensures that you have master files that can be exported larger than 144 pixels in the future. JPGs & PNGs. Even though icons can be imported into Theme Editor as JPGs or PNGs, I would suggest PNGs to allow for transparent backgrounds. Color Palette. Icons are easy to read at a quick glance when fewer colors are used. Create a simplified, cohesive color palette with enough background contrast so that your icons can be seen. Icon Tray Use the Icon Tray feature to add a background or frame to your Icon Pack apps. The Icon Tray displays an additional image independent of the icon image within the app. This is helpful when adding a similar background, or to frame third-party and system app icons that cannot be customized. To use the Icon Tray feature, click [Icon pack] in the sidebar and then [App icons]. Then, click anywhere in the UI Preview Window that is not within the dotted-lined rows of icons to display the Icon Tray builder window. Select [All Apps] if you would like every app in the UI theme to have the same custom background. Select [Unassigned Apps] to add a custom background to the app icons that cannot be customized. When choosing this option you must still replace the icons that can be customized. Weather Widget Icons The Weather widget consists of 27 icons, one for each weather condition. Even though it is not required to change these symbols, doing so is a great way to create a unique theme. To access the Weather widget, click [Home screen] in the sidebar and then [Partly Sunny] in the default UI screen window. Take note that the size of the icons are 219 x 219 pixels. Calendar App Icon There are two options to customize the calendar app. The first is to upload a custom icon that symbolizes a calendar. The second option is to create a Live icon that shows the current date on top of a custom icon background. 1. To create a Live icon, click [Icon pack] in the left sidebar and then the [Calendar app icon row] in the default UI screen window. 2. Click the [default icon] to the right of the Calendar app to replace the app icon. Once replaced, the option to add a Live icon will appear. 3. Click [Live icon] to open the icon builder. In this window you can add a calendar background image, and set the font color for both the day of the week and day of the month. Both font colors must be changed from the default font colors. If not, the Save button will not be active. If you do not want the day of the week to appear, set the font color opacity to 0% in the middle option of the three customizable sections. If you would like the style of the standard calendar icon to match the style of the Live icon, place a checkmark next to [Set the current preview as a normal]. If not, an icon image must be uploaded for the normal calendar icon. Free Icons For Free Themes If you would like to offer a free theme and are looking for free icons, you can download different public icon packs by logging into your Samsung Account and visiting the Themes page. These free icons are only available to those who have been accepted as a Theme Partner. Each icon set is a Photoshop file with embedded smart object icons. You can customize and save icons individually. Uploading Icons Click the image button to the right of each icon to upload an individual icon. Click the “Add All” folder button in the upper right of the icons window to add a group. If using the “Add All” feature, file names must match the names the default icons. Bad Design The majority of Theme Partnership applications are rejected because: Icons are not customized Backgrounds make the icon too difficult to read Symbols do not correlate to their specific app Icons are poor quality Below are examples of bad icons: Final Design Thoughts Your icon designs have the greatest impact on the look of your theme design and give it unique characteristics. True for all aspects of UI design, clean and simple is the approach you should take when designing app icons. They should be easy to read not only at first glance but also when distinguishing between other apps on the same UI screen. Testing the readability of your apps at actual size is very important. It is highly suggested to either view your theme on a mobile phone or print out your theme at actual size. Stepping back and quickly glancing allows you to determine if your icons are designed well and that it’s easy to understand what they represent. For tips on designing themes, be sure to read the blog Design Tips: Galaxy Themes. If you are not familiar with 9-patch images or the 9-patch editor, please read the blog Use The 9-Patch Editor To Create Responsive Galaxy Themes Components. View the full blog at its source
-
Registration for Samsung Developer Conference 2019 is now open! Join more than 5,000 innovators, developers, technologists, and content creators to explore the next wave of intelligent tech. If you enjoy meeting and collaborating with industry leaders and world-renowned speakers, then SDC19 is for you. The two-day conference will be packed with code labs, demos, technical sessions, and keynotes from Samsung executives and the industry’s most-innovative thinkers. You’ll get hands-on experience with our latest hardware, software, and services with the help of Samsung engineers and tech partners from around the globe. For a limited-time only, register for #SDC19 with an exclusive presale discount that includes: SDC19 tickets at the lowest possible price – $120! Updates on the latest SDC news, technical session details, and speaker lineup A two-day pass that includes admission to all keynotes, sessions, code labs, as well as Devs + Drinks Entrance to our Samsung Exhibition area 1:1 training with Samsung experts And more! Space for this select group is limited, so sign up today! Register Now! We look forward to seeing you on October 29 – 30 at the San Jose Convention Center. In the meantime, check out the highlights from SDC18. View the full blog at its source