I don't own a Google TV device and I live in the UK (at the time of writing Google TV boxes are only available in the US) so why, you might wonder, would somebody in my position want to read a book about how to build apps for it? Thanks to the magic of web technologies it turns out that in the context of this book not owning a Google TV device doesn't matter all that much. In fact if you have a computer that runs Google Chrome then this book can still work very well as a primer on how to develop for the TV web and the issues involved. If you already have web development or design skills and want to start developing for TVs this book could be for you as it will tell you not just about the technology involved but also how to create an experience for the user that will work in the living room.
The book sets out three goals that it is trying to achieve, these are: familiarise the reader with Google TV, share knowledge on ways in which the reader can create applications for the device and share knowledge on the tools and techniques that will be needed. This might all sound very specific to the device, but in fact it is not in many places. As it is talking about webapps, the technology it is talking about is HTML5, CSS3 and Javascript, a combination that is becoming widely supported (e.g. on the Boxee Box) and Flash, so a lot of people will already have these skills. It explains a lot of the thinking around the concept of the ten foot user experience (the idea that a TV is typically ten feet away from a user whereas a laptop might only be two feet, this leads to a lot of design challenges) which will be useful even if you are working with a different Web TV platform.
Unlike most technical books that I have read before this book does not leap straight into creating code. Instead the first three chapters concentrate on building up the background knowledge that is required before attempting to build an application. The opening chapter describes the Google TV platform and also tries to convey the opportunity that this sort of technology represents. Interestingly it talks about the possibilities for monetising an app and also includes a slightly laboured comparison of Google TV to the early days of Android on mobiles. Maybe this is a bit of defensiveness on the part of the authors (all of whom are Google employees) of a platform that has not been commercially very successful yet. The inclusion of a picture of the truly frightening remote control that comes with the Sony Google TV devices is maybe a gentle reminder to the reader to keep in mind that the platform needs a bit more work.
The ten foot user experience is a complex idea in some ways. You have a high resolution screen, but the user is sat far way from it so you can't fit much on it. You have a new technology, but it connects to a technology that people have been using for fifty years so you have to take into account existing expectations of how your app should work. The book also poses another interesting question – will the audience for your TV app be the same as for your website? It tells the reader to always keep in mind that the app will be used in the living room – great advice, and worth repeating to yourself constantly if you ever work on such an app.
With these considerations in mind it was great to see that a lot of the book was dedicated to explaining what sorts of designs can work in this environment, with explanations of the reasoning behind these ideas, practical tips and plenty of examples given such as apps in Google TV's Spotlight Gallery, XBMC, Playstation 3, Boxee and Apple TV. There was a mention of other types of set top box but I would have liked to see a bit more discussion on the type of experience people have with devices such as satellite and cable TV boxes as this might influence their expectations. The book emphasises the need to think extensively about the design of the app before coding it. It even recommends creating three to six mock interfaces before you start on the app for real.
With the background theory explained the book goes on to show you how to write the code for such applications. It gives quite a good introduction into some of the effects and transitions that can be provided by CSS3 , along with code samples for you to try. Some of the information was Webkit (the rendering engine used in Chrome) specific, so if you want to use it with other types of set top box you would have to check what rendering engine that platform supports. It explains how create the grid like interfaces that are popular in web TV applications using HTML5 and Javascript and how to make these work with the remote control, the different paging options and also how to code alternative interfaces such as the “leanback” UI (the idea of an interface that allows the viewer to be a bit more passive by playing videos in a sequence rather than having to get them to make a selection each time). Quite a bit of information is given too on the subject of video codecs and what will work with the HTML5 video tag and also the Flash player on the device.
It was strange that there was no mention of the very useful Google TV Resources site, which is a great resource and has complete samples for web TV applications. It might have been nice too of the book had guided the reader through building an example application. The small code samples were good and very useful, but sometimes seeing the process end to end can give confidence. The final chapter of the book gives information on how to optimise your web app for Google search. The Google TV platform places the search box at the heart of the user experience, so getting this right is vital to enable people to discover the application. It also explains how to get video metadata indexed on their search engine too.
A statement that caught my eye in the preface of the book was that the reader now had the chance to “work on an emerging corner of the open web - the tv web". The use of the word “open” here is interesting as web TV platforms have had a tough time of it as far as openness is concerned. Some TV networks have blocked access from Google TV and other platforms to some of their websites (an utterly bizarre decision in my opinion). Boxee have an evolving relationship with the concept, and of course set top boxes and TVs until recently tended to be quite locked down, unmodifiable bits of technology. The book points out that there is "no approval process or new set of technologies that stand in your way of getting something valuable and compelling out into the open web", and this reflects a theme it presents as openness being an opportunity for content providers. The concept doesn't stop it from pointing out the rights management features of Flash, maybe in an effort to get across the idea that content providers don't have to be afraid of openness. I don't think this is a bad thing, it maybe just reflects the situation we are in today with this sort of technology and the attitudes towards it.
The book wasn't huge and it wasn't expensive and yet it still managed to get across a lot of useful information on how to build apps for the TV web. This is a great book for web designers and developers looking towards the TV web for opportunities and will give the reader plenty of transferable knowledge. I really liked the extensive discussion about the design, background and user expectations of these apps before going anywhere near coding. This is so important to get right, especially in an area that is new and thus constantly seeking audience acceptance. The book could have done more to acknowledge the work of other projects in this area, particularly as Google TV is a relative newcomer and maybe it should have mentioned some of the issues affecting the adoption of these devices. It might be worth keeping these issues in mind when reading the book, but generally I thought it was a very useful book and would recommend it.
- Add new comment
- 42135 views
In many ways these google tv guys are pioneers and kudos....
...to them for creating a w3c based web app framework for tv.
It's a precursor to many innovations to come in this space.
Who succeeds without failing.