Google’s Instant Apps make life easier for users of Android applications. However, the refactoring of existing applications requires considerable effort from the development teams. Guardsquare adds functionality to DexGuard, our 360-degree security solution for Android applications, to make the upgrade to and the maintenance of Instant Apps fast and painless.
Instant Apps fundamentally change the experience of mobile users. They enable users to access in-app content without having to download the application from the Google Play Store first. This is how it works: a user taps a web link that leads to a feature in the application, the required functionality is downloaded in the background and temporarily stored on the device and the user can immediately start to use it. As the user continues to explore the options offered by the application, more features are downloaded.
Instant Apps blur the boundaries between online content and in-app functionality. With Instant Apps, users can try out an Android application before adding it to the plethora of applications already on their devices. The technology also enables users to easily share their favorite in-app content. For app developers, Instant Apps are an interesting opportunity to showcase the functionality of their applications and attract more long-term users.
The Instant App technology greatly increases the usability and accessibility of mobile applications. But converting existing Android applications into Instant Apps requires considerable effort from the teams developing them. Google estimates that Instant App development takes between 4 and 6 weeks with the latest tools.
To upgrade their applications, the development team must add support for URL-based navigation via App Links, must start using the permissions model introduced in Android 6.0 and must implement Smart Lock for Passwords in applications that authenticate users. In addition, unsupported functionality needs to be moved to a separate library that is loaded with the installed applications but is not accessible in the Instant Apps.
The most time-consuming task to complete is doubtlessly the modularization of the existing code base. To make sure that separate features can be instantly accessed, the code needs to be split up into a single base module and several feature modules. Each of the feature modules has to be able to run in conjunction with the base module but independently from the other feature modules. Development teams refactoring their applications in this way will face the daunting task of manually mapping and disentangling the dependencies in their source code.
Another factor to consider is the size limit Google imposes. The size of any module plus the base module must be less than 4 MB to ensure fast load times. Development teams will typically use a shrinking and optimization tool like our open source software ProGuard to work as efficiently as possible within the set constraints. The downside of this approach is that ProGuard is far less effective when it is used to process and optimize separate features instead of the entire code base.
The latest release of DexGuard, our advanced security solution for Android applications, includes new functionality to make Instant App development much easier. The new functionality leverages the dependency analysis capabilities of DexGuard to automatically compartmentalize Android applications while they are built. This automated process takes minutes instead of weeks. It enables you and your team to convert your existing applications with minimal manual effort.
The use of DexGuard has other advantages. It will help you to avoid the overhead caused by maintaining and improving a fragmented code base. With DexGuard, you can continue to work with your original code base. Using DexGuard, you will also manage to create more performant Instant Apps. DexGuard can optimize and shrink your applications more thoroughly as it processes the entire code instead of separate modules. This results in smaller and more user-friendly features. Finally, DexGuard provides all the functionality (multiple layers of code hardening and multiple runtime protection mechanisms) you need to protect your installed apps and Instant Apps from reverse engineering and hacking.