Chapter 2. Getting Started

In the previous chapter, we introduced you to Google TV and we discussed the opportunity that this new platform presents for developers. We’re still in the early days of the platform, but even now it’s evident that Google TV has the potential to become a revolutionary platform that provides developers with another avenue to distribute content. The web and TV are a natural fit, and their integration via Google TV has opened up a new avenue for developers to build and deliver a compelling experience for users.

Before we dive into a technical discussion in the next chapter, we’d like to ensure that you have some context and background that will help you as you get started. This is an opportunity to pass on some wisdom that will make your life easier as you build an app for Google TV.

What Makes a Compelling App?

As we discussed in the previous chapter, we’re talking about a lot more than just thinking of a TV as a big monitor. Imagine how you, your family and friends, and billions of other people around the world interact daily with a TV. The possibilities are enormous and yet building a compelling app for TV, not just Google TV, may not be as easy as it sounds.

Let’s take a look at some key characteristics that we think contribute to the popularity and value of web apps for Google TV.

Compelling Content

The web is full of all kinds of content, and the amount of content being generated and added to the web is staggering. The number of web pages worldwide grew by 21.4 million in 2010 to reach 255 million web pages.[12] How much of this is valuable and compelling content? Obviously that is a subjective question, but the idea behind delivering compelling content on Google TV depends on three factors: audience, quality, and relevance. Your goal is to demand the user’s attention.

Identifying your audience is just as important as the actual content that you plan on delivering. Take some time to think about who will be consuming your content. Is it college students, baby boomers, children, professionals, techies, new moms, or all of the above? While this may seem straightforward, you’ll need to determine early on whether your content is universally compelling or whether it is compelling to a niche audience. There is no right answer or approach to this, but the key is to identify what your audience will want to access. Is it cute videos of kittens playing with yarn, how-to-cook videos, beautiful photographs of landscapes, news headlines, or a casual game?

If you have a popular website, say something like a blog, consider whether the audience for your blog will be the same one that accesses the web app you build for Google TV. Figure 2-1 shows a web app for CHOW, a culinary TV channel that offers users short-length tips and how-to videos for the kitchen.

CHOW offers a variety of useful content, including a set of videos that tell users what not to do in the kitchen
Figure 2-1. CHOW offers a variety of useful content, including a set of videos that tell users what not to do in the kitchen

Quality is a subjective factor, but ensuring that your content displays and works well on large screens is crucial. Remember, your target device is the best and largest screen in the house, so your content should meet user expectations. This logic applies to the content as well as to assets (graphics) and other elements that are used in your UI. You can have great video content for example, but your app will be a letdown if it has small buttons or pixelated images as part of the UI. Vimeo’s “couchmode” experience demonstrates a good combination of content and UI elements, and it launches high definition videos in full screen by default (Figure 2-2).

Vimeo’s 10-foot experience focuses on delivering high definition videos
Figure 2-2. Vimeo’s 10-foot experience focuses on delivering high definition videos

What about relevance? How can relevance be determined? It will become clear quickly if your content is not relevant to the audience you’ve identified or if the content is not relevant to TV in general. For example, you may have aggregated a lot of user-generated content (UGC) on a website about civil war history. Depending on the nature of the content, it may or may not be relevant to an audience. C-SPAN.org, a popular website with content focused on U.S. government and public affairs activity, has produced a web app for Google TV that features its most relevant content: its videos (Figure 2-3).

There is not doubt that C-SPAN.org’s web app is relevant for a niche audience interested in government and public affairs
Figure 2-3. There is not doubt that C-SPAN.org’s web app is relevant for a niche audience interested in government and public affairs

Say that you have a dedicated group of war history buffs that has a significant online presence. Great, that is a readily identifiable target demographic. But if most of your content is dense text and poorly drawn maps of battlefields, then the content is not relevant to the target device. Lots of text is not ideal for reading on TV and neither are graphics that don’t display well.

A Low Learning Curve

One of the commonalities that we’ve seen for web apps that get a good reception from users is the streamlining of features and functionality. It’s great if your app has lots of features and functionality, but these should not be exposed all at once. Giving users the ability to discover more complex features and functionality is a fundamental aspect of good UX design in the present day.

