Android Instant Apps Enter Live Testing
Written by Mike James   
Friday, 27 January 2017

Last year at Google I/O the one of the most interesting announcements was the idea of an instant app. A sort of crossover between a native app and a web app. Now they are almost here with the start of live testing.



What's the best thing about web apps?

Possibly the fact that users don't have to install them. They simply visit the website and use the app. Of course many web app creators wish that their app could have more presence on the device, i.e. they would quite like it to be installed so that the user will return again and again. Well, it seems that in Google's collective brain the instant gratification of web apps is more important. 

Here is the I/O 2016 presentation:


An instant App is a standard Android Native App - i.e. written in Java with some C/C++ if needed and served to the end user as if it was a web page. That is the instant app is downloaded and run on-the-fly. The user selects a link to the app and then just gets to use it. If they like it they can also opt to install it without having to revisit the app store. 

In principle, you don't need to do anything special to make your app instant. That is, you don't need to create two versions of your app - the same code can be run in either installed or on-the-fly mode. However, to make it workable you will have to make some changes. The most obvious is to put your app on a weight loss diet. Yes you have to shrink the size of the API so that it can be downloaded as quickly as possible. This might be extra work, but it's worth it even for the installable app.

Next you have to support URL-based navigation. The Instant App API supports the transfer of a URL that the user clicks on to a single Activity in your app. If you want to start another Activity then it has to use the URL address for that Activity. 

A very vague requirement is to refactor your app so that any URL addressable module is under 4MBytes in size. That is, effectively an Instant app cannot be larger than 4MBytes unless it divides itself into a set of smaller Instant apps each one invokable using a URL. Obviously how much this looks like a single app is going to depend on how fast the network connection is. 

There are also a list of smaller requirements including to use Android 6.0 permissions and implement smart lock if you authenticate users.

There are also some unsupported features most of which are perfectly reasonable. Instant apps cannot: 

  • Run on the device without users being aware. Foreground services are available. Instant apps can only be started through activities that support App Links, so services, content providers or broadcast receivers won't be able to start your app. Push notifications are currently not supported in instant apps.

  • Access external storage on the device. However, instant apps can temporarily use internal storage private to the app.

  • Discover or interact directly with the list of installed apps on the device (e.g. via explicit intents).

  • Receive broadcasts from the system or other installed apps, or use GCM. In the future, instant apps may support a limited set of broadcasts while the app is running.

  • Access device identifiers that (1) persist longer than the instant app and (2) are not resettable by the user (e.g. Settings Secure Android ID (SSAID), Build Serial, Mac Addresses, IMEI, IMSI). NOTE: developers will have access to the Advertising ID.

  • Change device settings (e.g. change the user's wallpaper).

 It is worth checking that your app doesn't do any of these things before spending time on the other issues. 

Some Instant Apps are already rolling out to some users:

"We’ve been working with a small number of developers to refine the user and developer experiences. Today, a few of these Instant Apps will be available to Android users for the first time in a limited test, including apps from BuzzFeed, Wish, Periscope, and Viki. By collecting user feedback and iterating on the product, we’ll be able to expand the experience to more apps and more users."

At the moment if you want to get in on the act you have to submit your request to Google to be included in the preview. 

Is the Instant App concept a good one?

Without fast WiFi and 4G networking it is a very bad idea. If you have a large app then giving the user the opportunity to download it every time they run it is probably not a selling point. You also need to keep in mind that the user might not know that your app is being delivered as an Instant App and might just think that the sluggish behavior is your fault. 

If the app is small and can work by downloading small chunks of new data and behavior then perhaps it will give the user a good enough experience. What this means is that you are probably going to have to do more work refactoring your app than Google suggests.

As a way of easing the initial install barrier it seems like a good idea, but we all want the user to stick with the app and install it.

So Instant Apps are more like a "try it before you buy it" feature. 



More Information

Android Instant Apps starts initial live testing

Related Articles

Android Wear 2.0 To Launch In February

Android Says Goodbye To Eclipse

Android Studio 2.2 Now Available For All

Android Adventures - Getting Started Creating A UI

Android Adventures - Mastering Fragments


To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.




Access LLMs From IntelliJ With Devoxx Genie

Devoxx Genie is a fully Java-based LLM Code Assistant plugin for IntelliJ IDEA, designed to integrate with local and cloud LLM providers.

Amazon Updates Q Family And Previews App Studio

Amazon made multiple announcements at its AWS Summit in New York, including a preview of AWS App Studio, the addition of Q Developer to SageMaker Studio, and an Amazon Q Apps API.

More News


kotlin book



or email your comment to:




Last Updated ( Friday, 27 January 2017 )