What problem does it solve?
Provides practical patterns and guidance to build consistent, reusable UI across Android, iOS, Desktop, and Web using Compose Multiplatform and Jetpack Compose, reducing duplication, lifecycle bugs, and platform-specific divergence.
Core Features & Use Cases
- State management: Single immutable state objects exposed via StateFlow and managed in ViewModel for predictable UI updates.
- Navigation: Type-safe route objects and dialog/bottom-sheet overlay patterns for clear navigation flows across platforms.
- Composable design & theming: Slot-based APIs, proper modifier ordering, and Material 3 dynamic theming for reusable design systems.
- Performance: Stability annotations, correct use of keys in lazy lists, derivedStateOf to defer reads, and allocation avoidance in recomposition.
- KMP platform integration: expect/actual composables for platform-specific UI needs while keeping shared logic in commonMain.
- Use Case: Implement a cross-platform item list screen with a shared ViewModel, platform-specific status bar handling, and consistent theming across Android, iOS, Desktop, and Web.
Quick Start
Add a single-screen ViewModel exposing a StateFlow, collect it in your composable with collectAsStateWithLifecycle, and use expect/actual for any platform-specific composables.