I am an Android developer and enthusiast with over 10 years of Java development experience. I'm big fan of good design an appreciate well though usability design in applications. Juhani is a DZone MVB and is not an employee of DZone and has posted 111 posts at DZone. You can read more from them at their website. View Full User Profile

Design Approach for Google TV

05.24.2012
| 4153 views |
  • submit to reddit
As mentioned in my previous post about Google TV not all Android apps should be ported to Google TV. In this post I want to talk about differences of smartphones and TVs that
I'll be talking about things to keep in mind when deciding whether or not to make your app available to Google TV and if you decide to do so what factors are important in the process.

For the technical side of things I recommend checking out Mark Allison's posts on his Styling Android blog. At the time of writing this he has already published two parts of his Google TV series and more is to follow:
Styling Android - Google TV - Part 1
Styling Android - Google TV - Part 2

There's also Google TV team provided handy documentation about implementing and designing apps for the Google TV. It is good read and worth checking out: https://developers.google.com/tv/android/docs/gtv_android_patterns

Topics include:

Another good Google provided read is the recently added Designing for TV training on the Android developer site.



But let's dive in to the domain of connected TV and factors that affect app design.

TV is shared

TVs are used by the whole family. If your app requires users to login it will probably be difficult to users. Whose account should be used? If the app has accounts make sure that your app supports multiple accounts and easy switching between them.


TV is for entertainment

People use TVs to relax and to be entertained. We need to keep this in mind when we build apps for TV. Google TV is not a living room PC. It is not a good device for surfing the web and reading emails. People have better devices for those tasks.

For entertainment a large display is great. Naturally, watching video is a perfect fit to a Google TV but also other visual content and games can greatly benefit from the large screen experience.



Do people want to interact with the TV?

Hands off approach to entertainment works better than hands on. Showing users something they can skip / change easily by default makes a lot of sense. Avoid screens that don't have any content. If it is possible to start your app directly playing a video, displaying a photo etc. it can make the app feel more at home on a TV.


TV remotes are difficult to use

TV remotes are very different in nature than any other controllers we are using to control computers, tablets or smartphones. A complex remote defeats the purpose of the TV. For me and probably many of  you a keyboard is an acceptable form of TV remote but for large masses it is not. A computer keyboard is not a remote control for an entertainment device. I wrote about TV remotes some time ago.
Once the device manufacturers get the remote controller right (the latest generation Vizio and Sony is already looking much better) it is going to put more limitations to the apps we build. Pointer navigation is going to remain awkward and people don't want to do it. What this means is that we should design our apps for the D-pad.
Any UI component should be accessible from any other focused UI component by navigating with D-pad either directly or with minimum steps. This means that the app structure and component positioning must be designed much more carefully than on touch screens

Simple, direct access, one-click-experience

Let me introduce you to the optimal TV user interface:

That is full screen media player. Media in this case can be a video, picture or a game. If your app starts from this screen your app is getting your user directly where they want to be.
This is, of course, not always possible but it is a good goal to keep in mind when thinking about Google TV app design. Your users want to use the big screen they have to see content that utilises the big screen optimally.

One app?

Andy Rubin's famous view of Android app ecosystem has been one app running everywhere. Users should not have to look for a tab specific app but instead just install the same app they have on their phones to their tabs and the app need to know how to utilise the larger screen size. His point of view also extends to TVs. While I fully agree with him about tabs and phones I'm not convinced the same app needs to extend to Google TV.

An app can adapt from a phone display to a tab display using the awesome tools provided by the SDK because the user goals and app's main function in basically unchanged between these two device categories. The same does not apply to TVs. Users have very different goals on TV and on portable device. Simply tweaking the app UI to utilise TV screen space and making controls work is not enough.

I'm in the opinion that most apps do not need to be on TV. Many apps could work together with TV though.


Second screen

Second screen apps is a very interesting concept. I personally believe that this is the area where most innovation can be done. The way TV apps work together with tablets and phones is going to be interesting. This is going to be one of the great strong points of Google TV as a platform. Getting Android apps to talk with each other is easy.

We already have few second screen apps. They are fairly primitive but are already showing the potential that is there. The most obvious one is of course a remote control app. Able remote control app already does many great things.

Can't wait to see what kind of second screen apps people come up with! Let's think beyond remote controls.


Summary, TD;DR

Even though Google TV runs Android it doesn't mean that every Android app should run on it. TV is a very different environment and most importantly user goals are very different when they watch TV or use a smartphone (watch is passive use is active). Optimal TV user experience is a hands-off one-click experience.
Published at DZone with permission of Juhani Lehtimaki, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Herry Johnson replied on Tue, 2012/06/12 - 12:59pm

I was actually going to ask this question today. Eclipse uses .ini files and I've seen people use properties, preferences and xml to store application settings.

The replies were helpful.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.