<!DOCTYPE html>
<html lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>

Android Design - Writing Style
    </title>
    <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic">
    <link rel="stylesheet" href="../static/yui-3.3.0-reset-min.css">
    <link rel="stylesheet" href="../static/default.css">

<style>

/* UI tables */

.ui_table {
  width: 100%;
  background: #282828;
  color: #fff;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.25);
  border-collapse: separate;
}

.ui_table th,
.ui_table td {
  padding: 5px 10px;
}

.ui_table thead th {
  font-weight: 600;
}

.ui_table tfoot td {
  border-top: 1px solid #494949;
  border-right: 1px solid #494949;
  text-align: center;
}

.ui_table tfoot td:last-child {
  border-right: 0;
}

.list_item_margins {
  margin-left: 30px !important;
}

.example_label {
  margin-bottom: 10px;
  padding-left: 20px;
  background: transparent none no-repeat scroll 0px 3px;
}

.example_label.bad {
  background-image: url(../static/ico_wrong.png);
}

.example_label.good {
  background-image: url(../static/ico_good.png);
}

</style>

  </head>
  <body>

    <div id="page-container">

      <div id="page-header"><a href="../index.html">Android Design</a></div>

      <div id="main-row">

        <ul id="nav">

          <li class="nav-section">
            <div class="nav-section-header"><a href="../index.html">Get Started</a></div>
            <ul>
              <li><a href="../get-started/creative-vision.html">Creative Vision</a></li>
              <li><a href="../get-started/principles.html">Design Principles</a></li>
              <li><a href="../get-started/ui-overview.html">UI Overview</a></li>
            </ul>
          </li>

          <li class="nav-section">
            <div class="nav-section-header"><a href="../style/index.html">Style</a></div>
            <ul>
              <li><a href="../style/devices-displays.html">Devices and Displays</a></li>
              <li><a href="../style/themes.html">Themes</a></li>
              <li><a href="../style/touch-feedback.html">Touch Feedback</a></li>
              <li><a href="../style/metrics-grids.html">Metrics and Grids</a></li>
              <li><a href="../style/typography.html">Typography</a></li>
              <li><a href="../style/color.html">Color</a></li>
              <li><a href="../style/iconography.html">Iconography</a></li>
              <li><a href="../style/writing.html">Writing Style</a></li>
            </ul>
          </li>

          <li class="nav-section">
            <div class="nav-section-header"><a href="../patterns/index.html">Patterns</a></div>
            <ul>
              <li><a href="../patterns/new-4-0.html">New in Android 4.0</a></li>
              <li><a href="../patterns/gestures.html">Gestures</a></li>
              <li><a href="../patterns/app-structure.html">App Structure</a></li>
              <li><a href="../patterns/navigation.html">Navigation</a></li>
              <li><a href="../patterns/actionbar.html">Action Bar</a></li>
              <li><a href="../patterns/multi-pane-layouts.html">Multi-pane Layouts</a></li>
              <li><a href="../patterns/swipe-views.html">Swipe Views</a></li>
              <li><a href="../patterns/selection.html">Selection</a></li>
              <li><a href="../patterns/notifications.html">Notifications</a></li>
              <li><a href="../patterns/compatibility.html">Compatibility</a></li>
              <li><a href="../patterns/pure-android.html">Pure Android</a></li>
            </ul>
          </li>

          <li class="nav-section">
            <div class="nav-section-header"><a href="../building-blocks/index.html">Building Blocks</a></div>
            <ul>
              <li><a href="../building-blocks/tabs.html">Tabs</a></li>
              <li><a href="../building-blocks/lists.html">Lists</a></li>
              <li><a href="../building-blocks/grid-lists.html">Grid Lists</a></li>
              <li><a href="../building-blocks/scrolling.html">Scrolling</a></li>
              <li><a href="../building-blocks/spinners.html">Spinners</a></li>
              <li><a href="../building-blocks/buttons.html">Buttons</a></li>
              <li><a href="../building-blocks/text-fields.html">Text Fields</a></li>
              <li><a href="../building-blocks/seek-bars.html">Seek Bars</a></li>
              <li><a href="../building-blocks/progress.html">Progress &amp; Activity</a></li>
              <li><a href="../building-blocks/switches.html">Switches</a></li>
              <li><a href="../building-blocks/dialogs.html">Dialogs</a></li>
              <li><a href="../building-blocks/pickers.html">Pickers</a></li>
            </ul>
          </li>

          <li>
            <div id="back-dac-section"><a href="../../index.html" target="_blank">Developers</a></div>
          </li>

        </ul>

        <div id="content">

          
          <div class="layout-content-row content-header">
            <div class="layout-content-col span-9">
              <h2>Writing Style</h2>
            </div>
            <div class="paging-links layout-content-col span-4">
              <a href="#" class="prev-page-link">Previous</a>
              <a href="#" class="next-page-link">Next</a>
            </div>
          </div>
          

          

