The Challenge
A major Swiss bank needed to maintain a pension 3a mobile app serving roughly 150,000 active users on both iOS and Android. The constraint: a small engineering team — just two developers — responsible for shipping reliable updates across both platforms.
Matthias Ernst and Marc Rymann from Ernst & Conte led the engagement. The goal was straightforward: deliver more with less, without compromising the quality a regulated financial product demands.
Why Kotlin Multiplatform
Managing two separate codebases with a two-person team created predictable problems — duplicated logic, inconsistent behaviour between platforms, and a testing effort that scaled poorly.
We started by sharing business logic through Kotlin Multiplatform (KMP) while keeping platform-specific UIs. Once that proved stable, we extended the approach to the presentation layer with Compose Multiplatform, consolidating the app into a single codebase that targets both iOS and Android.
An Incremental Migration
We did not rewrite the app overnight. The migration followed a deliberate, screen-by-screen approach:
- Build a single proof-of-concept screen in Compose Multiplatform.
- Validate it in production alongside existing native screens.
- Migrate the next screen. Repeat.
Each iteration simplified the codebase and reduced the surface area for platform-specific bugs.
Measurable Results
The impact was concrete:
- Faster feature delivery. Implement once, ship to both platforms. Development cycles shortened significantly.
- Fewer bugs. A single source of truth eliminated the inconsistencies that come with maintaining parallel implementations.
- Better collaboration. One codebase removed the iOS/Android silo. Code reviews, architecture decisions, and knowledge sharing all improved.
What We Learned
Two takeaways that apply to any KMP migration:
- Start small and validate early. Pick a low-risk screen, prove it works in production, then expand scope. Trying to migrate everything at once introduces unnecessary risk.
- Refactor continuously. Each migrated screen is an opportunity to clean up technical debt. Take it — the long-term maintainability gains compound.
Beyond This Project
The same approach applies to other mobile products. Teams across the industry are adopting KMP to share logic, data models, and increasingly UI components across platforms. For organisations running lean engineering teams, the reduction in duplicated effort is substantial.
What Comes Next
The migration is ongoing. Our target is full code sharing — eliminating the remaining native components as Compose Multiplatform matures. The same shared codebase will eventually extend to the web application, further consolidating the delivery pipeline.
Key Takeaway
Kotlin Multiplatform allowed a two-person team to maintain a production app for 150,000 users across two platforms — with faster delivery, fewer defects, and a simpler codebase. For teams facing similar constraints, it is worth evaluating seriously.
Interested in exploring Kotlin Multiplatform for your project? Get in touch for an initial assessment.