5 Considerations for Building a 5-Star FireTV App
By Dumitru Lupanciuc
The Android operating system (OS) is being used across multiple devices and platforms and is currently the most popular mobile operating system. At the moment, Android powers more than 2 billion devices and many of those devices operate on variations of the Android software development kit (SDK), such as Amazon’s FireTV OS, Nokia’s X platform, and Alibaba’s Aliyun OS, to name a few. As a result, with multiple architecturally various applications that can be built, they share the same set of application programming interfaces (APIs) from the Android SDK.
After years of experience developing exclusively for Android mobile devices, I’ve come up with certain development patterns that can be replicated to help bring a quality mobile app to market. On the other hand, FireTV development requires some additional review and slight adjustments to those patterns based on the specifics of this platform. In this article, we will look into some aspects of FireTV development and some of the lessons learned from our experience developing a 5-star app for one of the biggest media providers.
At the time of writing this article, from the hardware perspective, FireTVs are less performant devices compared to the most up-to-date mobile Android phones. This means a developer will need to take a more diligent approach with regards to memory allocation, data processing, and algorithms while developing a FireTV app. These technical limitations often cause image stuttering and slowness. To avoid these issues, the best approach is to make as much data processing work as possible on the server-side, and send only the necessary data through the RESTful API. This will avoid unnecessary sorting and filtering on the client side that is both memory- and processing power-expensive.
Unlike mobile devices, FireTVs have uninterrupted access to a power supply and at first sight, may not require battery saving related optimizations. However, most of the battery-expensive work is related to the central processing unit’s (CPU) usage and network connectivity, which are the same factors that impact performance. This means that even though FireTVs do not have batteries and have permanent access to a power supply, implementing the necessary optimizations will considerably help with performance and will help avoid any lags in the user interface (UI) rendering.
Another out of the box advantage that comes with FireTV devices, unlike mobile phones, is the reliable, fast, relatively inexpensive and large bandwidth network connection that gives developers a bit more freedom in architecting the app. Depending on the case, engineers can reduce caching size and can rely more often on data updates from the network. They will not need to worry about network costs, bandwidth or reliability. However, consider making non-urgent network updates while the app is closed with Android’s WorkManager, this will help refresh, process and prepare the data before the user opens the app, and will avoid additional resource allocation when the user re-opens the app.
Overall App Architecture
FireTV applications have similarities and differences relative to “traditional” mobile application architectures. Networking and caching layer architectures can be lifted and shifted. These components can be used as is and do not require any adjustments or modifications. The major adjustments and differences revolve around the user experience (UX) and user interface (UI). FireTV does not have touch screen functionality and works exclusively with the remote. This fact requires engineers to follow guidelines for the cursor movement and UI for the selected states. The fastest way to include the UI elements into the app is by using the Leanback library, which has built-in navigation, however, it may be a bit limited in terms of customizations.
FireTVs have a so-called “10-foot” user interface because the screen is roughly 10-feet from the user’s eyes, versus the 2-foot distance of a computer screen. This means some additional considerations must be taken into account in order to accommodate the distance and provide the right user experience. Developers should consider using appropriate (i.e.: larger) sizes for UI elements and fonts so they can easily be seen from a relatively longer distance. Also, make sure that every remote input can easily be reflected on the screen and is visible from a 10-foot distance. However, do not use larger assets than what is needed as this may negatively impact the performance and slow down UI rendering.
Designing and developing great app architectures for Android-powered devices usually requires taking into account multiple factors and resources provided by the platform. However, with FireTVs, engineers need to pay great attention to detail in choosing the right approach. Delivering a great user experience overall, and as a result, a successful FireTV app, involves well-thought-out optimizations that work together as a whole.
Dumitru is Senior Agile Software Engineer at TribalScale, a certified Google Cloud Architect, and has an extensive background in Android development. In his previous roles, he has led multiple mobile and OTT projects for top airline, banking, media, and video-on-demand clients, and has helped build and deliver digital products to millions of users.
TribalScale is a global innovation firm that helps enterprises adapt and thrive in the digital era. We transform teams and processes, build best-in-class digital products, and create disruptive startups. Learn more about us on our website. Connect with us on Twitter, LinkedIn & Facebook!