19 Claude AI skills for Kotlin Multiplatform (KMP) & Compose Multiplatform (CMP): architecture, networking, UI, testing, migration & build tooling for Android and iOS.
Best practices for implementing ViewModels in KMP/CMP. ViewModel is now KMP-compatible via org.jetbrains.androidx.lifecycle. Covers StateFlow for UI state, SharedFlow for events, and platform differences in lifecycle-aware collection.
Expert guidance on setting up and maintaining a modern Kotlin Multiplatform (KMP) + Compose Multiplatform (CMP) application architecture. Use when asked about project structure, KMP module setup, Koin DI, or cross-platform clean architecture.
Guidance on implementing the KMP Data Layer using the Repository pattern, SQLDelight (relational), MultiplatformSettings (key-value), and Ktor Client (remote) with offline-first synchronization.
Authoritative rules and patterns for production-quality Kotlin Coroutines on Android. Covers structured concurrency, lifecycle integration, and reactive streams. Android-specific — for KMP shared coroutines patterns see kotlin-concurrency-expert.
Expert guidance on setting up and using Ktor Client for type-safe HTTP networking in KMP. Covers client configuration, platform engines, ContentNegotiation with kotlinx.serialization, authentication, error handling, and Koin integration.
Kotlin Coroutines review and remediation for KMP and Android codebases. Use when asked to review concurrency usage, fix coroutine-related bugs, improve thread safety, or resolve scoping issues in any Kotlin code (commonMain, androidMain, iosMain).
Expert guidance on setting up and using Koin for dependency injection in KMP projects. Covers commonMain module definitions, platform-specific modules, ViewModel injection, iOS initialization, and migration from Hilt to Koin.
Expert guidance on when and how to use Kotlin Multiplatform expect/actual declarations vs interface + Koin DI. Use when implementing platform-specific functionality, deciding where platform code belongs, or resolving compilation errors in KMP source sets.
Guide and execute the migration of asynchronous code from RxJava to Kotlin Coroutines and Flow. Use this skill when a user asks to convert RxJava (Observables, Singles, Completables, Subjects) to Coroutines (suspend functions, Flows, StateFlows).
Convert Android XML layouts to Jetpack Compose. Use when asked to migrate Views to Compose, convert XML to Composables, or modernize UI from View system to Compose.
Audit and improve Compose Multiplatform (CMP) runtime performance from code review and architecture. Use when asked to diagnose slow rendering, janky scrolling, excessive recompositions, or performance issues in shared or Android Compose UI.
Debug and optimize Android/Gradle build performance. Use when builds are slow, investigating CI/CD performance, analyzing build scans, or identifying compilation bottlenecks.
Production-ready scripts for Android app testing, building, and automation. Provides semantic UI navigation, build automation, log monitoring, and emulator lifecycle management. Optimized for AI agents with minimal token output.
Comprehensive KMP testing strategy. Covers commonTest with kotlin.test + Turbine for shared logic, androidTest with Compose test rules and Roborazzi screenshot tests, and iOS snapshot testing guidance.
Implement type-safe navigation in Compose Multiplatform using the JetBrains Navigation Compose Multiplatform library. Use when setting up navigation, passing arguments, handling deep links, or structuring multi-screen KMP apps.
Expert guidance on using Coil 3 for image loading in Compose Multiplatform. Use when asked about loading images from URLs, handling image states, or optimizing image performance in CMP (Android + iOS).
Best practices for building UI with Compose Multiplatform (CMP), focusing on state hoisting, performance optimizations, and theming. Shared composables live in commonMain. Use this when writing or refactoring Composable functions in KMP/CMP projects.
★not rated 2 2mo agoA55 tokens
At most 3 mods per repository are shown here, and a mod shipped inside a plugin is left to that plugin's page — the rest are on their repository pages: