1page.title=TV Apps Checklist
2page.tags="tv", "checklist"
3page.article=true
4
5@jd:body
6
7<div id="tb-wrapper">
8<div id="tb">
9  <h2>Checklist sections</h2>
10  <ul>
11    <li><a href="#leanback">TV Form Factor Support</a></li>
12    <li><a href="#design">User Interface Design</a></li>
13    <li><a href="#discovery">Search and Content Discovery</a></li>
14    <li><a href="#games">Games</a></li>
15  </ul>
16  <h2>You should also read</h2>
17  <ul>
18    <li><a href="{@docRoot}distribute/essentials/quality/tv.html">TV App Quality</a></li>
19    <li><a href="http://android-developers.blogspot.com/2014/10/material-design-on-android-checklist.html">
20      Material Design on Android Checklist</a></li>
21    <li><a href="{@docRoot}distribute/tools/launch-checklist.html">
22      Launch Checklist</a></li>
23  </ul>
24</div>
25</div>
26
27<p>
28  Users enjoy the TV app experience when it is consistent, logical, and predictable.
29  They should be able to navigate within your app and throughout Android TV without getting lost or
30  having to "reset" the UI and start over. Users appreciate clear, colorful, and functional interfaces
31  that make the experience magical. With these ideas in mind, you can create an app that fits nicely
32  in Android TV and performs as users expect.
33</p>
34
35<p>
36  This checklist covers the main aspects of development for both apps and games and provides
37  guidelines to ensure that your app provides the best possible experience. Additional considerations
38  for games only are covered in the <em>Games</em> section.
39</p>
40
41<p>
42  For criteria that qualify an Android TV app on Google Play, see
43  <a href="{@docRoot}distribute/essentials/quality/tv.html">TV App Quality</a>.
44</p>
45
46<h2 id="leanback">TV Form Factor Support</h2>
47
48<p>These checklist items apply to <strong>Games</strong> and <strong>Apps</strong>.</p>
49
50<ol>
51
52<li>
53  Identify the main TV activity with the {@link android.content.Intent#CATEGORY_LEANBACK_LAUNCHER}
54  filter in the manifest.
55  <p>See <a href="{@docRoot}training/tv/start/start.html#tv-activity">Declare a TV Activity</a>.</p>
56</li>
57
58<li>
59  Provide a home screen banner for each language supported by your app
60  <ul>
61    <li>Launcher app banner measures 320x180 px</li>
62    <li>Banner resource is located in the {@code drawables/xhdpi} directory</li>
63    <li>Banner image includes localized text to identify the app.</li>
64  </ul>
65  <p>See <a href="{@docRoot}training/tv/start/start.html#banner">Provide a home screen banner</a>.</p>
66</li>
67
68<li>
69  Eliminate requirements for unsupported hardware in your app.
70  <p>See <a href="{@docRoot}training/tv/start/hardware.html#declare-hardware-requirements">Declaring hardware requirements for TV</a>.</p>
71</li>
72
73<li>
74  Ensure permissions do not imply hardware requirements
75  <p>See <a href="{@docRoot}training/tv/start/hardware.html#hardware-permissions">Declaring permissions that imply hardware features</a>.</p>
76</li>
77
78</ol>
79
80
81<h2 id="design">User Interface Design</h2>
82
83<p>These checklist items apply to <strong>Games</strong> and <strong>Apps</strong>.</p>
84
85<ol>
86
87<li>
88  Provide appropriate layout resources for landscape mode.
89  <p>See <a href="{@docRoot}training/tv/start/layouts.html#structure">Build Basic TV Layouts</a>.</p>
90</li>
91
92<li>
93  Ensure that text and controls are large enough to be visible from a distance.
94  <p>See <a href="{@docRoot}training/tv/start/layouts.html#visibility">Build Useable Text and Controls</a>.</p>
95</li>
96
97<li>
98  Provide high-resolution bitmaps and icons for HDTV screens.
99  <p>See <a href="{@docRoot}training/tv/start/layouts.html#density-resources">Manage Layout Resources for TV</a>.</p>
100</li>
101
102<li>
103  Make sure your icons and logo conform to Android TV specifications.
104  <p>See <a href="{@docRoot}design/tv/patterns.html#icons">Manage Layout Resources for TV</a>.</p>
105</li>
106
107<li>
108  Allow for overscan in your layout.
109  <p>See <a href="{@docRoot}training/tv/start/layouts.html#overscan">Overscan</a>.</p>
110</li>
111
112<li>
113  Make every UI element work with both D-pad and game controllers.
114  <p>See <a href="{@docRoot}training/tv/start/navigation.html">Creating Navigation</a>
115    and <a href="{@docRoot}training/tv/start/hardware.html#controllers">Handling Controllers</a>.</p>
116</li>
117
118<li>
119  Change the background image as users browse through content.
120  <p>See <a href="{@docRoot}training/tv/playback/browse.html#background">Update the Background</a>.</p>
121</li>
122
123<li>
124  Customize the background color to match your branding in Leanback fragments.
125  <p>See <a href="{@docRoot}training/tv/playback/card.html#background">Customize the Card View</a>.</p>
126</li>
127
128<li>
129  Ensure that your UI does not require a touch screen.
130  <p>See <a href="{@docRoot}training/tv/start/hardware.html#no-touchscreen">Touch screen</a> and
131    <a href="{@docRoot}training/tv/start/start.html#no-touchscreen">Declare touch screen not
132    required</a>.</p>
133</li>
134
135<li>
136  Follow guidelines for effective advertising.
137  <p>See <a href="{@docRoot}training/tv/start/layouts.html#advertising">Provide Effective Advertising</a>.</p>
138</li>
139
140<li>
141  Use the Leanback library for guiding the user through a series of decisions.
142  <p>See <a href="{@docRoot}training/tv/playback/guided-step.html">Adding a Guided Step</a>.</p>
143</li>
144
145</ol>
146
147
148<h2 id="discovery">Search and Content Discovery</h2>
149
150<p>These checklist items apply to <strong>Games</strong> and <strong>Apps</strong>.</p>
151
152<ol>
153
154<li>
155  Provide search results from your app in the Android TV global search box.
156  <p>See <a href="{@docRoot}training/tv/discovery/searchable.html#provide">Provide Data</a>.</p>
157</li>
158
159<li>
160  Provide TV-specific data fields for search.
161  <p>See <a href="{@docRoot}training/tv/discovery/searchable.html#columns">Identify Columns</a>.</p>
162</li>
163
164<li>
165  Make sure your app presents discovered content in a details screen that lets the user start watching
166  the content immediately.
167  <p>See <a href="{@docRoot}training/tv/discovery/searchable.html#details">Display Your App in the
168    Details Screen</a>.</p>
169</li>
170
171<li>
172  Put relevant, actionable content and categories on the main screen, making it easy to discover content.
173  <p>See <a href="{@docRoot}training/tv/discovery/recommendations.html">Recommending TV Content</a>.</p>
174</li>
175
176</ol>
177
178
179<h2 id="games">Games</h2>
180
181<p>These checklist items apply to <strong>Games</strong>.</p>
182
183<ol>
184
185<li>
186  Show your game on the home screen with the {@code isGame} flag in the manifest.
187  <p>See <a href="{@docRoot}training/tv/games/index.html#Launcher">Show your game on the home screen</a>.</p>
188</li>
189
190<li>
191  Make sure game controller support does not depend upon the Start, Select, or Menu buttons (not all
192  controllers have these).
193  <p>See <a href="{@docRoot}training/tv/games/index.html#control">Input Devices</a>.</p>
194</li>
195
196<li>
197  Use a generic gamepad graphic (without specific controller branding) to show game button mappings.
198  <p>See <a href="{@docRoot}training/tv/games/index.html#ControllerHelp">Show controller instructions</a>.</p>
199</li>
200
201<li>
202  Check for both ethernet and WiFi connectivity.
203  <p>See <a href="{@docRoot}training/tv/games/index.html#networking">Networking</a>.</p>
204</li>
205
206<li>
207  Provide users with a clean exit.
208  <p>See <a href="{@docRoot}training/tv/games/index.html#exit">Exit</a>.</p>
209</li>
210
211
212</ol>
213