Key Takeaways: What’s Holding iOS Engineers Back From Kotlin Multiplatform Adoption
Building mobile apps for both iOS and Android is never easy, especially when teams work under tight deadlines. Many iOS engineers are still unsure about Kotlin Multiplatform (KMP), wondering if it’s the right choice for their projects. Managing multiple feature teams, keeping code quality high, and delivering updates quickly can be challenging when working across platforms.

In a recent webinar, we looked at how companies are solving these challenges and shared insights from Ryan Simon, Staff Engineer at Monzo, on how Kotlin Multiplatform can help teams move faster while keeping apps reliable.
Meet Ryan Simon
Ryan Simon is a Staff Engineer at Monzo, with over 8 years of experience in iOS development across fintech, consulting, and crypto projects. He joined Monzo to help teams work faster and deliver high-quality apps on both iOS and Android. In our webinar, Ryan shared his experience using Kotlin Multiplatform to simplify cross-platform development, organize multiple feature teams, and maintain code quality without slowing down delivery.
Why Did Monzo Choose Kotlin Multiplatform?
When Ryan joined Monzo, the team faced a common challenge: building apps for both iOS and Android without doubling the work. They needed a way for teams to move fast while keeping code quality high.
Ryan had previous experience with KMP and knew it could help.
KMP allows teams to share business logic across platforms, so developers don’t have to rewrite the same code for iOS and Android. The idea was simple: write once, use everywhere, while keeping the app flexible for platform-specific needs.
To measure success, Monzo tracked deployment frequency, lead time, and app performance. This way, they could see if KMP really helped speed up development while keeping the app smooth for users.
Q: What were the main challenges when adopting Kotlin Multiplatform for iOS and Android development?
Ryan: The main challenges were definitely related to adjusting to a new architecture and ensuring that our type-driven design approach worked smoothly across both platforms. At first, it felt like a big shift, especially for the iOS team who were used to fully native development. There were some initial hurdles around tooling, debugging, and cross-platform integration. But once we got the workflow in place, the advantages became very clear. The ability to reuse code across iOS and Android significantly reduced duplication and accelerated cross-platform mobile development. Over time, the benefits completely outweighed the initial learning curve.
Q: How did KMP impact the efficiency of your mobile development teams?
Kotlin Multiplatform transformed how we work. Before KMP, iOS and Android teams had to implement business logic separately, which meant twice the effort for the same feature. With KMP, we could write the business logic once and share it across both platforms. This not only boosted development efficiency, but it also made updates and maintenance much easier. We could focus more on platform-specific UI and UX, while the shared codebase handled the core functionality. Overall, it allowed our teams to ship features faster and maintain higher code quality without doubling the workload.
Q: What role did type-driven design play in your KMP implementation?
Type-driven design was critical for us. By clearly defining types and contracts in our shared Kotlin code, we were able to reduce errors and ensure consistent behavior across platforms. It acted as a safety net, especially in complex modules, and made our cross-platform development much more predictable. Without this structure, integrating shared code between iOS and Android would have been riskier and more prone to bugs. For us, type-driven design was the key to maintaining reliable and maintainable code in a multiplatform environment.
Q: Were there any trade-offs when using KMP compared to native development?
There are always trade-offs with any new technology. For KMP, the main trade-offs were the initial learning curve and the need for careful planning and testing. Certain platform-specific features still required native implementation, so we had to balance shared logic with platform-specific code. That said, the long-term benefits, like reduced development time, easier maintenance, and faster feature rollout across iOS and Android, made it worth the investment. The key is to approach KMP strategically, so you maximize code sharing without compromising platform performance.
Q: What advice would you give to teams considering Kotlin Multiplatform?
I’d say start small and experiment first. Try KMP on a module where sharing business logic makes sense, rather than attempting to convert an entire app at once. Use type-driven design to ensure code reliability and set up detailed automated testing from the start. Communication between iOS and Android teams is also crucial because shared code requires a common understanding of architecture and design principles. If you approach it carefully, Kotlin Multiplatform can drastically improve your cross-platform mobile development speed and overall team efficiency.
Key Takeaways
1. Overcoming iOS engineers’ hesitation
Many iOS engineers are hesitant to adopt Kotlin Multiplatform because they are used to native development and skeptical of cross-platform tools. Ryan emphasized that this resistance is natural, but businesses benefit significantly from KMP’s ability to integrate with existing native code without a full rewrite. The key is understanding that KMP allows teams to share code while keeping the native experience intact.
2. Embrace cross-platform skills
Ryan highlighted that modern mobile engineers need to expand their skill sets beyond a single platform. Learning KMP, along with other tools like Swift, React Native, or Flutter, not only boosts career opportunities but also helps teams meet the growing demand for cross-platform capabilities.
3. Focus on business logic sharing
Sharing business logic and some UI components between iOS and Android can speed up development and maintain consistency. Ryan shared examples from Monzo, showing how KMP helps with tasks like translations, accessibility, and expanding into new regions while keeping apps consistent across platforms.
4. Improved tooling makes adoption easier
While early adoption of Kotlin Multiplatform came with challenges, tooling has improved considerably. Ryan noted that Android Studio support has gotten better, and new Swift interoperability features are making it easier for iOS engineers to integrate KMP smoothly into existing projects.
5. Performance concerns are largely addressed
Concerns about performance, concurrency, and memory management are often raised, but Ryan confirmed that Kotlin Native has improved in these areas. In practice, the performance impact is minimal, making it a practical solution for production apps.
6. Compose Multiplatform is the future
Ryan and Aleksa agreed that Compose Multiplatform is a game-changer for building UI layers. Using Compose, teams can unify mobile and desktop development and explore server-side rendering or web applications via Kotlin/WASM. This approach allows for faster iteration and a more cohesive experience across platforms.
7. Adopt a use-case-driven approach for management buy-in
Convincing management to adopt KMP works best when you present clear use cases and proof-of-concepts. Showing the benefits in real-world scenarios, like shared screens, hybrid navigation, or faster development cycles, helps get leadership on board.
8. Career and team opportunities
Engineers who embrace KMP and Compose Multiplatform position themselves as leaders in cross-platform development. Teams that adapt to these technologies can build more scalable apps, while those resistant may risk falling behind in a competitive mobile development landscape.
9. Don’t fear rumors
Rumors about Apple restricting KMP apps or Google discontinuing Kotlin are largely unfounded. Ryan reassured attendees that financial incentives and industry adoption make such outcomes unlikely, so teams can confidently invest in KMP.
10. Take advantage of open resources
Ryan and Aleksa encouraged exploring open-source projects, templates, and community-driven resources. These tools help teams experiment with KMP, learn best practices, and reduce the learning curve for engineers new to cross-platform development.
Conclusion
Adopting Kotlin Multiplatform for iOS and Android development can feel challenging, especially when iOS engineers are hesitant to move away from fully native solutions. However, as shown in the webinar with Ryan Simon, the benefits of Kotlin Multiplatform for cross-platform mobile apps are clear and provide significant advantages over traditional approaches. By sharing business logic across iOS and Android, teams can speed up mobile app development while maintaining high code quality and consistent user experiences.
For mobile engineers, gaining experience in Kotlin Multiplatform for iOS developers is a smart career step. Expanding cross-platform mobile development skills beyond a single platform improves career prospects and helps teams meet the growing demand for cross-platform mobile app development. Improved tooling, type-driven design in Kotlin Multiplatform, and Compose Multiplatform make development more predictable, efficient, and easier to manage.
Teams planning to implement Kotlin Multiplatform in mobile apps should start small, experiment with modules, and use use-case-driven approaches to adopt Kotlin Multiplatform for management approval. Taking advantage of open-source projects and community resources reduces the learning curve and speeds up adoption. Embracing Kotlin Multiplatform and Compose Multiplatform not only improves cross-platform development for mobile engineers but also helps teams build high-quality, scalable apps for iOS and Android in a competitive mobile market.
Need Experienced Devs to Build Your App?


