The Making Of Makaan Android Instant App

In general, the native app offers a better user experience than web and we wanted to provide the best experience to our consumers. Our data show that native mobile apps give a lot better conversion rate than mobile web, so instant app became a natural choice for us and we were extremely excited when Google announced the Software Development Kit (SDK) in 2017 I/O.

The execution

With originalAPK size of ~7.2MB, we started our journey by breaking the app into logical feature modules. Based on our analytics data, we concluded that most of our mobile web users are looking for their desired home and want to connect with relevant sellers/agents as quickly as possible. In order to make user experience as smooth as possible, we decided to create the base feature module with all of our core search & discovery components. We didn’t want to leave anything related to search & lead dropping experience out of the Instant app. The instant app APK contains only the base feature module, rest of the heavier components like user account & a guided camera view feature we reseparated out in respective library modules to be only packaged with installable APK. This decision helped us in moving some auth SDKs like Facebook& some heavy assets to installable APK.

Optimising APK size to bring it down below 4MB mark- after refactoring our
code-base in feature modules, instant app size was down to 5MB.

  • We used APK analyser to see and carefully check which component could be optimised to reduce the APK size.
  • Major optimisation came from image assets, we converted all the required icons to webpformat which reduced the apk size further. We also identified and moved all heavy assets to a remote store to be fetched and cached at runtime.
  • We were using an external font which was packed with the APK and was costing us 300KB. We decided to remove the existing font and use Robo-electric which was available out of the box.
  • We re-configured our APK only for Englishlanguage support. This also helped us in reducing the APK size.
  • We removed few third-party libraries and used our own solution instead. This is one of the important points while building an Instant app, we should use our own in-house solution as much as possible.
  • All these optimisation resulted in instant app size of ~3.1MB.

We did it!

We started getting around 2.5X conversion on compared to mobile web. As a result of instant app release, we also witnessed improvements in app installations.

Not a rosy path

There were a few issues and minor in nature. First and foremost, we use a view binding library butterknife. Though the library is beautiful but the existing version was not compatible with feature modules. Luckily a compatible version was released soon & we were back on track. Support for fabric crashlytics was also not there at the time of our release, so we decided not to use it in instant app for the time being.

Envisaging the future

  • We are exploring a more efficient serialisation technique instead of JSON that will not only save the user’s network bandwidth but also result in faster loading & less memory consumption.
  • We will be integrating SMSRetriver for frictionless lead dropping experience and better conversion. Asking less permission to do the same task is always better.