<p>When choosing words for your app:</p>
<ol>
<li>
<p><strong>Keep it brief.</strong> Be concise, simple and precise. Start with a 30 character limit (including
   spaces), and don't use more unless absolutely necessary.</p>
</li>
<li>
<p><strong>Keep it simple.</strong> Pretend you're speaking to someone who's smart and competent, but doesn't
   know technical jargon and may not speak English very well. Use short words, active verbs, and
   common nouns.</p>
</li>
<li>
<p><strong>Be friendly.</strong> Use contractions. Talk directly to the reader using second person ("you"). If
   your text doesn't read the way you'd say it in casual conversation, it's probably not the way
   you should write it. Don't be abrupt or annoying and make the user feel safe, happy and
   energized.</p>
</li>
<li>
<p><strong>Put the most important thing first.</strong> The first two words (around 11 characters, including
   spaces) should include at least a taste of the most important information in the string. If they
   don't, start over.</p>
</li>
<li>
<p><strong>Describe only what's necessary, and no more.</strong> Don't try to explain subtle differences. They
   will be lost on most users.</p>
</li>
<li>
<p><strong>Avoid repetition.</strong> If a significant term gets repeated within a screen or block of text, find
   a way to use it just once.</p>
</li>
</ol>

<h2>Examples</h2>

<ol><li class="value-1"><strong>Keep it brief.</strong> From the setup wizard:</ol>

<div class="layout-content-row">
  <div class="layout-content-col span-6 list_item_margins">

    <div class="example_label bad">Too formal</div>

    <table class="ui_table good"><tbody><tr><td>
    Consult the documentation that came with your phone for further instructions.
    </td></tr></tbody></table>

  </div>
  <div class="layout-content-col span-6">

    <div class="example_label good">Better</div>

    <table class="ui_table good"><tbody><tr><td>
    Read the instructions that came with your phone.
    </td></tr></tbody></table>

  </div>
</div>

<div class="vspace size-1">&nbsp;</div>

<ol><li class="value-2"><strong>Keep it simple.</strong> From the Location settings screen:</ol>

<div class="layout-content-row">
  <div class="layout-content-col span-6 list_item_margins">

    <div class="example_label bad">Confusing</div>

    <table class="ui_table bad">
    <thead>
      <tr>
        <th>
        Use GPS satellites
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>
        When locating, accurate to street level.
        </td>
      </tr>
    </tbody>
    </table>

  </div>
  <div class="layout-content-col span-6">

    <div class="example_label good">Better</div>

    <table class="ui_table good">
    <thead>
      <tr>
        <th>
        GPS
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>
        Let apps use satellites to pinpoint your location.
        </td>
      </tr>
    </tbody>
    </table>

  </div>
</div>

<div class="vspace size-1">&nbsp;</div>

<ol><li class="value-3"><strong>Be friendly.</strong> Dialog that appears when an application
crashes:</ol>

