Compose Multiplatform is a declarative UI framework from JetBrains that enables building native applications with shared UI code across Android, iOS, desktop (Windows, macOS, Linux), and web. Based on Jetpack Compose, it uses Kotlin as its foundation and provides a unified approach to cross-platform development without compromising native performance. Unlike traditional cross-platform solutions, Compose Multiplatform allows developers to share UI composables directly across platforms while offering full interoperability with native code when needed — you can embed UIKit views on iOS, AndroidView components on Android, and access platform-specific APIs through expect/actual declarations. The framework renders natively on each platform using Skia on iOS/desktop and the native canvas on Android, ensuring smooth 60fps+ performance. One critical insight: platform-specific customization is not a compromise but a feature — Compose Multiplatform shines when you leverage its ability to share core UI logic while tailoring the experience where it matters, making it ideal for teams seeking a single codebase without sacrificing platform fidelity.
What This Cheat Sheet Covers
This topic spans 20 focused tables and 111 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: Core Platform Targeting
The first decision in any Compose Multiplatform project is which platforms you compile for, and each target has a very different maturity level. Android and desktop JVM are rock-solid, iOS went stable in 2025 and renders through Skia, while the two web paths — Wasm and the legacy JS target — are still finding their footing. A single kotlin { } block declares them all, so it pays to know which ones are production-ready before you commit.
| Target | Example | Description |
|---|---|---|
kotlin { androidTarget()} | Full Jetpack Compose API support with Material 3 components, native performance, and seamless integration with existing Android Views via AndroidView. | |
kotlin { iosX64(); iosArm64(); iosSimulatorArm64()} | • Stable since Compose Multiplatform 1.8.0 (May 2025) • renders using Skia • supports UIKit interop via UIKitView for embedding native iOS components | |
kotlin { jvm("desktop")} | Targets Windows, macOS, and Linux with desktop-specific features like window management, menu bars, system tray, and file dialogs. |