Best Practices for Building User-Friendly Connected TV Applications

So I started doing some research to compile what I could on making apps for the connected TV platform. I tried to find all the API guides and docs I could find as well as some basic tips on creating a good user experience for the platform. I figured some of you could really use a single location to get all of this information and now you’ve got it.

Some Universal Basic Tips for Connected TV Apps

As I did my research I found some universal basics that apply across all connected TV (smart TV) platforms:

Use 5-way navigation as most consumers will likely just have a remote (up, down, left, right, select) Make sure all elements can be easily accessed that way.

Make your user interface elements large enough to be seen from 10-12 feet away. Remember, this is a TV you will be using as the main display so the items need to be large enough to read from a distance.

Make it text light. Many people aren’t interested in reading large amounts of text on their TV screens. The less text the better usually.

If you must have user registration, make it as easy as possible.

Create a fast user experience. Users are going to be less patient on the TV and performance will be vital to maintaining their interest.

Make the video content as good as possible. Remember, many TVs are 40+ inches and have a resolution of 1080p. Use that to your advantage.

I also wanted to add in some second screen tips I’ve been collecting and pondering.

Focus on single screen and/or second screen experience. Some consumers will prefer a second screen to all the information being on the primary screen. Some won’t want any additional information on the secondary screen but will want synced information on the second. Cater to them all whenever possible.

If you do go with a synced second screen app, do not force loading of websites for things that are advertised on the TV screen. User hate that, always give them an option.

I thought that the second screen app movement was sort of a baby step on the way to fully integrated connected TV experiences. But the more I think about it, the more it might be here to stay. Those who recently purchased a new HDTV aren’t likely to buy, yet another one this year. So if they haven’t got a connected TV now, they might opt for a second screen. Additionally, many who already have a second screen may just like to utilize that. Finally, there will probably be some who want the second screen but don’t want all the added information on TV screen, so allow them to turn it off and get it on their second screen. I think that will allow everyone to reach the widest audience possible. At least until the connected TV install base is the majority of households. Currently, they say it’s about 30%, and the majority of them are game consoles. Good luck getting an app on those!

Specific Connected TV Platform Best Practices

There is a lot of information out there for each platform in the connected TV realm. I figure if you start with the basics above you should then be able to take your basic app and use it as a jumping off point for all of the particular platforms. Each will have its particular quirks and proprietary things so to save development time and reach a maximum audience it seems a logical way to proceed.

Google TV

Since Google TV is an Android environment, there is a good amount of information available for developers looking to make apps compatible with the platform. If you’ve got an Android app for tablets or smartphones, you’re already well on your way. Here’s the Google TV Developer’s Guide and specifically if you’re looking to adapt your mobile app to Google TV you will want the migration guide.

Yahoo! Connected TV

Yahoo! took a good approach and partnered up with major TV makers like Samsung, Vizio, Sony and Toshiba. It’s a widget-based system and they offer an app developer’s kit and other resources. All of the valuable information you will need is in the Yahoo! Connected TV Developer area. The YUI (Yahoo! user interface) is open source and Javascript and CSS-powered.

Samsung Smart TV

Samsung exploded their connected TV business this year and
brought a massive SDK and support community to bear on it as well. Their massive developer support is housed in the Applications Development Guide. They also offer in-app advertising now a well. The app engine is all HTML, CSS and Javascript but has Flash plug-ins, AIR support and DRM like WideVine and PlayReady.

LG Apps TV

LG is another company that has blown up in terms of connected TV and they have a Flash and AIR-based platform. Their TVs have a Linux system with an ARM (or MIPS from 2011) processor and 1GB of RAM (512MB in 2011). Features, video-on-demand, games-on-demand, Internet search, image sharing, video conference and an app store. The NetCast Platform uses LG Browser for the web browser engine, which is based on WebKit. Everything you could want to know about developing for LG is in the Developer Lounge.

Panasonic Viera Connected TV and Devices

Panasonic is the other major TV maker with its own platform for connected TV apps. They required a paid, yearly subscription for commercial development of apps. VIERA Connect is a platform based on JavaScript that provides Internet-connected Panasonic device applications to its users. Through VIERA Connect, application developers will be able to create high performance, graphically rich applications. You can learn all about it at the Viera Connect Developers site.

Roku

You know Roku, it’s the set-top box. Roku Channels are written in a Roku-specific language called BrightScript. BrightScript is a scripting language similar to VisualBasic. Communication with services and servers is done over HTTP using standard XML-based technologies like (M)RSS, RESTful APIs and JSON and supports the HTTP Live Streaming protocol (HLS). Here’s the Roku Developer site.

Boxee

It’s that other set-top box that used to be a PC app but then got discontinued as a PC app. Boxee allows you to create applications to extend its content and functionality. Its platform is based on Python, Javascript, XML, RSS and has a remote control interface API. Here’s the Boxee Applcation Developers Wiki.

That’s a Wrap?

Did I miss anyone? It’s certainly a fragmented and fractured industry at present. Attempting to develop a consistent and ergonomic user experience across multiple devices seems like way more work than it should be. Granted, many of the platforms utilize open source protocols like CSS, HTML and Javascript, but the implementation of each seems different based on the specifics of the platforms. However, I think that those basic tips at the top coupled with the fact many use HTML, etc means that it might not be as difficult as it sounds to get your content to those platforms. I didn’t include anyone that was included in my connected TV ad article. Yes, I know Rovi has more than just ads, but I couldn’t find a lot of developer info readily available.

On top of all of this, you’ve got a new Apple TV in the pipeline, which will most likely just be yet-another-yearly-refresh-of-the-last-Apple-TV-OTT-box and not an actual TV, an OTT box with a whole lot of iOS functionality most likely. Since TV is maxed out at 1080p, it means that your Retina Display optimized apps will probably not look as awesome, but will look decent. If you’re already an iOS developer you’re more then ready for whatever they bring next month, but it won’t be an actual TV. It just wouldn’t be a crisp enough display for them I think, at least, not until the UHDTV standard is fully established.

Have Something to Say? We're listening!

Want to chime in on this article? Share your thoughts with us on Facebook or Twitter.