Remember that TV has traditionally been a passive device (until now) and users are accustomed to using a D-Pad to interact in simple ways with their TVs. Asking them to use keyboard shortcuts or including twenty menu items on the main UI makes the learning curve steeper. Your goal is to let users explore your app so that they can gradually access more advanced features.

Clear Visual Cues

The model for user behavior with a web app on a desktop or even mobile devices is mature. Users are accustomed to the functions associated with different elements and they understand input methods, such as click and right-click on desktops or swipe and pinch on touch-enabled mobile devices. Some of the same functions apply to UIs designed for Google TV, but the overall model is different.

As you’ll find in Chapter , D-Pad navigation should be the primary way that users interact with your web app. This approach means that you should constrain the UI to reflect changes in state, selection, or focus based on left, right, up, or down navigation. Your UX should rely on clear visual cues that are explicit in giving a user a sense of what’s selected or where a user has set the focus of the D-Pad. Your goal is to make it as easy and intuitive as possible for users to understand the context of their actions.

TV-friendly Navigation

Along with clear visual cues, a compelling app should enable users to easily navigate and select content. There are endless possibilities for setting up navigation flow around a site, so the idea is to eliminate the painful parts of navigation.

Providing users with access to content that is buried under six menu levels or forcing users to scroll through hundreds of entries may not be the best idea when a user is laying on his sofa and using the D-Pad to navigate around your content. Your goal is to get the user to the content they want as quickly as possible.

What You’ll Need

Fortunately, building web apps for Google TV does not require some new custom language or an obscure SDK with limited frameworks. We’re talking about the same tools that developers already use to build web apps for browsers on other devices. At your disposal are HTML, JavaScript, CSS, and Flash.

Of course, you’ll also need some way to serve the content, and if you plan on doing this dynamically, you’ll likely want to use a server-side language like Ruby, PHP, or Java, as well as some data store like MySQL or CouchDB. We won’t dive deep into any one of these languages (or even your web app’s server-side architecture), but we will provide some pointers in case you need to come up to speed.

Background Knowledge

You’ll need to have some knowledge beyond plain HTML, unless you plan on building a static web page that offers no interactivity. To build a good app, you’ll want to use advanced HTML, JavaScript, and CSS, or Flash (or a combination thereof). Ideally, you’ve developed web apps that are compatible with modern browsers, such as Google Chrome or Safari. Don’t worry if you don’t have this experience, as fortunately there is a lot of information out there on web development.

Tip

You may come across some reference documentation that discusses the need for “cross-browser compatibility.” If you’re developing generic websites that will be accessed on other devices, such as laptops, then you’ll want to pay attention to cross-browser compatibility. Otherwise, you can get away with browser-specific design for the Chrome browser only.

There are numerous resources out there to get you up to speed on developing web apps. First and foremost, you’ll want to familiarize yourself with the process of web development and the concept of a web app. Google’s http://code.google.com is a good place to familiarize yourself with some of the technologies that we’ll be using. If you’re just starting out, it’s worthwhile to check out a few websites before diving into books. Be sure to check out the following resources.

HMTL5

HTML5Rocks: http://HTML5Rocks.com

Dive into HTML5: http://DiveIntoHTML5.org

Apple’s HTML5 Demos: http://www.apple.com/html5/

Flash

Adobe’s Flash Developer Center: http://www.adobe.com/devnet/flash.html

Smashing Magazine: Flash Tutorials - Best Of: http://www.smashingmagazine.com/2008/01/17/adobe-flash-tutorials-best-of/

Flash Perfection (Flash tutorials): http://www.flashperfection.com/

Books

Once you’ve familiarized yourself with HTML5 and Flash, you’ll want to dive a bit deeper into specific topics. Here are some good reference books that we think will give you some good, practical knowledge:

Tip

Note that to develop web apps using Flash you’ll need to purchase and use a proprietary editor such as Adobe’s Flash CS5. This tip is not meant to dissuade you from using Flash, which itself is very powerful and versatile, but we want to make you aware of the requirement in case you opt to go the Flash route.

Tools

Writing Code

We’d like to ensure that as wide an audience can follow along with the code in this book, so we’ve used a simple text editor to write and edit code. You may or may not be familiar with integrated development environments (IDEs), but many developers rely on these desktop applications to streamline their code development.

