page.title=Help
page.tags=settings,preferences
@jd:body

<p>We wish we could guarantee that if you follow every piece of advice on this website, everyone will be able to learn and use your app without a hitch. Sadly, that's not the case.</p>

<p>Some of your users will run into questions or problems along the way. They'll be looking for answers <strong>within your app</strong>, and if they don't find them quickly, they may leave and never come back.</p>

<p>This page covers design patterns for making help accessible in your app and tips for creating help content for users who are eager for assistance.</p>

<h2 id="your-app">Designing Help into Your App</h2>

<h3>Don't show unsolicited help, except in very limited cases</h3>
<p>Naturally, you want everyone to quickly learn the ropes, discover the cool features, and get the most out of your app. So you might be tempted to present a one-time introductory slideshow, video, or splash screen to all new users when they first open the app. Or you might be drawn to the idea of displaying helpful text bubbles or dialogs when users interact with certain features for the first time.</p>
<p>In almost all cases, we advise <strong>against</strong> approaches like these because:</p>
<ul>
  <li><strong>They're interruptions.</strong> People will be eager to start using your app, and anything you put in front of them will feel like an obstacle or possibly an annoyance, despite your good intentions. And because they didn't ask for it, they probably won't pay close attention to it.</li>
  <li><strong>They're usually not necessary.</strong> If you have usability concerns about an aspect of your app, don't just throw help at the problem. Try to solve it in the UI. Apply Android design patterns, styles, and building blocks, and you'll go a long way in reducing the need to educate your users.</li>
</ul>
<p>The only reason for showing pure help content to new users unsolicited is:<br>
<em>To teach high value functionality that's only available through a gesture.</em></p>

<p>For example, we use help content to teach users how to place apps on their Home screen. This functionality is:</p>
<div class="layout-content-row">
  <div class="layout-content-col span-8">
    <ul>
      <li><strong>High value</strong>
      <p style="margin-top:0;">Without it, users wouldn't be able to customize the most frequently visited Android screen to meet their needs.</p></li>
      <li><strong>Available only through a gesture</strong>
      <p style="margin-top:0;">Because there's no button or menu for it, users might not ever discover it on their own.</p></li>
    </ul>
    <p>However, not all high value gesture-only functionality needs a tutorial. For example, don't teach users how to scroll content. They already know how because it's a fundamental, system-wide interaction.</p>
  </div>
  <div class="layout-content-col span-5">
    <img src="{@docRoot}design/media/help_cling.png">
    <div class="figure-caption">
      The first time each user visits the All Apps screen, a semi-transparent overlay appears to teach an important gesture.
    </div>
  </div>
  <p class="clearfix">Bottom line: when it comes to offering help in your app, it's much better to <strong>let users come to you</strong> when they need it.</p>
</div>

<h3 id="standard-design">Follow the standard design for navigating to help</h3>

<p>On every screen in your app, offer help in the <a href="{@docRoot}design/patterns/actionbar.html">action overflow</a>. Always make it the very last item in the menu and label it "Help".</p>

<div class="layout-content-row">
  <div class="layout-content-col span-7">
    <img src="{@docRoot}design/media/help_overflow.png">
  </div>
  <div class="layout-content-col span-6">
    <img src="{@docRoot}design/media/help_solo_overflow.png">
    <div class="figure-caption">
      Even if your screen has no other action overflow items, "Help" should appear there and not be promoted to the action bar.
    </div>
  </div>
  <p>We've established this standard design so that when users are desperate for help, they won't have to hunt to find it (see design principle: <a href="{@docRoot}design/get-started/principles.html#give-me-tricks">Give me tricks that work everywhere</a>).</p>
</div>

<h3 id="help-urgent">Assume that every call for help is urgent</h3>

<p>In addition to help, you might want to expose other information, such as copyright info, credits, terms of service, and privacy policy.</p>

<p>Let users access this information through the Help menu item, but optimize the flow for people with urgent questions about how to do something or why something is happening in your app. The smaller subset of users who are looking for legal fine print or the names of the people who created the app won't be as burdened by taking a few extra steps.</p>

<p>The same is true for any communication options you might want to provide, such as contacting customer support or submitting feedback. Offer these options in a way that doesn't add an extra step before users see help. When you put the help content forward, you increase the likelihood that users will find the answers on their own, which in turn reduces your support costs.</p>

<p>When someone chooses "Help":</p>

<div class="layout-content-row">
  <div class="layout-content-col span-4">
    <img src="{@docRoot}design/media/help_dont.png">
  </div>
  <div class="layout-content-col span-4">
    <img src="{@docRoot}design/media/help_better.png">
  </div>
  <div class="layout-content-col span-5">
    <img src="{@docRoot}design/media/help_evenbetter.png">
  </div>  
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-4">
    <h4 class="do-dont-label bad">Don't</h4>
    <p>Present a dialog asking them to choose between help and other options.</p>
  </div>
  <div class="layout-content-col span-4">
    <h4 class="do-dont-label good">Better</h4>
    <p>Immediately launch a web browser with help content. Place other options in a footer.</p>
  </div>
  <div class="layout-content-col span-5">
    <h4 class="do-dont-label good">Even Better</h4>
    <p>Build a help screen in your app and offer other options in the action bar. For example, you could let users contact you with questions or feedback through an action button. The action overflow is the ideal place for non-help information that users rarely need.</p>
    <p>This requires more development work than launching a web browser, but it's a nicer experience for users because they don't leave your app to get the help they need and doesn't require a network connection.</p>
  </div>
</div>

<h2>Principles for Writing On-Screen Help Content</h2>

<h4>Help is part of the UI</h4>
<p>On-screen help is an extension of your app's UI, not a description of it. All words on the screen from the core app to the help should follow our <a href="{@docRoot}design/style/writing.html">Writing Style</a> principles so that the end-to-end experience feels seamless and cohesive.</p>

<h4>Make every pixel count</h4>
<p>It's not necessary to document every single detail about your app, especially things that are extremely apparent just by looking at the UI, or behaviors that are standard for the platform. Surface just the key additional information that the on-screen text doesn't have room to describe, in a way that makes it easy to map to the screen.</p>

<h4>Pictures are faster than words</h4>
<p>In describing key UI elements and providing step-by-step instructions, consider combining text with icons, partial screenshots with callouts, and other imagery. You'll need fewer words to explain things, and users will absorb the information more quickly.</p>

<h4>Help me scan, not read</h4>
<p>People don't read help from start to finish. They scan around, looking for a piece of information containing the answer they need. Make it less burdensome with friendly formatting and layout choices like bold headings, bulleted and numbered lists, tables, and white space between paragraphs. And if you have a large amount of content, divide it into multiple screens to cut down on scrolling.</p>

<h4>Take me straight to the answer</h4>
<p>What's better than a screen that's easy to scan? A screen that requires no scanning at all because the answer's right there. Consider having each screen in your app navigate to help that's relevant just to that screen. We call this <em>contextual help</em>, and it's the holy grail of user assistance. If you take this approach, be sure to also provide a way to get to the rest of the help content.</p>
