Skip to content

Most visited

Recently visited


Best practices for user experience

Android Instant Apps provides a new way for users to consume apps. Instant apps are native Android apps, but they run without being installed on the device. Each instant app has a corresponding version that users can choose to install.

Because of the unique way that users interact with them, instant apps should observe some specific user experience practices. This guide presents guidelines for how to create a positive user experience in an instant app.

We strongly recommend that you use material design principles when you design your instant app. For more information about how to apply material design to an app, see Material Design for Android.

For more information about the requirements and restrictions applied to instant apps, see Preparing Your App.


One app, before and after installation

The instant app is the same app as your traditional installable one, instead that it can now run without installation.

When running as an instant app, the app can prompt users to install. Do not use language like "install the full app," "get the app," or "upgrade" to guide users towards launching the installation prompt. Instead, you can just ask users to "install the app."

Keep in mind that an instant app is not intended as a trial version of your app. For more information about how to create a demo version of your app, see Configure product flavors.

Figure 1. Same app, installed or instant.


Reconsider your success metrics

Installation numbers probably do not measure what your business really cares about. Can you enable your users to complete the tasks important to you without having to install your app? How much friction can you remove between your users and your key performance indicators (KPIs)?

Figure 2. What makes your app successful to your business?


Provide a consistent landing screen for your app

Users can launch your instant app from a variety of different sources. Users can access your instant app through an app icon, from search, or from the Android launcher. Provide a common landing experience for all these use cases.

Figure 3. One home screen for all instant app features.


Up arrows vs. system back

The Up button navigates upward in the app's hierarchy until the user reaches the app's home screen. The Back button navigates in reverse chronological order through the history of recently viewed screens.

While the Up button ensures the user remains in your app, the Back button may take the users back through recent screens outside of your app. Do not kick users out of your app when they click the Up button.

For more information about how to design navigation with the Back and Up buttons, see Navigation with Back and Up.

Figure 4. Navigation is key.


Don't create any additional splash screens

The instant app launch experience incorporates app branding, app title, and app launcher icon. Don't create additional splash screens for your instant app experience.

Figure 5. Android Instant Apps framework provides a launch experience for your app.


Don't branch your UI

The transition from the instant version of your app to the installed version of your app should be as seamless as possible. Do not change your design and UI in the instant app.

Figure 6. Keep a consistent UI between the installed and instant versions of your app.


Use Smart Lock for identity

Google Smart Lock is a password manager across Chrome and Android that makes authentication easier for users. Smart Lock also automatically signs users in on subsequent visits.

Figure 7. Use Smart Lock for authentication.


Consider when to ask users to sign in

Provide as much functionality as possible without requiring users to sign in or register for a service.

Wait until users try to use a feature that requires authentication before you prompt them to sign in. Users perceive sign in prompts as less intrusive if they immediately see the benefit for signing in.

For example, consider a photo sharing app that requires users to log in when launched. To improve the user experience, the app now provides features users can use without logging in, such as browsing the most popular publicly-shared photos and editing the photos on their devices. When the user wants to share their photos with friends, the app prompts them to sign in.

Figure 8. Avoid unnecessary sign-in prompts.


Allow users to complete a task

Users must be able to complete the tasks that they opened the instant app for without being prompted to install the app.

Avoid asking users to install the app so that they can accomplish what they want to do. The main click-through action of a page in the app should never trigger an installation prompt.

Figure 9. Allow users to complete a specific task without prompting them to install the app.


Explicit installation prompts

Use install buttons strategically and make them part of your app's user interface. Use the Material Design "get app" icon and the label "install" for the installation button.

Do not use any other labels like "Get the app," "Install the full app," or "Upgrade." Never use a banner or other ad-like technique for presenting an installation prompt to users.

Figure 10. Use installation buttons strategically.


Provide at most 2-3 implicit installation prompts

Implicit installation prompts are links in the instant app that don't do anything other than launch an installation prompt. These implicit installation prompts might occur where you have functionality in the installed version of your app that the instant version does not have.

Do not have more than 2-3 implicit installation prompts in your app.

When using an implicit installation prompt, make sure to provide context and information about the feature that triggered it. Give users a reason why they might want to install the app.

Figure 11. Limit the number of implicit installation prompts.


Remove non-functional sections of your app

When converting your app to an instant app, you may have portions of your instant app's UI that are non-functional and only present an installation button. Remove any such sections from the instant app.

Figure 12. Remove non-functional parts of your app.


Keep user state after app installation

When users install the app, make sure that you transfer their stored app state to the app using cookies or local storage. Users should be able to pick up where they left off in your app.

Figure 13. Restore user state after installation.


Take the friction out of payments

You must use the Google Payment API for purchases within your instant app if those purchases are not supported by Google Play In-app Billing and you do not have the user's payment information on file. You must collect any new or replacement payment information for a user using the Google Payment API.

If you implement the Google Payment API in your instant app, you can also offer purely offline payments, like cash on delivery, or store gift cards in your instant app.

Figure 14. Use the Google Payment API for payments.


Linking out

Links to third-party offerings and content can open in a Chrome custom tab or browser. They can be rendered using a WebView when the requested resources are provided through HTTPS protocol.

Your own first-party offerings should not link out to the browser but rather stay within the instant app, using a WebView if necessary. All network traffic from inside the instant app must use HTTPS protocol.

Within the instant app, you should clearly define what functionality your app provides and what functionality is provided from an external source.

As stated previously, you must handle payments within the instant app using the Google Payment API.

Figure 15. Open external links that you don't control in the browser.


Provide a way to share instant app URLs

Since instant apps don't provide an address bar for users to copy the URL, provide a "share" action within your app that allows users to share your instant app's URL.

Figure 16. Help users share your instant app.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields


Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)