Simplifying Roku App Development with the Roku App Kit
Part 1 of our OTT series
By Mark Jefferson Arthur and Alex Gasiul
Roku is a TV streaming platform in the United States. They pioneered video streaming over the internet and have been at it since the beginning of the cord-cutting era. Even with competitors such as Amazon, Apple, and Google coming out with their own TV streaming devices, Roku continues to lead the US Over The Top (OTT) streaming services market with a 37% share. One reason for their popularity is because of their wide range of affordable devices.
However, this means many older, low-functionality devices are still in market. The older devices struggle to render graphics, they are also limited in memory, and as a result, aren’t able to process material as much as a new device. Supporting a rich user experience on a device that is low on hardware resources is a major challenge for designers and developers.
Below, we discuss some of the major challenges in designing and building for Roku. We also introduce you to, Roku App Kit an open source library built by the TribalScale team, that addresses some of the core concerns of building a Roku app. First, we start with design, then we go into development.
Roku App Kit is an open source library built by the TribalScale team that addresses some of the core concerns of building a Roku app.
Overview of Design on Roku
Design plays a vital role in a good app. Considering the limitations of Roku devices mentioned above, it is imperative to have a balance between amazing design and hardware constraints. Rendering circles and rounded corners, setting opacity to objects, and use of gradients are issues that come up with Roku as they are not uniformly supported across all devices. Some suggestions are to keep the design clean and nimble, compress images, and use a minimal set of design elements. Also, it’s best to always use the native UI components for carousels and grids.
‘Brightscript,’ is a proprietary language used for the development of a Roku app, and it has been another pain point. The language is not very popular among developers and community-contributed libraries don’t exist. With Roku App Kit, we have a core framework with several utilities that simplify Roku app development and we hope to create a community library for future development.
Does Roku App Kit aid with Agile development?
It does indeed. Building an innovative software product quickly and efficiently requires that a continuous integration and deployment (CI/CD) workflow/pipeline is set up. The Roku App Kit reuses the “make” files provided by Roku to archive and package the application on a shell. In the Roku App Kit framework, you can find configuration files and sample code to get the CI/CD system set up with a concourse CI instance. This can easily be extended and used in any other on-premise CI system.
With the launch of SceneGraph, the development of slick User Interface (UI) experiences on Roku has been easier, but concerns of rendering a rich experience on low-end devices still remain. With Roku App Kit, Model View Controller (MVC) architecture style can be followed for scalability and consistency. This provides a minimalistic life-cycle method to manage resources on one page. A built-in navigation history keeper also enables management of complicated navigation page flows with low memory usage.
Many utility components are always used with any streaming app. There are headaches and pitfalls encountered when using Brightscript to fetch data over a network, to store persistent data locally, and when inconsistent data types are returned by the language. To simplify and make code consistent with development in other languages, Roku App Kit includes several utility files to ease development. You can find them detailed within the Github page.
Try the Roku App Kit!
With a consistent app architecture that produces code readability, an arsenal of utility files, and with CI/CD pipelines set up, Roku App Kit will help developers and teams build Roku applications with a greater sense of enjoyment and comfort. We encourage you to use the Roku App Kit for developing your Roku app, and please provide your feedback on the App Kit framework! Also, your contributions toward the source code would be much appreciated.