← ClaudeAtlas

compose-multiplatformlisted

Compose Multiplatform / KMP patterns - expect/actual composables, platform-specific code, density and font handling cross-target, iOS/Android/Desktop interop.
AThevon/genjutsu · ★ 334 · Web & Frontend · score 79
Install: claude install-skill AThevon/genjutsu
> **Version-sensitive.** Every API name, SDK gate and browser-support claim below was > verified on **2026-09-08** against primary sources. What against, and when, is in > `_jutsu/VERSIONS.md`. If that date is old, re-verify before acting on a version number. # Compose Multiplatform > Compose Multiplatform (CMP) and Kotlin Multiplatform (KMP) patterns for cross-platform UI. > Loaded for projects with `org.jetbrains.compose` plugin. > Foundation: `../compose-motion/SKILL.md` for animation API; this file covers what's specific to writing one Compose codebase for Android + iOS + Desktop + Web. --- ## KMP vs CMP - quick clarification **KMP** (Kotlin Multiplatform) is the language and build infrastructure: shared Kotlin code compiled to JVM, Native (iOS, macOS, Linux, Windows), and Wasm. **CMP** (Compose Multiplatform) is the UI framework on top of KMP, built by JetBrains as a port of Jetpack Compose. You write a single Compose codebase in `commonMain` that runs on Android, iOS, Desktop (JVM), and Web (Wasm). Platform-specific code lives in `androidMain`, `iosMain`, `desktopMain`, `wasmJsMain` and is wired in via `expect`/`actual` declarations. --- ## Project structure ``` composeApp/ ├── src/ │ ├── commonMain/ ← shared Compose code (most of the app) │ │ └── kotlin/ │ ├── androidMain/ ← Android-specific (uses Activity, Context) │ ├── iosMain/ ← iOS-specific (uses UIKit/UIView interop) │ ├── desktopMain/ ← JVM desktop (uses java.awt/