Migration to Multiplatform in 3 Months. How to Build an iOS App with Shared Code Without Pausing Android Development

GetMega is a mobile and web app for online gaming and chatting. It was developed for Megashots Internet Private Limited. The app runs on iOS and Android.

Developed in 3 months

Budget: 3 million rubles

KMM migration



The customer was in the process of developing an Android app. The task was to make the app multiplatform and develop an iOS version without pausing Android development.



We analyzed the project and created a customized plan for KMM integration. Then we wrote code for the second platform with the integration in mind, so that the customer could add new features of the Android version into the shared code.

Development Process

What the customer wanted. Our customer is Megashots Internet Private Limited, an Indian company that owns a website for gaming and chatting.

Some states of India prohibit playing any games with cash prizes, so the sign up process on the website requires access to the user’s geolocation to determine the state they reside in. To solve this problem, the customer created the Android app.

Investors took interest in the project, and the customer quickly decided to create an iOS version as well. They chose KMM for development and reached to us for assistance. Multiplatforming would save development time and streamline maintenance of both platforms in the future, and we had the expertise to help with integrating it.

The development team. Two Android Developers, one iOS Developer, a Team Lead, and a Project Manager took part in the project on our side.

First, we laid down a migration plan. We began by analyzing the project and putting together a KMM migration plan. When we finish our part of the job, the customer will be able to use this plan to migrate new app features.

Then we transferred Android features to the iOS version. We started with the modules that didn’t contain any complex platform integrations or graphics: friend list, authorization, game history. We have extensive experience with building such modules, so migrating them took little time. Each module was migrated into the new design.

After we went over every feature that wasn’t being actively developed, we handed the project over to the customer.

We taught the customer how to migrate features. By the time we migrated all the existing features into the shared code, the customer had finished developing the module for ID and geolocation verification. With our guidance, they migrated the module into the multiplatform environment and got familiar with the process.

Here’s what we taught the customer:

  • our approach to architecture,
  • building Jetpack Compose layouts,
  • integrating multiplatform code on the iOS and Android sides,
  • setting up gRPC.
The customer planned to implement the main features — the games themselves — last and on both platforms at once.

The Hardest Part

Working with the gRPC client. Perfect integration required libraries capable of:

  • generating Kotlin classes for message models in the shared code,
  • generating Kotlin classes for the gRPC client in the shared code,
  • implementing these classes for iOS and Android out-of-the-box,
  • configuring the gRPC client from the shared code: input server address, authorization headers.
There were no appropriate solutions while we were working on this project. We’ve managed to find a single library that was almost good enough for us. It did not have all the necessary features, and it was implemented for Android only.

How we solved these tasks

We took the best available library and whipped it into shape on our own.

Technology Stack

Android on Jetpack Compose


We wrote the shared code for the iOS version with Android integration in mind. The existing features were transferred into the iOS app.

We taught the customer how to use multiplatform code with integrations on both platforms.

Now they can add new features to both platforms at once.


To collaborate with the customer’s team and migrate the existing features into the iOS version without pausing Android development.

KMM Migration Plan

To collaborate with the customer’s team and migrate the existing features into the iOS version without pausing Android development.


Let’s discuss your project!

It is free. We will tell you how the application will solve your problems.

Similar projects