What problem does it solve? Jetpack Compose screens that use collectAsState() keep collecting flows while the app is backgrounded, wasting CPU and battery, and composables that accept Flow<T> parameters block skipping and recompose on every emission. This Skill migrates those patterns to lifecycle-aware, conflated collection. ## Core Features & Use Cases - Lifecycle-aware migration: Replaces every collectAsState() with collectAsStateWithLifecycle() from androidx.lifecycle:lifecycle-runtime-compose, with guidance on minActiveState (STARTED vs RESUMED). - High-frequency flow tuning: Applies .conflate() and .distinctUntilChanged() inside remember for sensor, location, and websocket streams emitting faster than ~100 ms. - Antipattern removal: Hoists Flow<T> parameters out of composables so callers collect once and pass resolved values, and uses snapshotFlow for State-to-Flow bridges like analytics on visible list items. - Use Case: A user reports battery drain when a chat screen sits in the recents tray; the Skill audits all collectAsState calls, migrates them, and verifies via logcat that upstream work stops when backgrounded. ## Quick Start Ask the assistant to audit this Compose module for collectAsState usage and migrate every flow collection to collectAsStateWithLifecycle with proper conflation.