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="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="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</ol>
141
142
143<h2 id="discovery">Search and Content Discovery</h2>
144
145<p>These checklist items apply to <strong>Games</strong> and <strong>Apps</strong>.</p>
146
147<ol>
148
149<li>
150  Provide search results from your app in the Android TV global search box.
151  <p>See <a href="{@docRoot}training/tv/discovery/searchable.html#provide">Provide Data</a>.</p>
152</li>
153
154<li>
155  Provide TV-specific data fields for search.
156  <p>See <a href="{@docRoot}training/tv/discovery/searchable.html#columns">Identify Columns</a>.</p>
157</li>
158
159<li>
160  Make sure your app presents discovered content in a details screen that lets the user start watching
161  the content immediately.
162  <p>See <a href="{@docRoot}training/tv/discovery/searchable.html#details">Display Your App in the
163    Details Screen</a>.</p>
164</li>
165
166<li>
167  Put relevant, actionable content and categories on the main screen, making it easy to discover content.
168  <p>See <a href="{@docRoot}training/tv/discovery/recommendations.html">Recommending TV Content</a>.</p>
169</li>
170
171</ol>
172
173
174<h2 id="games">Games</h2>
175
176<p>These checklist items apply to <strong>Games</strong>.</p>
177
178<ol>
179
180<li>
181  Show your game on the home screen with the {@code isGame} flag in the manifest.
182  <p>See <a href="{@docRoot}training/tv/games/index.html#Launcher">Show your game on the home screen</a>.</p>
183</li>
184
185<li>
186  Make sure game controller support does not depend upon the Start, Select, or Menu buttons (not all
187  controllers have these).
188  <p>See <a href="{@docRoot}training/tv/games/index.html#control">Input Devices</a>.</p>
189</li>
190
191<li>
192  Use a generic gamepad graphic (without specific controller branding) to show game button mappings.
193  <p>See <a href="{@docRoot}training/tv/games/index.html#ControllerHelp">Show controller instructions</a>.</p>
194</li>
195
196<li>
197  Check for both ethernet and WiFi connectivity.
198  <p>See <a href="{@docRoot}training/tv/games/index.html#networking">Networking</a>.</p>
199</li>
200
201<li>
202  Provide users with a clean exit.
203  <p>See <a href="{@docRoot}training/tv/games/index.html#exit">Exit</a>.</p>
204</li>
205
206
207</ol>
208