Our assumption is that if you already use an IDE, then you are technically savvy enough to adapt your coding workflow as needed. If you do not use an IDE, then we suggest that you use a source code text editor or explore using an IDE. This article provides a good overview of text editors and the various operating systems that support them:

http://goo.gl/mB6Sz

Working with Images

As far as working with images, we’ll leave it up to you to use your preferred image editing software. Making an aesthetically pleasing UI is important and you’ll need image editing software to create “assets” such as icons, buttons, backgrounds, and other graphics. You’ll also likely need image editing software to optimize or scale content, such as photographs or diagrams.

Applications like Adobe Photoshop are great, but they are not free. One popular free alternative is GIMP (GNU Image Manipulation Program), an open source image editing application that runs in most of the popular operating systems.[13]

As with source code editors, the following Wikipedia article on graphic art software has references to various types of image editing software that you will likely find useful:

http://goo.gl/BteWZ

If you don’t have any image editing software currently installed, we suggest trying out one of the free open source apps to get started.

Tip

If graphic design isn’t your strength, you can use stock images available from various online vendors. Remember to only use images that you have the legal right to use and to evaluate the licensing terms attached to images available from online vendors.

Developing with Flash

If you plan on using Flash to develop a web app, you’ll need an authoring tool to create the SWF (small wave format) files used by Google Chrome to access and render Flash on Google TV. Although there are some third party IDEs, Adobe’s own Flash CS5 software is the most appropriate and relevant tool for you to build a Flash web app. Another alternative is to use image editing software, such as Adobe Photoshop or Adobe Fireworks, to export small animations to SWF format.

Note that Flash also can be used to stream video content. We’ll cover that in a bit more detail in Chapter 6.

Hosting Web Apps

If you’re just getting started, you’ll also want to set up a web server to host your app. There are a variety of ways to host a web app: you can set up a site on a shared server, use a dedicated server, or utilize cloud-based platforms that enable you to set up temporary or permanent virtualized servers.

The most popular and low-cost way to set up a server to host your web app is to use a shared server on one of the many hosting services out there. There are thousands (perhaps tens of thousands) of web hosting providers out there, but some of the more popular ones include Bluehost.com, Go Daddy, HostGator, Media Temple, and Rackspace.

Another option that we think is worth exploring is App Engine, Google’s cloud-based platform, which provides a tiered price model for hosting web apps built with Python and Java. The base tier is free, and even if you’re not a Python or Java developer, App Engine can be used to host static files, including HTML, JavaScript, and CSS. You can learn more at http://appengine.google.com.

The 10-Foot Experience

The last bit of wisdom we’d like to pass on before diving into a more technical discussion is some context for what is commonly referred to as the “lean-back” or 10-foot experience. Getting a grasp on this experience is not necessarily difficult, but it can be difficult to target your web apps for the 10-foot experience, especially if you’re accustomed to developing web apps for desktops and laptops.

One of the inherent challenges is that you’ll be developing your web app on a different device than Google TV. Yes, you can view and test your app on Google TV, but you’ll be writing code, modifying images, and troubleshooting on your computer, among other devices. This can pose a challenge, as your initial interaction with a web app will be in the “2-foot experience.” This is not a major issue, however, provided that you keep in mind the general context for the 10-foot experience.

Environment

We’ve already touched on the target environment a bit, but it’s worth reiterating that your web app will be used in a casual environment, more than likely the living room. While this little bit of knowledge may seem trivial, we often see this aspect overlooked in many of the web apps developers have put together for TV. It is key for you to remember that your app will be used in the living room or an equivalent environment.

Mind-set

What’s your attitude when you’re in front of your TV? Do you feel high-strung or relaxed? Ideally it’s the latter. Most people are in a relaxed mind-set when they’re in front of their TV. Even if you’re asking the user to interact with the TV or if your web app is more of a utility, it should still accommodate the mind-set that people have when they’re used to relaxing ten feet away from a big screen.

Interaction

How have you traditionally interacted with your TV? This question will help you pinpoint how you should lead your users in terms of features and functionality, both of which drive user interaction. There are existing models that a majority of users have become accustomed to when it comes to interacting with their TVs. Consider how you currently interact with your TV and transfer that knowledge to your app.



[12] Internet 2010 in Numbers. January 12, 2011. Royal Pingdom. http://goo.gl/8JXku

[13] You can learn more about GIMP and download it at http://www.gimp.org.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset