Defines a clear pattern for Jetpack Compose screens: keep state collection, ViewModel wiring, navigation, and side-effect handling in a small state-holder composable, and place pure layout and rendering in UI composables that accept plain immutable state and callbacks. This reduces coupling to lifecycle, DI, and navigation, making UI code previewable and easier to test.
Apply this when a screen currently mixes ViewModel or component collection with layout, when UI previews are hard to write, when tests must build the full app graph to validate simple layout branches, or when you want to make composables reusable across platforms (Android, Desktop, TV, KMP).
Agents that assist with Kotlin/Compose development (Copilot-style or code-aware LLMs) will find this useful; the content expects understanding of Compose, coroutines, and testing patterns.
This skill has not been reviewed by our automated audit pipeline yet.