Compose Multiplatform
JetBrains extension of Jetpack Compose for Kotlin Multiplatform. Write shared UI code in Compose that runs on Android, iOS, Desktop (JVM), and Web (Wasm). Share not just business logic but also UI components across platforms. Uses the same @Composable function model as Jetpack Compose — Android Compose knowledge transfers directly. iOS support reached stable status in 2024.
Score Breakdown
⚙ Agent Friendliness
🔒 Security
UI framework — no direct security surface. JetBrains maintains. Platform-specific security handled by each target runtime.
⚡ Reliability
Best When
You want shared UI across Android + Desktop (macOS/Windows/Linux) with a single Kotlin codebase and are willing to accept CMP's iOS maturity trade-offs.
Avoid When
You need strict iOS native look-and-feel or Flutter-level web support — CMP's iOS and Web targets are newer and less proven than Android.
Use Cases
- • Build agent control panels and dashboards that run on both desktop (JVM) and Android with shared Compose UI code
- • Create cross-platform agent admin UIs (Android + iOS + Desktop) from a single Kotlin codebase using shared composables
- • Build Compose Desktop apps for AI agent tooling and debugging UIs that need to run on macOS, Windows, and Linux
- • Use CMP's iOS support to share agent UI components between Android and iOS, reducing platform-specific UI code
- • Write agent documentation and interactive tool demos as Compose Web (WASM) applications running in the browser
Not For
- • Web-first applications — Compose Web (WASM) is still early; Flutter or React is more mature for production web apps
- • Teams requiring platform-native look and feel on iOS — CMP renders with Skiko (Skia), not native UIKit; Material Design UI may not meet iOS HIG guidelines
- • Android-only projects — Jetpack Compose is the right choice for Android-only without multiplatform overhead
Interface
Authentication
UI framework — no authentication. Auth is application-layer concern.
Pricing
JetBrains open source project. Apache 2.0 license.
Agent Metadata
Known Gotchas
- ⚠ CMP iOS requires Kotlin/Native compilation — build times are significantly longer than Android (5-15 min for iOS vs 1-3 min for Android); CI pipelines must account for this
- ⚠ expect/actual pattern required for platform-specific APIs — file pickers, camera access, notifications all need platform implementations; 'no magic' cross-platform API for system features
- ⚠ Compose Desktop uses JVM thread model not coroutines-native — UI updates must happen on Swing's EDT (Event Dispatch Thread); use withContext(Dispatchers.Main) to dispatch UI updates
- ⚠ iOS Compose target uses UIKit ViewController as root — integrating CMP composables into existing native iOS apps requires ComposeUIViewController; full iOS replacement is simpler
- ⚠ Web (WASM) target is experimental — APIs may break between CMP versions; production web use requires careful version pinning and testing
- ⚠ Third-party Jetpack Compose libraries (Coil, accompanist) may not have CMP versions — check library support matrix before assuming Android Compose libraries work on Desktop/iOS
Alternatives
Full Evaluation Report
Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for Compose Multiplatform.
Scores are editorial opinions as of 2026-03-06.