Stop Recomposing the Whole Screen: State Hoisting in Jetpack Compose
A single mutableStateOf at the top of your composable tree causes full-screen recomposition on every keystroke. Hoisting state to the narrowest common ancestor narrows recomposition scope, enables stateless previews, and keeps unidirectional data flow honest.