KMP vs CMP — most developers mix up these two, thinking they're just different names for the same cross-platform idea. They're not. One shares logic only. The other shares your entire interface. Get this wrong and you build the wrong architecture.
KMP: Share Logic, Keep Native UI
Kotlin Multiplatform (KMP) targets duplicated business logic — APIs, validation, caching, repos, domain rules, state management.
Typical shared module:
- API clients and networking
- Database schemas/queries
- Repositories and use cases
- Shared state (not Android ViewModels directly)
UI stays native: Android uses Compose/XML, iOS uses SwiftUI/UIKit. Each platform handles navigation, gestures, accessibility.
KMP feels safe — big reuse, zero platform sacrifice.
CMP: Share Logic + UI
Compose Multiplatform (CMP) extends sharing to the interface itself. Write composables once, run on Android, iOS, desktop, web.
CMP project structure:
- Shared logic module
- Shared Compose UI module
- Thin platform host apps
Login screens, settings, onboarding — implement once. No parallel SwiftUI/Compose work.
CMP = Jetpack Compose generalized. Deep Kotlin integration, but still needs platform code for notifications, permissions, camera.
The Real Decision Framework
Choose KMP when:
- Platform-perfect UX matters
- Heavy native integrations
- Separate Android/iOS teams
- Mature apps with established UIs
Choose CMP when:
- Speed > polish
- Uniform UX across platforms
- Small teams, limited resources
- New apps or internal tools
CMP builds on KMP — not versus. Start with logic sharing, add UI later.
Why Teams Pick One Over the Other
KMP-only teams avoid UI unification to preserve native feel and leverage existing skills.
CMP teams cut dev time dramatically — one design system, one bugfix path, easier hiring (Kotlin everywhere).
No universal winner. Matches your product priorities.
The 2026 Path Forward
KMP is production battle-tested. CMP iOS/desktop maturing fast.
Trend: One product, multiple shells. Logic always shared. UI sharing optional.
Ask yourself: Share brain only, or brain + face? Your answer reveals your architecture philosophy.