Settings
Display
← blog

How I migrated my personal apps to KMP without losing control

Migrating an existing Android app to KMP isn’t a weekend job. It’s an iterative process worth planning well.

Where to start

The first thing I shared was the networking layer. Ktor in commonMain replaced Retrofit on Android, and on iOS it saved me from writing all the networking by hand with URLSession.

What not to share

The UI. Each platform has its own design language, its own conventions. Forcing a shared UI between Compose and SwiftUI would have been worse than keeping them separate.

The result

After three iterations, I have a KMP project where 60% of the code is in commonMain. Business logic, data models, and API access are written once. Native UIs benefit from that shared base without compromising anything.