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.
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)?
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.
Up arrows vs. system back
The Up button navigates upward in the app's hierarcy 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Take the friction out of payments
You must use the Google Payment API for purchases within your instant app if you do not already have the user's payment information on file. Any new or replacement payment information for a given user must be collected 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.
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.
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.