Compose Gestures Deep Dive — pointerInput, Multi-Touch, and Conflict Resolution
The high-level gesture APIs in Compose make 80% of cases trivial. Then someone hands you a photo editor needing pinch-to-zoom, rotation, draggable lay...
All posts / Category
Modern Android UI — composables, state management, navigation, and performance
The high-level gesture APIs in Compose make 80% of cases trivial. Then someone hands you a photo editor needing pinch-to-zoom, rotation, draggable lay...
Every Android developer hits the wall the same way. You need a row of size chips that wraps to the next line. Row doesn't wrap. FlowRow almost works b...
The first Compose animation I shipped to production looked great in preview and catastrophic on a mid-range Samsung. Compose animations aren't hard be...
How does Compose know which composable reads which state? Through the Snapshot system. This guide explains what mutableStateOf creates (SnapshotMutabl...
Hilt generates all DI code at compile time — no reflection, no runtime errors. This complete guide covers the mental model, how Dagger generates...
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...