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.
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
Samsung Smart TV
Samsung exploded their connected TV business this year and
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
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.
That's a Wrap?
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.