Modern Android UI — composables, state management, navigation, and performance
Compose is fast by default — but easy to make slow accidentally. This guide covers how smart recomposition and skipping work, stable vs unstable...
Theming in Compose uses Kotlin objects and CompositionLocal instead of XML styles. This guide covers MaterialTheme setup, ColorScheme with 30 semantic...
Should you use Compose or XML? This guide gives an honest comparison (15-feature table), where Compose wins (less boilerplate, declarative state, prev...
Why does my composable recompose when nothing changed? Why doesn't it recompose when I expect it to? This guide covers the Composition lifecycle (ente...
Composable functions should be pure — but real apps need side effects. This guide covers every effect handler with precise keyword identificatio...
Compose Navigation replaces Fragment-based navigation with code-first, type-safe routes. This guide covers NavHost and NavController, string routes an...
ConstraintLayout in Compose is a power tool for complex interdependent layouts — not a default choice. This guide covers setup, createRef/create...
Column arranges vertically, Row horizontally, Box stacks, LazyColumn handles lists. This guide covers every layout composable with precise keyword ide...
State drives Compose — when state changes, UI updates automatically. This guide covers mutableStateOf and optimised variants, remember vs rememb...
Jetpack Compose is Android's declarative UI toolkit — functions replace XML, state triggers automatic re-rendering. This guide covers composable...