10 min read
Google wants to bring Android to everything from phones and watches, to cars and smart television sets. First off, in the interest of full disclosure, I have to say that I am somewhat biased when it comes to smart TV platforms, so let’s get that out of the way. I think most, if not all smart TV platforms on the market are downright terrible, but that’s just me. Google thinks it can do better and I am inclined to believe that it really can do better, or at least I hope it can, both as a consumer and a tech enthusiast.
So what is Android TV? Many people confuse it with Google TV, a defunct platform released in 2010. It was developed by Google, Sony, Intel and Logitech, but it never gained traction. It was officially replaced by Android TV in mid-2014, and this new platform is a lot more exciting for consumers and developers alike.
Unlike Google TV, Android TV is much closer to standard Android. It runs Android 5.0 (at least in the initial launch version) and can be used on new TVs, as well as on standalone devices. This is good news since Android TV will end up on inexpensive Android TV boxes and sticks, bringing the same user experience to millions of old TVs. In fact, the first device to feature Android TV is not a TV at all, it is Google’s Nexus Player. This also addresses one of the biggest complaints levied against various smart TV platforms in the past: lack of consistency. Android TV should bring a nearly identical user experience to all compatible devices.
The Revolution Will Not Be Televised, It Will Be Streamed
As far as new features go, Android TV also introduces support for Google Cast. You may be familiar with Google Cast from the Chromecast stick. The technology is already supported by hundreds of apps and services, with more on the way. Google Cast allows Android TV devices to receive streamed content from a range of devices. Implementation is straightforward using the Google Cast API, and you will find all the info you need on the Google Cast dev site.
Does this mean Google wants to turn cable companies into “dumb pipes” and simply use their bandwidth rather than content? Not really, but anything is possible, especially as smart TV platforms proliferate.
However, streaming is not Google’s only trump card.
Android TV also creates new opportunities for communication, gaming, home automation and much more. Android TV could become a hub for all sorts of connected devices, running Android or other platforms. You could use it to see who is at the door, adjust your air conditioning or connected thermostat, maybe even sync your RGB LED lightbulbs with your TV while watching some 80s action classics.
Granted, some of this stuff may sound gimmicky, but Android TV is not for gimmicks; it won’t be a niche platform like Android Wear or Android Auto. Not long ago, only enthusiasts bought smart TVs and smartphones, but feature phones and traditional TVs are all but gone at this point. Android TV will end up on TVs in millions of homes; there’s really no doubt about it.
This is good news for Android developers since the user base is sure to grow fast, thus mitigating the risk of tackling a new platform for Android TV app development.
Android TV – What’s Under The Bonnet?
As far as hardware goes, we will see Android standard FHD screens (1080p) and UHD (3840x2160). There is also a good chance some manufacturers will also bring Android TV to curved 21:9 units sometime in the future, but for the time being the focus will be on 16:9 panels. UI designers need to keep this in mind.
Since it’s based on Android 5.0 (API level 21) and uses ART, most Android TV hardware will feature 64-bit processors. The Nexus Player is based on an Intel Atom processor, a lot of upcoming Android TV’s will sport MediaTek’s MT5595 processor, while Nvidia’s Shield console, which I already covered in a previous post, uses the Tegra X1 processor. Intel’s and Nvidia’s System-on-Chip (SoC) offerings are based on 64-bit CPU cores, while MediaTek employs 32-bit Cortex-A17 and Cortex-A7 cores.
All Android TV hardware will have to support HEVC and VP9 decoding, and chances are most of these chips will be capable of handling several non-UHD streams at once. Delivering UHD content at 60 frames per second should not be a problem, either. Fast, dual-band wireless is on board as well, providing enough bandwidth for UHD streams.
Android TV hardware platforms will rely on a lot of middleware and will comply with multiple broadcasting standards to cover every region and market.
There is nothing exotic about the hardware and developers don’t have much to worry about. A lot of Android 5.0 DNA ensures a smooth transition on the software front, but are some things to keep in mind.
Android Goes Big Screen
What does all this mean for developers? Android TV development sounds straightforward, but a quick glance at the spec does not paint the full picture. While many developers and designers should feel right at home, they also need to make sure that users feel at home – after all, Android TV is designed for the living room.
Let’s start with the good news. Most Android TV devices will use 16:9 panels in just two resolutions, so a lot of stuff will be standardised. This will help improve consistency and should make testing somewhat easier.
- Working in one aspect ratio, 16:9 (although 21:9 devices may appear in the future).
- Designing for two resolutions, FHD and UHD, only the density varies depending on the screen size.
- Using a lot of standardised UI elements.
- No need to think about touch input.
- Not a lot of sensors to deal with.
- Power efficiency is not relevant.
However, Android TV app development also brings a number of new challenges to tackle. Since there is no touch input on the TV itself (although tablets and phones could be used for input), we will have to deal with other input methods such as remote controls, third-party airmouse units, keyboards, game controllers, and so on. There is also a lot of legacy Android stuff that needs to go (for example, there’s no portrait mode). Pixel density variations are much bigger, lack of touch input may be problematic for some developers, and so on.
Here are some of the challenges:
- Support for multiple controllers at once.
- Support for different types of controllers, i.e., standard remote and game controllers.
- Few sensors on board.
- Overscan may be an issue on some devices.
- Vastly different pixel density even in same resolution (TVs come in a lot more sizes than tablets and phones).
- Remove unnecessary elements.
Let’s take a closer look at some of these issues. Since Android TVs will be used as media hubs, chances are people will want to use more than one controller on them. Some may want a Bluetooth keyboard, while others might get two game controllers for some multiplayer action. The good news is that you probably won’t need custom code to implement support for additional controller inputs since standard Android game controller input can be used for the UI and apps such as games. However, you may need to address more than one input device, and in case you need to add support for more exotic controllers, some tweaking may be necessary.
Most Android TVs will ship with a limited sensor package. Why would you need GPS on a TV set? This is why it is necessary to disable support for hardware features unavailable on TV devices. There is a lot of detailed information on how to sort everything out; basically, just flag unsupported sensors as false and that’s it.
You also need to go through the Android app manifest and check whether or not it will exclude Android TV devices due to their lack of features.
For example, the standard
ACCESS_FINE_LOCATION permission uses the GPS. Since there is no GPS on board, your app manifest should include the following:
<uses-feature android:name="android.hardware.gps" android:required="false"/>
Therefore, you will need to change
ACCESS_COARSE_LOCATION. The same principle applies to other aspects of the platform and details are available on Google. Another resource you may want to check out is Nvidia’s Android TV Developer Guide.
In case you are thinking about reusing stuff from other Android projects, this is worth keeping in mind, otherwise you might end up with an app that tries to open a menu in portrait mode on a TV, which brings me to the next point:
Android TV 10 Foot UI
Although Android TV is basically Android 5.0, the user interface has little to do with stock Android as we know it. Smart TV platforms employ a “10-foot” approach, which basically means the user experience is optimised for 10 feet from the screen, roughly ten times more than on a smartphone or tablet.
The “10 foot” concept predates smart TV platforms. It was also used in on-screen-display (OSD) design, game console dashboard design, and was usually employed by mainstream 5.1 surround systems. So what does it mean for user experience and UI design?
Well, designers need to make sure everything looks OK on a range of different panels, from inexpensive 37-inch 1080p TVs to 65-inch or 75-inch monsters in UHD. The UI has to work well in FHD and UHD, regardless of screen size. While we are dealing with just a couple of different resolutions, pixel density (pixels per inch or ppi) varies greatly.
Here are a few examples:
- 42-inch UHD panel – 105ppi
- 42-inch FHD panel – 52ppi
- 50-inch UHD panel – 88ppi
- 50-inch FHD panel – 44ppi
- 55-inch UHD panel – 80ppi
- 65-inch UHD panel – 67ppi
- 32-inch FHD panel – 69ppi
It is unlikely we will see UHD panels on Android TVs with panel sizes in the 30-40 inch range, but we should see a lot of FHD devices working in this segment. Many consumers will simply go out and buy new Android TV boxes rather than replace existing 1080p TV sets. Although many TV makers will start using 4K panels on 40+ inch models, developers still need to think about legacy support.
This is also why we need to keep in mind that overscan can be an issue. A lot of TVs retrofitted with Android TV set top boxes will lose some screen real estate toward the bezel. Anyone familiar with video already knows a thing or two about safe frames (action safe and title safe); this is a throwback to the days of standard definition CRT television sets, but it is still a good idea to stay on the safe side and avoid placing any important UI elements near the edge. Try to keep at least 5 percent of the area free of any important content, and use an even safer margin for really important UI elements; 10 percent should do the trick, but if you want to be completely safe, you can go with even more.
Keep in mind that this particular issue does not exist on tablets or smartphones. Luckily, that doesn’t mean Google didn’t take it into consideration, so overscan support is built into Android TV (and indeed other versions of Android post 4.2.x). In case you are thinking of using OpenGL, you also need to address this issue.
Overscan is unlikely to be a problem on true Android TVs, but it could be a big issue on aftermarket Android TV solutions. Not everybody wants to upgrade their TV every few years, and a lot of people will get a $50 HDMI dongle with Android TV instead. This is why it is a good idea to include overscan configuration options in your Android TV app.
Another good idea is to check out Google’s best practices covering multiple screen support. It is straightforward but important; chances are you will need to include additional “compatible screens” in the app manifest.
Improving Android TV User Experience
User experience was always a problem for smart TV platforms. Android TV is Google TV done right, and it should improve UX, but not out-of-the-box; developers will need to do a lot of the heavy lifting.
The good news is that TVs don’t really require a lot of user input and engagement; any couch potato will attest to that! TV makers have already spent years polishing their smart TV interfaces and improving user experience with faster, sleeker UIs and new hardware, such as new sensor-packed remotes. Things were moving along nicely even without Android TV, but Google’s new platform opens up more opportunities.
I already said I am a bit of a smart TV sceptic, but even I have to admit a lot of progress was made over the past couple of years. However, Android TV is not just about improving the way people consume TV content, it’s more about changing the way they do it.
If you are the type of user who just likes to watch a lot of sports and politics in one binge (like my retired and bored dad), UX is an afterthought. The same goes for people like myself, who keep the TV on in the background, listening to news or music like they might have done with an ancient valve radio. However, the way many people consume video content has changed drastically over the past 10 to 15 years, first with digital video recorders, now with streaming. Today’s teens are growing up surrounded by connected devices and they expect even more from a TV than millennials.
The ultimate goal of any smart TV platform, which has proven elusive so far, is to create a new user experience, combining traditional TV with on-demand video, and other types of content, as seamlessly as possible. Personally, I don’t think anyone has done it right so far. Google could, but it remains to be seen. A lot will depend on third-party developers. They will have to follow a number of guidelines to offer good UX on all types of Android TV hardware, from $50 HDMI dongles to high-end $5,000 TV sets.
Since I am not a fan of current smart TV platforms, listing what needs to be done to create a perfect user experience might be presumptuous, to say the least. Still, UI and UX experts tend to agree on some points:
- Smart TVs are still just TVs – they are primarily used to consume video content, not to do a million different things we already do on our mobiles and tablets.
- Input methods must improve – remotes have evolved, but they are still not good enough for a complex UI. Using smartphones and tablets as alternative input methods is still considered geeky and needs to be more straightforward.
- Gesture control – it could be implemented in some situations, but since we are dealing with a passive user experience, it won’t change much.
- Multiple users – TVs aren’t personal devices in most households, so forget about logging in, it will just annoy users.
- If it ain’t broke, don’t fix it – traditional radio and TV still provide a very enjoyable user experience due to their simplicity and convenience, so there is no need to reinvent the wheel.
- Keep everything simple – try to keep user interaction to an absolute minimum, with as few clicks as possible.
- Go for a clean, minimal UI – just because you have a lot of real estate to play around with, you don’t have to use all of it.
Ultimately, Android TV developers can only do so much; it remains for Google and Android TV partners to create an excellent user experience. Third-party developers will simply build on it, expand functionality while ensuring a consistent experience across multiple devices. If the underlying platform suffers from teething problems or inconsistencies, developers must do their magic with their hands tied behind their backs.