summaryrefslogtreecommitdiffstats
path: root/docs/html/distribute/essentials/optimizing-your-app.jd
diff options
context:
space:
mode:
Diffstat (limited to 'docs/html/distribute/essentials/optimizing-your-app.jd')
-rw-r--r--docs/html/distribute/essentials/optimizing-your-app.jd517
1 files changed, 517 insertions, 0 deletions
diff --git a/docs/html/distribute/essentials/optimizing-your-app.jd b/docs/html/distribute/essentials/optimizing-your-app.jd
new file mode 100644
index 0000000..3fe91b28
--- /dev/null
+++ b/docs/html/distribute/essentials/optimizing-your-app.jd
@@ -0,0 +1,517 @@
+page.title=Optimize Your App
+page.metaDescription=A look at how to get the most visibility and the highest ratings possible for your app or game. Optimizing the quality of your apps is a key strategy.
+page.image=/distribute/images/gp-optimize-card.jpg
+
+@jd:body
+
+<div id="qv-wrapper">
+ <div id="qv">
+ <h2>Strategies</h2>
+ <ol>
+ <li><a href="#listen-to-your-users">Listen to Your Users</a></li>
+ <li><a href="#measuring-analyzing-responding">Measuring, Analyzing, and Responding to User Behavior</a></li>
+ <li><a href="#improve-stability">Improve Stability and Eliminate Bugs</a></li>
+ <li><a href="#improve-ui">Improve UI Responsiveness</a></li>
+ <li><a href="#improve-usability">Improve Usability</a></li>
+ <li><a href="#professional-appearance">Professional Appearance and Aesthetics</a></li>
+ <li><a href="#deliver-features">Deliver the Right Set of Features</a></li>
+ <li><a href="#integrate">Integrate with the System and Third-Party Apps</a></li>
+ <li><a href="#related-resources">Related Resources</a></li>
+ </ol>
+ </div>
+</div>
+
+<div class="top-right-float">
+ <img src="{@docRoot}images/gp-optimize.png" class="quality-top-image" style=
+ "width:239px;padding-left:1.5em;">
+</div>
+
+<p>
+ With thousands of new apps being published in Google Play every week, it's
+ important to look for ways to get the most visibility and the highest ratings
+ possible. Optimizing the quality of your apps is a key strategy.
+</p>
+
+<p>
+ A higher quality app can translate to higher user ratings, generally better
+ rankings, more downloads, and higher retention (longer install periods).
+ High-quality apps are much more likely to get positive publicity, such as
+ being featured in Google Play or generating social media buzz.
+</p>
+
+<p>
+ The quality of your apps is something you should consider addressing both
+ before and after launch. Gaining users after the launch of a poor quality app
+ can be hard and recovering costly. On the other hand, maintaining the ranking
+ of high-quality apps is made easier if there are continual improvements, a
+ practice that also fuels the impression-install-ranking cycle.
+</p>
+
+<p>
+ On this page you can find advice on a number of ways in which you can drive
+ improvements to your apps’ quality.
+</p>
+
+<div class="headerLine">
+ <h1 id="listen-to-your-users">
+ Listen to Your Users
+ </h1>
+
+ <hr>
+</div>
+
+<div class="figure">
+ <img src="{@docRoot}images/gp-optimizing-chat-bubbles.png">
+</div>
+
+<p>
+ Listening and hearing your users can be one of your best tools for success.
+ Start listening to your users before launching your apps and continue to
+ listen after launch.
+</p>
+
+<h3>
+ <strong>Listening before you launch</strong>
+</h3>
+
+<p>
+ You can listen to your users during the development of your apps. This
+ process can start with focus groups to review app features, continue into
+ user experience workshops, and onto alpha and beta releases. Listening at
+ these stages has two main benefits: <strong>you’ll build apps with features
+ users want</strong> and <strong>any issues they identify will be cheaper and
+ quicker to fix</strong> than they would be once the app is launched fully.
+</p>
+
+<p>
+ If the practicalities of focus groups and user workshops seem excessive in
+ relation to the development of a particular app, drawing on the feedback of
+ colleagues, friends, and family can be much more useful than getting no
+ feedback at all.
+</p>
+
+<p>
+ It's crucial to conduct user testing before releasing your apps to Google
+ Play. If you can only engage with colleagues, friends, and family you’re
+ already making a good start. For more extensive testing consider a public
+ alpha/beta test or creating your own trusted tester program. You can manage
+ app distribution yourself through email or your own website, or you can use
+ <a href=
+ "{@docRoot}distribute/googleplay/developer-console.html#alpha-beta">beta-testing</a>
+ and <a href=
+ "{@docRoot}distribute/googleplay/developer-console.html#staged-rollouts">staged
+ rollouts</a> in conjunction with <a href=
+ "http://www.google.com/+/business/">Google+</a> or <a href=
+ "https://groups.google.com/forum/#!overview">Google Groups</a> to distribute
+ software and gather feedback to a subset of users. <strong>Users on alpha or
+ beta versions cannot leave reviews or ratings</strong>, so there is
+ <strong>no risk to your rating</strong> on Google Play.
+</p>
+
+<p>
+ Unless you have to, don’t restrict the users you involve in these stages in
+ the information they can share through their social networks and blogs -
+ users engaged in these early stages (and listened too) are likely to be great
+ ambassadors for your apps and will help create great social media buzz.
+</p>
+
+<h3>
+ Listening after launch
+</h3>
+
+<p>
+ Once you have launched, the most obvious way to listen to users is by reading
+ and addressing comments on Google Play. Although the comments aren't always
+ productive or constructive, some will provide valuable insight on aspects of
+ your apps. It's important to remember that users have the opportunity to
+ change their ratings and comments as much as they like.
+</p>
+
+<p>
+ There are more interactive ways you can reach users, help them address their
+ concerns, and gather more detailed feedback: by setting up support and
+ discussion forums. There are some great support tools out there that can put
+ you in touch with your users directly, from forums such as <a href=
+ "http://groups.google.com/">Google Groups</a> to comprehensive customer
+ support products and tools like UserVoice. Once you get set up with such a
+ tool, make sure to fill in the support link in your Google Play product
+ details page — users do click through to these.
+</p>
+
+<p>
+ Also don’t forget to use the <a href=
+ "{@docRoot}distribute/googleplay/developer-console.html#alpha-beta">beta-testing</a>
+ and <a href=
+ "{@docRoot}distribute/googleplay/developer-console.html#staged-rollouts">staged
+ rollout</a> features of Google Play with app updates.
+</p>
+
+<div class="headerLine" id="measuring-analyzing-responding">
+ <h1>
+ Measuring, Analyzing, and Responding to User Behavior
+ </h1>
+
+ <hr>
+</div>
+
+<div class="figure">
+ <img src="{@docRoot}images/gp-optimize-analytics.png">
+</div>
+
+<p>
+ One of the best ways to spot issues to resolve is by measuring user behavior.
+ Optimizing your app becomes much easier when you analyze performance before
+ and after you launch. Drop off points, low ratings, and high percent of
+ uninstalls can be indicative that there’s a problem. Measuring and responding
+ to user-related metrics such as download sources, retention rates, and in-app
+ behavior regularly is critical to keeping and bringing back your hard earned
+ user base.
+</p>
+
+<p>
+ You can get data from tools in Google Play or third-parties to analyze user
+ behavior. You can identify details such as:
+</p>
+
+<ul>
+ <li>
+ <p>
+ Where installs are coming from.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ The types of users you are acquiring.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ What is causing user churn and how to reduce it.
+ </p>
+ </li>
+</ul>
+
+<h3>
+ Statistics for analyzing installs and ratings
+</h3>
+
+<p>
+ Once you’ve published your app, Google Play makes it easy to see how it’s
+ doing. The <a href="https://play.google.com/apps/publish/">Developer
+ Console</a> gives you access to a variety of anonymized statistics and custom
+ charts that show you the app's installation performance and ratings.
+</p>
+
+<p>
+ You can view data and charts for active, daily, and total installs per unique
+ devices or users, as well as upgrades and uninstalls. You can also view the
+ app's daily average user rating and its cumulative user rating. To help you
+ analyze the data, you can view install and ratings statistics across a
+ variety of different dimensions such as Android version, device, country, app
+ version, and carrier.
+</p>
+
+<div>
+ <img class="border-img" src="{@docRoot}images/gp-dc-stats-mini.png">
+</div>
+
+<p>
+ You can see your app statistics on timeline charts, for all metrics and
+ dimensions. At a glance, the charts highlight your app’s installation and
+ ratings peaks and longer-term trends, which you can correlate to promotions,
+ app improvements, or other factors. You can even focus in on data inside a
+ dimension by highlighting specific data points (such as individual platform
+ versions or languages) on the timeline.
+</p>
+
+<p>
+ You can download all of your installation data as a CSV file for viewing in
+ the business program of your choice.
+</p>
+
+<h3>
+ Tracking and analyzing Marketing campaigns
+</h3>
+
+<p>
+ While you should consider monitoring user behavior data as a part of your
+ normal activities, it’s particularly important when you’re running any form
+ of marketing campaign, to make sure you’re getting the right users at the
+ lowest cost possible.
+</p>
+
+<p>
+ One way to track your marketing campaigns is to link <a href=
+ "http://android-developers.blogspot.com/2013/10/improved-app-insight-by-linking-google.html">
+ Google Analytics with your Google Play account</a> to analyze activity from
+ source to install.
+</p>
+
+<div style="margin-top:1em;">
+ <img src="{@docRoot}images/gp-optimizing-image-4.jpg" class="border-img">
+</div>
+
+<p>
+ You can also use any of the variety of tools on the market to help track your
+marketing success and improvement ROI if you wish. There are also third parties
+who can help automate, measure, and optimize your mobile marketing.
+</p>
+
+<div class="headerLine">
+ <h1 id="improve-stability">
+ Improve Stability and Eliminate Bugs
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ There are many tools and techniques for testing and profiling your app on
+ different devices and user scenarios.
+</p>
+
+<p>
+ One noteworthy and yet relatively underused tool for catching stability
+ issues such as crashes is the <a href=
+ "{@docRoot}tools/help/monkey.html">UI/Application Exerciser Monkey</a>
+ (Monkey). Monkey will send random UI events to your app's activities,
+ allowing you to trigger user flows that can uncover stability problems.
+</p>
+
+<p>
+ Also, with the Google error-reporting features built into most Android
+ devices, users have a way to report application crashes to you. The error
+ reports show up in aggregate in the Google Play Developer Console. Make sure
+ to read these reports often and act on them appropriately.
+</p>
+
+<p>
+ Last, keep an external bug and feature request tracker and let users know how
+ to find it. This will enable them to engage with the app at a closer level,
+ by following features and bugs that affect them. User frustration with app
+ problems can be effectively managed with diligent issue tracking and
+ communication. Several community support tools offer issue tracking features,
+ and if your project is open source, most popular repository hosting sites
+ offer this as well.
+</p>
+
+<div class="headerLine">
+ <h1 id="improve-ui">
+ Improve UI Responsiveness
+ </h1>
+
+ <hr>
+</div>
+
+<div class="figure">
+ <img src="{@docRoot}images/gp-optimize-speed.png">
+</div>
+
+<p>
+ One sure-fire way to lose your users is to give them a slow, unresponsive UI.
+ Research has shown that <a href=
+ "http://googleresearch.blogspot.com/2009/06/speed-matters.html">speed
+ matters</a>, for any interface, on mobile, web, or desktop. In fact, the
+ importance of speed is amplified on mobile devices since users often need
+ their information on the go and in a hurry.
+</p>
+
+<p>
+ You can improve your apps' UI responsiveness by moving long-running
+ operations off the main thread to worker threads. Android offers built-in
+ debugging facilities such as StrictMode for analyzing your app's performance
+ and activities on the main thread. See more recommendations in <a href=
+ "http://www.youtube.com/watch?v=c4znvD-7VDA">Writing Zippy Android Apps</a>,
+ a developer session from Google I/O 2010.
+</p>
+
+<p>
+ A great way to improve UI performance is to minimize the complexity of your
+ layouts. If you open up <a href=
+ "{@docRoot}tools/help/hierarchy-viewer.html">hierarchyviewer</a> and see that
+ your layouts are more than 5 levels deep, it may be time to simplify your
+ layout. Consider refactoring those deeply nested <a href=
+ "{@docRoot}reference/android/widget/LinearLayout.html">LinearLayouts</a> into
+ <a href="{@docRoot}guide/topics/ui/layout/relative.html">RelativeLayout</a>.
+ The impact of View objects is cumulative — each one costs about 1 to 2 KB of
+ memory, so large view hierarchies can be a recipe for disaster, causing
+ frequent VM garbage collection passes which block the main (UI) thread. You
+ can learn more from the Google I/O session <a href=
+ "http://www.youtube.com/watch?v=wDBM6wVEO70">World of ListView</a>.
+</p>
+
+<p>
+ Lastly, as pointed out in the blog post <a href=
+ "http://android-developers.blogspot.com/2010/10/traceview-war-story.html">Traceview
+ War Story</a>, tools like <a href=
+ "{@docRoot}tools/help/traceview.html">traceview and ddms</a> can be your best
+ friends in improving your app by profiling method calls and monitoring VM
+ memory allocations, respectively.
+</p>
+
+<div class="headerLine">
+ <h1 id="improve-usability">
+ Improve Usability
+ </h1>
+
+ <hr>
+</div>
+
+<div class="sidebox-wrapper" style="float:right;">
+ <div class="sidebox">
+ <p>
+ <strong>Tip:</strong> As you’re designing or evaluating your app's UI,
+ make sure to read and become familiar with the <a href=
+ "{@docRoot}design/index.html">Android Design</a> guidelines. Included are
+ many examples of UI patterns, styles, and building blocks, as well as
+ tools for the design process.
+ </p>
+ </div>
+</div>
+
+<p>
+ In usability and in app design too, you should listen carefully to your
+ users. Ask a handful of real Android device users (friends, family, etc.) to
+ try out your app and observe them as they interact with it. Look for cases
+ where they get confused, are unsure of how to proceed, or are surprised by
+ certain behaviors. Minimize these cases by rethinking some of the
+ interactions in your app. See the <a href=
+ "{@docRoot}design/patterns/index.html">Patterns section</a> for tips to
+ improve your design.
+</p>
+
+<p>
+ In the same vein, two problems that can plague some Android user interfaces
+ are small tap targets and excessively small font sizes. These are generally
+ easy to fix and can make a big impact on usability and user satisfaction. As
+ a general rule, optimize for ease of use and legibility, while minimizing, or
+ at least carefully balancing, information density.
+</p>
+
+<p>
+ Another way to incrementally improve usability, based on real-world data, is
+ to implement <a href=
+ "http://code.google.com/mobile/analytics/docs/">Analytics</a> throughout your
+ app to log the use of particular sections. Consider demoting infrequently
+ used sections to the overflow menu in the <a href=
+ "{@docRoot}design/patterns/actionbar.html">Action bar</a>, or removing them
+ altogether. For often-used sections and UI elements, make sure they're
+ immediately obvious and easily accessible in your app's UI so that users can
+ get to them quickly.
+</p>
+
+<div class="headerLine">
+ <h1 id="professional-appearance">
+ Professional Appearance and Aesthetics
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ There's no substitute for a real user interface designer — ideally one who's
+ well-versed in mobile and Android, and handy with both interaction and visual
+ design. One popular venue to post openings for designers is <a href=
+ "http://jobs.smashingmagazine.com/">jobs.smashingmagazine.com</a>, and
+ leveraging social networks can also surface great talent.
+</p>
+
+<p>
+ If you don't have the luxury of working with a UI designer, there are some
+ ways in which you can improve your app's appearance yourself. You can use
+ Adobe Photoshop, Adobe Fireworks, GIMP, Inkscape or other image editing
+ tools. Mastering the art of the pixel in these apps takes time, but honing
+ this skill can help build polish across your interface designs. Also, master
+ the resources framework by studying the framework UI assets and layouts and
+ reading through the <a href=
+ "{@docRoot}guide/topics/resources/index.html">resources documentation</a>.
+ Techniques such as 9-patches and resource directory qualifiers are somewhat
+ unique to Android, and are crucial in building flexible yet aesthetic UIs.
+</p>
+
+<p>
+ Before you get too far in designing your app and writing the code, make sure
+ to visit the <a href="{@docRoot}design/index.html">Android Design section</a>
+ and learn about the vision, the building blocks, and the tools of designing
+ beautiful and inspiring user interfaces.
+</p>
+
+<div class="headerLine">
+ <h1 id="deliver-features">
+ Deliver the Right Set of Features
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ Having the <em>right</em> set of features in your app is important. It's
+ often easy to fall into the trap of feature-creep, building as much
+ functionality into your app as possible. Providing instant gratification by
+ immediately showing the most important or relevant information is crucial on
+ mobile devices. Providing too much information can be as frustrating (or even
+ more so) than not providing enough of it.
+</p>
+
+<p>
+ Again, listen to your users by collecting and responding to feature requests.
+ Be careful, though, to take feature requests with a grain of salt. Requests
+ can be very useful in aggregate, to get a sense of what kinds of
+ functionality you should be working on, but not every feature request needs
+ to be implemented.
+</p>
+
+<div class="headerLine">
+ <h1 id="integrate">
+ Integrate with the System and Third-Party apps
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ A great way to deliver a delightful user experience is to integrate tightly
+ with the operating system. Features like <a href=
+ "{@docRoot}guide/topics/appwidgets/index.html">Home screen widgets</a>,
+ <a href="{@docRoot}design/patterns/notifications.html">rich
+ notifications</a>, <a href="{@docRoot}guide/topics/search/index.html">global
+ search integration</a>, and <a href=
+ "{@docRoot}reference/android/widget/QuickContactBadge.html">Quick
+ Contacts</a> are fairly low-hanging fruit in this regard.
+</p>
+
+<p>
+ For some app categories, basic features like home screen widgets are
+ expected. Not including them is a sure-fire way to tarnish an otherwise
+ positive user experience. Some apps can achieve even tighter OS integration
+ with Android's contacts, accounts, and sync APIs.
+</p>
+
+<p>
+ Third-party integrations can provide even more user delight and give the user
+ a feeling of device cohesiveness. It's also a really nice way of adding
+ functionality to your app without writing any extra code (by leveraging other
+ apps' functionality). For example, if you're creating a camera app, you can
+ allow users to edit their photos in another app before saving them to their
+ collection, if they have that third-party application installed. More
+ information on this subject is available in the Android Training class
+ <a href="{@docRoot}training/basics/intents/index.html">Interacting with Other
+ Apps</a>.
+</p>
+
+<div class="headerLine">
+<h1 id="related-resources">Related Resources</h1><hr>
+</div>
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/optimizing, tag:addia"
+ data-sortOrder="-timestamp"
+ data-cardSizes="6x3"
+ data-maxResults="3"></div>
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="tag:adia"
+ data-sortOrder="-timestamp"
+ data-cardSizes="6x3"
+ data-maxResults="3"></div>
+