Page 2 of 5 — browse earlier tutorials on Android development, Kotlin, Jetpack Compose, and Flutter.
Fix the Jetpack Compose bottom navigation back stack problem with popUpTo, saveState, and restoreState — plus sealed class routes, nested graphs, and a Nav2 vs Nav3 comparison.
The real-world Jetpack Compose dark mode implementation: three-way user override, ViewModel persistence across restarts, AppCompatDelegate sync for XML views, and a custom brand color system beyond M3's 30 roles.
CameraX 1.6's Feature Group API lets you check if camera feature combinations work before enabling them. No more crashing when you try to combine HDR with 60 FPS on unsupported devices.
Every Flutter screen has three states: loading, error, success. Most apps get this wrong. Here's the production pattern I use with Riverpod — including the mistakes I shipped and what I do differently now.
Skip the Activity recreate hack. Use Android 13's per-app language API with an AppCompat backport — switch languages at runtime in Compose without losing state.
I've built production screens with all four layout types. Row, Column, and Box handle 90% of cases — but knowing when to reach for ConstraintLayout saves you from nested layout nightmares.