1page.title=Pure Android
2page.image=images/cards/design-pure-android_2x.png
3@jd:body
4
5<p>Most developers want to distribute their apps on multiple platforms. As you plan your app for
6Android, keep in mind that different platforms play by different rules and conventions. Design
7decisions that make perfect sense on one platform will look and feel misplaced in the context of a
8different platform. While a "design once, ship anywhere" approach might save you time up-front, you
9run the very real risk of creating inconsistent apps that alienate users. Consider the following
10guidelines to avoid the most common traps and pitfalls.</p>
11
12<div class="vspace size-1">&nbsp;</div>
13
14<div class="cols">
15  <div class="col-5">
16
17<h4>Don't mimic UI elements from other platforms</h4>
18<p>Platforms typically provide a carefully designed set of UI elements that are themed in a very
19distinctive fashion. For example, some platforms advocate rounded corners for their buttons, others
20use gradients in their title bars. In some cases, elements may have the same purpose, but are
21designed to work a bit differently.</p>
22<p>As you build your app for Android, don't carry over themed UI elements from other platforms and
23don't mimic their specific behaviors. Review the
24<a href="{@docRoot}design/building-blocks/index.html">Building Blocks</a>
25section in this styleguide to learn about Android's most important UI elements
26and the way they look in the system default themes. Also examine Android's platform apps to get a
27sense of how elements are applied in the context of an app. If you want to customize the theme of UI
28elements, customize carefully according to your specific branding - and not according to the
29conventions of a different platform.</p>
30
31  </div>
32  <div class="col-8">
33
34    <img src="{@docRoot}design/media/migrating_ui_elements.png">
35    <div class="figure-caption">
36      Sampling of UI elements from Android, iOS, and Windows Phone.
37    </div>
38
39  </div>
40</div>
41
42<div class="vspace size-2">&nbsp;</div>
43
44<div class="cols">
45  <div class="col-5">
46
47<h4>Don't carry over platform-specific icons</h4>
48<p>Platforms typically provide sets of icons for common functionality, such as sharing, creating a new
49document or deleting.</p>
50<p>As you are migrating your app to Android, please swap out platform-specific icons with their Android
51counterparts.</p>
52<p>You can find a wide variety of icons for use in your app on the
53<a href="{@docRoot}design/downloads/index.html">Downloads</a> page.</p>
54
55  </div>
56  <div class="col-8">
57
58    <img src="{@docRoot}design/media/migrating_icons.png">
59    <div class="figure-caption">
60      Sampling of icons from Android, iOS, and Windows Phone.
61    </div>
62
63  </div>
64</div>
65
66<div class="vspace size-2">&nbsp;</div>
67
68
69<div class="cols">
70  <div class="col-5">
71
72<h4>Don't hardcode links to other apps</h4>
73<p>In some cases you might want your app to take advantage of another app's feature set. For
74example, you may want to share the content that your app created via a social network or messaging
75app, or view the content of a weblink in a browser. Don't use hard-coded, explicit links to
76particular apps to achieve this. Instead, use Android's intent API to launch an activity chooser
77which lists all applications that are set up to handle the particular request. This lets the user
78complete the task with their preferred app. For sharing in particular, consider using the <em>Share
79Action Provider</em> in your action bar to provide faster access to the user's most recently used
80sharing target.</p>
81
82  </div>
83  <div class="col-8">
84
85    <img src="{@docRoot}design/media/migrating_intents.png">
86    <div class="figure-caption">
87      Link to other apps with the activity chooser or use the <em>Share Action Provider</em> in the
88      action bar.
89    </div>
90
91  </div>
92</div>
93
94<div class="vspace size-2">&nbsp;</div>
95
96<div class="cols">
97  <div class="col-5">
98
99<h4>Don't use labeled back buttons on action bars</h4>
100<p>Other platforms use an explicit back button with label to allow the user to navigate up the
101application's hierarchy. Instead, Android uses the main action bar's app icon for hierarchical
102navigation and the navigation bar's back button for temporal navigation. For more information,
103please review the <a href="{@docRoot}design/patterns/navigation.html">Navigation</a> pattern.</p>
104<p>Follow this guideline to provide a consistent navigation experience across the platform.</p>
105
106  </div>
107  <div class="col-8">
108
109    <img src="{@docRoot}design/media/migrating_ios_galleries.png">
110    <div class="figure-caption">
111      Android action bar with up caret vs. iOS labeled "Back" button.
112    </div>
113
114  </div>
115</div>
116
117<div class="cols">
118  <div class="col-5">
119
120<h4>Don't use right-pointing carets on line items</h4>
121<p>A common pattern on other platforms is the display of right-pointing carets on line items that allow
122the user to drill deeper into additional content.</p>
123<p>Android does not use such indicators on drill-down line items. Avoid them to stay consistent with
124the platform and in order to not have the user guess as to what the meaning of those carets may be.</p>
125
126  </div>
127  <div class="col-8">
128
129    <img src="{@docRoot}design/media/migrating_ios_settings.png">
130    <div class="figure-caption">
131      Android settings without right-pointing carets in line items vs. iOS settings.
132    </div>
133
134  </div>
135</div>
136
137<h2 id="device-independence">Device Independence</h2>
138
139<p>Remember that your app will run on a wide variety of different screen sizes. Create visual assets
140for different screen sizes and densities and make use of concepts such as multi-pane layouts to
141appropriately scale your UI on different device form factors.</p>
142<p>For more information, read <a href="{@docRoot}design/style/devices-displays.html">Devices and Displays</a> as
143well as <a href="{@docRoot}design/patterns/multi-pane-layouts.html">Multi-pane Layouts</a> in this design guide.</p>
144