<div class="layout-content-row">
  <div class="layout-content-col span-6 list_item_margins">

    <div class="example_label bad">Confusing and annoying&mdash;"Sorry" just rubs salt in the
    wound.</div>

    <table class="ui_table bad">
    <thead>
      <tr>
        <th colspan="3">
        Sorry!
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td colspan="3">
        Activity MyAppActivity (in application MyApp)
        is not responding.
        </td>
      </tr>
    </tbody>
    <tfoot>
      <tr>
        <td width="33%">Force close</td>
        <td width="33%">Wait</td>
        <td width="33%">Report</td>
      </tr>
    </tbody>
    </table>

  </div>
  <div class="layout-content-col span-6">

    <div class="example_label good">Shorter, more direct, no faux-apologetic title:<br><br></div>

    <table class="ui_table good">
    <thead>
      <tr>
        <th colspan="3">
        MyApp isn't responding.
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td colspan="3">
        Do you want to close it?
        </td>
      </tr>
    </tbody>
    <tfoot>
      <tr>
        <td width="33%">Wait</td>
        <td width="33%">Report</td>
        <td width="33%">Close</td>
      </tr>
    </tbody>
    </table>

  </div>
</div>

<div class="vspace size-1">&nbsp;</div>

<ol><li class="value-4"><strong>Put the most important thing first.</strong></ol>

<div class="layout-content-row">
  <div class="layout-content-col span-6 list_item_margins">

    <div class="example_label bad">Top news last</div>

    <table class="ui_table bad"><tbody><tr><td>
    77 other people +1'd this, including Larry Page.
    </td></tr></tbody></table>

  </div>
  <div class="layout-content-col span-6">

    <div class="example_label good">Top news first</div>

    <table class="ui_table good"><tbody><tr><td>
    Larry Page and 77 others +1'd this.
    </td></tr></tbody></table>

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-6 list_item_margins">

    <div class="example_label bad">Task last</div>

    <table class="ui_table bad"><tbody><tr><td>
    Touch Next to complete setup using a Wi-Fi connection.
    </td></tr></tbody></table>

  </div>
  <div class="layout-content-col span-6">

    <div class="example_label good">Task first</div>

    <table class="ui_table good"><tbody><tr><td>
    To finish setup using Wi-Fi, touch Next.
    </td></tr></tbody></table>

  </div>
</div>

<div class="vspace size-1">&nbsp;</div>

<ol><li class="value-5"><strong>Describe only what's necessary, and no more.</strong></ol>

<div class="layout-content-row">
  <div class="layout-content-col span-6 list_item_margins">

    <div class="example_label bad">From a Setup Wizard screen</div>

    <table class="ui_table bad">
    <thead>
      <tr>
        <th>
        Signing in...
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>
        Your phone needs to communicate with<br>
        Google servers to sign in to your account.<br>
        This may take up to five minutes.
        </td>
      </tr>
    </tbody>
    </table>

  </div>
  <div class="layout-content-col span-6">

    <div class="example_label good">From a Setup Wizard screen</div>

    <table class="ui_table good">
    <thead>
      <tr>
        <th>
        Signing in...
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>
        Your phone is contacting Google.<br>
        This can take up to 5 minutes.
        </td>
      </tr>
    </tbody>
    </table>

  </div>
</div>



          
          <div class="layout-content-row content-footer">
            <div class="paging-links layout-content-col span-9">&nbsp;</div>
            <div class="paging-links layout-content-col span-4">
              <a href="#" class="prev-page-link">Previous</a>
              <a href="#" class="next-page-link">Next</a>
            </div>
          </div>
          
        </div>

      </div>

      <div id="page-footer">

        <p id="copyright">
          Except as noted, this content is licensed under
          <a href="http://creativecommons.org/licenses/by/2.5/" target="_blank">
          Creative Commons Attribution 2.5</a>.<br>
          For details and restrictions, see the
          <a href="http://developer.android.com/license.html" target="_blank">Content License</a>.
        </p>

        <p>
          <a href="http://www.android.com/terms.html" target="_blank">Site Terms of Service</a> &ndash;
          <a href="http://www.android.com/privacy.html" target="_blank">Privacy Policy</a> &ndash;
          <a href="http://www.android.com/branding.html" target="_blank">Brand Guidelines</a>
        </p>

      </div>
    </div>

    <script src="../static/jquery-1.6.2.min.js"></script>
    <script>
    var SITE_ROOT = '../';
    </script>
    <script src="../static/default.js"></script>


    <script type="text/javascript">
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
    </script>
    <script type="text/javascript">
    var pageTracker = _gat._getTracker("UA-5831155-1");
    pageTracker._trackPageview();
    </script>
  </body>
</html>
