What are android Instant Apps and How does it work?
What are Instant Apps?
Instant app is an evolution in google’s app technology wherein a user can try out an app even without downloading it, user can simply use it on the go by clicking on the try now button in play store or a URL without having to download it. It will have the functions just like a traditional android application. Usually, developers choose one function of the whole application to be the Instant App, so that when a user wants to try out that app, this one function or module act as the instant app and they can quickly try it out and choose to download it or not.
In brief, Instant Apps encapsulates the best of native apps and web apps. It delivers the performance and the functionality of a native app while retaining the ease and simplicity of a web app. It can be accessed from any android phone, just like surfing a website. Instant apps has a big advantage, that it can be shared, therefore eliminating that one big drawback of a normal app.
The whole experience or the hurdle of installing and using an app is like Friction. Now what is friction? The friction between our sandals and the floor beneath us stop us from slipping. friction between the tyres and the road stop cars from skidding.Friction between our hands and a bottle-cap help us in opening it, but in the new world no one likes waiting, so even in our world which is run by apps, it’s a force that we try to reduce. The App installation-screen is a major source of friction. Even for one page or tiny apps, this same screen can lose you 5-10 percent of your users. And the numbers only increases as the app size gets larger. Like on an average , 25 percent of all app installations over 100 mbs are canceled or ended by the user. This is where Android Instant App comes in. Instant Apps are native android apps that require no installation.
I was testing two Applications, The Google Trip Application and Fetchr app. Google Trip application is a great application through which we can plan our whole trip from flight tickets to booking flights, restaurants etc and Fetch is a Logistics application based in UAE. Both these apps have Instant Apps feature, and i was startled to try it out. In the former app, it opened a screen asking for the destination I was planning to go to, and in the latter app it asked me to enter my courier or package number. It acted just like any native app! Instant Apps make use of just one or 2 features from the whole application just for the user to know how it works or how well its made!
Ok so you must be wondering if you want to experience any instant app you have to go to the play store? No! It can be linked to any URL you own, like a tweet , a social media post, a QR code, a search result anything!
The process of building an instant app with example.
So let us learn how an instant app is structured, so you must be owning an app which is structured just like any app, which has several features and designs, and the more features you add on it, the more its size will increase, which also means longer waiting time to download the application. Now take an application, which has 3 functions. In the traditional way, what we do is, we write the whole code in one unit because each function might be dependent on another. To make an instant app, what we do is, we divide the functions or features into smaller modules, such that each feature or function is one module called feature module. So each of these Feature Module is one instant app, Each feature module contains the code and resources for a different, distinct thing that your users could do with your app. so several instant apps can be generated and shared via links, etc to let the users experience it without having to download the whole application. So in brief instant apps enable you to keep all of the features or functions that your application supports but download them one at a time.
So let’s take an example to explain the above process, We are building a Travel Application just like Google Flights. We might have a different feature module for the code for renting a hotel room, booking flights and rating the hotel rooms. Now usually these feature modules won’t have a completely independent code or resources. Most probably we use the same themes utility code for every page and every feature in the app. You also probably use the support library in all of the feature modules. So what we do is, we encapsulate all the shared code and shared data to one module, which is called the Base Feature Module. So when the user opens the instant app, they don’t download the whole app, they only download the Feature Module and Base Feature Module. This means that if your user is book a flight, they are not getting to download the code for hotels or rating. If your user then navigates to another feature, that is another feature module from the same app, the base feature is not redownloaded. and when the user accesses a feature which isn't a feature module, it will ask you to download the whole app And because you have modularized your code you can use the same code base for your installable app as your instant app.
Another great example is the Fetchr Application, which is the Middle-east based Logistics solution application founded in 2012, which let you perform several services like door to door deliveries, Pickup service, Drop package service and several more. Fetchr also has an instant app, which lets you use one feature, that is tracking your package, and once a tracking number is entered, functions dependent on that package will be usable.
Now, the technical side, when you compile an application as a normal app, this different feature modules will behave like a collection of Android libraries. But when they are compiled as an instant app, you will get a compressed folder which you then upload to Google Play. This compressed folder contains separate APKs for each feature module. AT run time, these APKs are loaded and composited together to provide the instant apps experience.
Android studio 3.0 has been designed with tools to help you modularized and create instant app. It includes a refactoring tool for splitting code into modules. There is also an instant apps SDK and APIs for showing install prompts. The cookie API makes it easy to transfer data from the instant app to the installable app. And there are several more plugins like Gradle plugin, feature plugin, instant app plugin etc, designed specifically for building instant apps
After we have broken down the code and used all necessary plugins for each of our builds, we then just have to write or set up the dependencies between the modules.
Are you interested?
Do you want to transform your application to Instant App? Do you want to Modularize your Application? Or do you have any other idea? We can help you.
Royex Technologies, a leading Mobile App Development Company in Dubai. We can help your dreams come true. We have designed and developed several applications and websites as you can see in our portfolio. You can contact us for more information. You can mail at email@example.com or call on +971566027916