What Are Android Instant Apps and How Do They Work?
If you’re wondering how to try out an application without needing to install it, there is a way – Android instant apps. This technology lets you run apps on an Android device without installing them, meaning hardly any resources or internal storage are used.
Opened through web links, an instant app allows you to view the application before downloading. By doing that, you get an idea of whether the app is for you or not.
Instant apps help build first impressions about the main app, but they also come with drawbacks, such as limited supported permissions and operations. Below, we delve into the intricacies of instant apps and outline the pros, cons, and use cases.
What are Android instant apps?
Google Instant Apps (now Google Play Instant) was introduced in 2016 and 2017 to the public, offering people a subset of an existing app. How? Instant apps allow users to access content from a native Android app experience without installing the app from Play Store. They’re designed to save Android users space on their devices while conveniently deep linking users to an app's specific function.
How do Android instant apps work?
Features within an app are assigned App Links, which are used to launch the features. When the link is clicked or used in an intent launch, Google Play matches the URL with the feature module, downloads only the required feature APK files, and launches the entry point activity as specified in the APK manifest file.
This allows Android users to quickly gain access to a particular instant app feature. The user simply clicks the link and the Android instant app handles the rest.
It’s important to remember that instant apps provide only partial functionality of the whole app. They also include the “install app” button on the launched screens.
Instant apps are held in cache and uninstalled on system restart or when storage space is low.
Structure of instant apps on Android
Below is a graphic outlining the structure of an Android instant app.
If you want to build or refactor your app so it’s compatible with instant apps, you need to create a specific module hierarchy. Each feature that’s accessible through the instant app has to be moved to its own module that’s navigable via a deep links intent filter.
Every single feature can access the “base feature” codebase. The instant app module is responsible for providing the Play Store with downloadable features, and the app module is still responsible for generating the APK/bundle.
Remember: The base feature should only include core libraries because it affects the module size. Also, it’s important to move all necessary imports to the designated feature modules.
Enabling instant Android apps
With Android, there are two options to enable instant apps, but it’s not entirely clear what each option does:
- Tap Settings > Apps & Notifications > Default apps > Opening Links > Instant Apps (open links in apps even if they’re not installed) – Switch defaulted ON
- Go to Google Play > Profile photo > Settings > General > Google Play Instant > Upgrade web links – Switch defaulted OFF
In terms of accessing via Google Play, follow the steps presented below in the screenshots to enable Android instant apps:
- Tap your profile photo in Google Play
- Open Settings
- Select General
- Tap Google Play Instant
- Enable Upgrade web links
What are the benefits of Android instant apps?
Instant apps are a quick and easy way to try a native app experience. Below, we outline a host more advantages:
- You can instantly open and run the app without needing to install it.
- The first (and main) friction point (installing the app) is removed.
- Discoverability of an app massively increases by opening up a new way to find the app and experience it.
- Links to instant apps are easily shared – there are no barriers to entry.
- Instant apps help build first impressions about the main app.
- For the available features, they provide exactly the same product experience as the installable app, but through a URL.
- Instant apps are good for very small apps but also work well for bigger ones, such as shopping apps, podcast apps, and news apps. This is because when you click on the link, it only downloads the required module for your request.
- If you’re using a device that runs Android 8.0 (API level 26) or higher and your app specifies a
targetSandboxVersion
of 2, then your data is transferred automatically to the full app version.
What are the limitations of Android instant apps?
For starters, Google Play Instant is disabled by default on devices in the Google Play settings. There is a note on that screen saying: “Even when this setting is turned off, you can always continue to try instant apps by clicking on links that are Google Play branded.” However, this note is somewhat confusing, don’t you agree? There are a handful more cons, including:
- Instant apps only work on Android 5.0 (API level 21) or higher.
- Instant apps run in a sandbox environment (a special kind of SELinux sandbox), and there’s no 1-to-1 mapping of API behavior between the regular app and the instant app.
- There’s a size limit of 15 MB (previously 4 MB).
- Binary should be as small as possible to load fast – use modules for each entry point and load only what’s needed.
- Multiple activities are needed for multiple entry points.
- It’s not possible to send and receive system broadcasts.
- Instant apps offer limited supported permissions and operations.
- Limited storage access.
- You can’t share things like images with other apps.
- Instant apps can’t create background services.
- They can’t interact with installed apps on a device unless one of the following is true:
- One or more activities within an installed app has theandroid:visibleToInstantApps
element set to true (this is available to apps running Android 8.0 (API level 26) or higher).
- An installed app contains an intent filter that includesCATEGORY_BROWSABLE
.
- The instant experience is sending an intent using either theACTION_SEND, ACTION_SENDTO, or ACTION_SEND_MULTIPLE
action. - Android instant apps have problems with manifest merging.
- Indexing links can take 24 hours, slowing down the testing of instant apps.
- To load an instant app, the user must press "open in browser" instead of "open instant app" when prompted. That choice seems to be permanent, and we haven't found a way to reset it.
Use cases for Android instant apps
From car parking solutions to restaurant display menus, there are many use cases for instant apps across various industries. The types of apps that are best represented by Android instant apps include:
- Ecommerce – product pages and checkout
- Gaming – tutorial page and the introduction page of a Google Play games app
- Entertainment – video players and interaction with other Android users such as messaging apps
If you’re interested in building an instant app, take a look at our article about how to create an Android instant app.
Android instant apps: a way to try out new mobile apps
Ideal for checking out an application and seeing whether you like it, Android instant apps don’t need to be installed, meaning they use few resources and not much internal storage. Particularly useful for ecommerce, gaming, and entertainment, you can instantly run instant apps, and they offer the same product experience as the equivalent installable application.
However, there are numerous downsides, from no 1-to-1 mapping of API behavior between the regular app and the instant app to limited supported permissions and operations. Moreover, from what we can tell, Android instant apps are disabled by default on Android devices (Google Play), creating potential usage barriers. Whatever your viewpoint, they do still offer a useful service.