Every platform aims to create a great user experience for all its different form factors. A great app designed for smartphones doesn’t always give a great experience on other types of device. Each of the major Smart TV platform attempts to offer a unique user experience, and here I will outline the features you should be interested in.
Smart TV platforms tend to change quickly among the big TV brands. By 2019, more than 50% of TV households in Japan, the US, the UK, France and Germany will have Smart TVs, according to IHS Markit.
When distributors and TV industries combine their efforts to improve the viewer experience, it deserves to be looked at closer. Let’s have a look at the most interesting features of Amazon Fire TV, Apple TV and Android TV that will help you to build smart TV app.
Discovery and Launch (DIAL)
Dial (Discovery and Launch) is an open protocol that enables Fire TV apps to be discovered and launched from a second screen device. Typically, the first screen is your Fire TV and the second screen can be a phone or a tablet for example. Both Fire TV and the second screen device must be on the same network.
Netflix, YouTube, Samsung, Sony have developed DIAL in order to compete with Apple’s AirPlay. Most of smart televisions and different game consoles like the PS4, the Xbox One, Roku support DIAL.
But keep in mind that every platform that uses DIAL can have their own version of DIAL, and they are not all compatible.
Using DIAL technology or Google Cast is not the same. Google Cast used the DIAL protocol in its first versions and then decided to use its own protocol called mDNS (multicast Domain Name System).
With this functionality, a user can start watching a video on your app on a smartphone and then watch the rest of the video on the Amazon Fire TV.
There is no Java implementation involved for using DIAL on your app but we do need to modify the app’s manifest and resources to indicate support for DIAL and to accept launch intents.
You can decide to use as well Amazon Fling which is the equivalent of Google Cast. Amazon provide an SDK that allows videos, audios and images to be sent from a device to a Fire TV.
Fire TV Catalog integration process
The Fire TV catalog integration allows your content to be included in the results of a search performed from the Fire TV home screen.
First you will need to create a catalog file. A catalog file is an XML file that provide details about the content (films, series, etc..) that you have in your app. Catalog examples
After creating your catalog file you will have to upload it. The uploading process is independent from your app, it will be part of your backend. The validation of your catalog file is needed, for this you can use XML validation tools in order to avoid broken or missing tags. Then you have to setting up your AWS account with the help of Amazon. Amazon will configure the AWS S3 bucket that you will use for uploading your catalog file 1.
More on this: uploading process.
In addition to uploading your catalog you will have to modify your app to be used with Amazon Fire TV’s home screen launcher. You will have to create new Android Intents, which your app will need to broadcast and to modify your
Manifest. More on this: here.
Imagine you have a movie in your app that you would like to be discovered and launched from the Fire TV home screen. An example of a catalog file with one item could be:
<?xml version="1.0" encoding="utf-8" ?> <Catalog xmlns="http://www.amazon.com/FireTv/2016-09-19/ingestion" version="FireTv-v1.3" > <Partner>Everything Ever Made Filmworks</Partner> <Works> <Movie> <ID>MV-12345</ID> <Title locale="en-US">Your movie title</Title> <Offers> <SubscriptionOffer> <Regions> <Country>US</Country> </Regions> </SubscriptionOffer> </Offers> </Movie> </Works> </Catalog>
It’s recommended to provide as much details as possible about each item inside
<works> for improving the chance to retrieve successfully your content when a user performs a search.
More on this: Integrating your catalog with Amazon Fire TV.
The Top Shelf is in the Apple TV Home screen. As a user you can choose five TV apps that will appear in the top row of your home screen. When a user selects one of the five app icons in the top row, the top shelf area will then showcase content related to the chosen app.
As a developer you can decide how the showcase of your app will be visualized. It can be through a static or dynamic content. For a static content you will use a static image.
If you want to display your content in a more sophisticated way you can use Dynamic Content Layouts provided by the TVServices framework.
The Dynamic Content can be used for giving a preview of the series in your app.
Dynamic Content Layouts includes the Sectioned Content Row and Scrolling Inset Banner layout. The Section Content Row displays a list of section, each section has its own title and can have one or more child content items.
The Scrolling Inset Banner layout is a list of large picture displayed automatically by your apple TV:
It’s an interesting way, for enhancing your app’s content and let people know more about it, when your app is in focus.
TV Markup Language (TVML)
TVML is a language provided by Apple to develop Apple TV apps. TVML is a form of XML that describes how elements are displayed in an Apple TV app.
TVML provides an easier, faster way to build standard applications with common features/user interface. For example, you can easily embed videos directly into TVML elements or set videos to play immediately upon page presentation or when an element comes into focus.
TVML let you create interactive video overlays that contain focusable elements.
TVML is a good option for beginners, prototype applications or even basic applications, but native applications provide a lot more control over how the application looks, works and feels.
New features for tvOS 10 sdk
Just a reminder, tvOS is the operating system that run in Apple TV, it inherits of a lot of frameworks from iOS but not all.
Here is two key developer-related features added in tvOS 10 sdk that are already existing in iOS frameworks.
HTTP Live Streaming (HLS) is used to send live and on‐demand audio and video to devices like the iPad and iPhone to Apple TV. HLS is an HTTP-based media streaming communications protocol implemented by Apple, and is similar in functionality to the widely-supported MPEG-DASH protocol.
The ReplayKit framework provides the ability to record video and audio within an app.
Apps can create their own channels and specify data according to their TV channels live programs. This looks similar to what modern TVs (prior to SmartTVs) call guide. A list of channels is displayed and the user can have a look at what’s next, how long the current program lasts information regarding the program they are currently watching.
More info: Building TV Channels
Users have the ability to watch video playing on a pinned picture in the top corner of the screen, whilst freely navigating around their TV apps and menus.
Here is a Picture-in-picture video visible in a corner of the screen while the user browses content on the main screen:
This feature is only available in Android 7.0 Nougat and up.
More on this: Picture-in-Picture
Users are able to record live TV sessions.
Imagine the scenario that you want to watch your favorite show but it is always airing while you are at work. You can schedule a timer at when the show is aired and your Android app will wake up at that moment and record the show using the API linked.
You can view the recorded sessions within your app.
The recordings are stored into the device.
More info: TV Recording
Platforms like Amazon Fire TV, Apple TV and Android TV offer interesting features that help developers build amazing smart TV apps. In this blog post we have cited some of the key developer-related features available. You can find more, on each platform’s documentation.
Keep in mind that Smart TVs are in constant evolution. More features for Smart TV apps are expected to always improve user experience!
1: Note that Amazon expects your catalog to be uploaded at least once per week, regardless of whether the catalog has changed.