jetpack-composelisted
Install: claude install-skill eric-sabe/engsys
# Jetpack Compose
Build and review Android UIs with Jetpack Compose targeting the current Compose
BOM (2025.x) and Material 3. Composables are pure descriptions of UI for a given
state; the runtime re-invokes them (recomposes) when the state they read
changes. Treat composition as a function of state, keep composables side-effect
free except through the official effect APIs, and hoist state so UI is testable
and reusable. This is Android's analogue of declarative SwiftUI.
## Contents
- [Composition Model](#composition-model)
- [State and remember](#state-and-remember)
- [State Hoisting](#state-hoisting)
- [derivedStateOf](#derivedstateof)
- [Recomposition Pitfalls](#recomposition-pitfalls)
- [Side-Effect APIs](#side-effect-apis)
- [Collecting Flows](#collecting-flows)
- [Stability and Performance](#stability-and-performance)
- [Material 3](#material-3)
- [ViewModel Integration](#viewmodel-integration)
- [Common Mistakes](#common-mistakes)
- [Review Checklist](#review-checklist)
## Composition Model
- A `@Composable` function emits UI. It may run often, in any order, in parallel,
and be skipped. **It must be idempotent and free of side effects.**
- Never mutate external state, perform IO, or launch work directly in the body of
a composable. Use the effect APIs for anything that must happen *as a result*
of composition.
- Recomposition is driven by reads of *snapshot state* (`State<T>` /
`MutableState<T>`). Reading a state value subscribes that composition scope to