Android 17 Is Here — Compose-First, Adaptive-First, AppFunctions, and What Breaks at SDK 37
Android 17 (Cinnamon Bun, API 37) landed June 16, 2026 — and it's the most opinionated release in years. Google isn't just shipping features; it's lay...
Android · Kotlin · Compose · Architecture
In-depth tutorials, deep dives, and field notes on shipping production Android apps — from a 14+ year engineering veteran.
Android 17 (Cinnamon Bun, API 37) landed June 16, 2026 — and it's the most opinionated release in years. Google isn't just shipping features; it's lay...
The 30 most commonly asked Kotlin interview questions with clear answers and code examples. Covers basics (val/var, null safety, string interpolation)...
Android 16 (API level 36) is less about new UI features and more about making app behavior predictable and reliable. It introduces refinements in navi...
Composable functions should be pure — but real apps need side effects. This guide covers every effect handler with precise keyword identification: Lau...
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/createRefs, ...
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 rememberSave...
Cold means nothing runs until you collect. Hot means values exist independently of collectors. This guide gives you the complete mental model in one p...
Jetpack Compose is Android's declarative UI toolkit — functions replace XML, state triggers automatic re-rendering. This guide covers composable funct...
ViewModel survives rotation — but how? This guide covers the internals (ViewModelStore, ViewModelProvider, NonConfigurationInstance), ViewModel lifecy...
Launch modes control how Activities are created and placed in the back stack. This guide covers all five launch modes with visual back stack diagrams,...
Both solve findViewById crashes, but they're very different. ViewBinding is lightweight with type-safe View access. DataBinding lets you bind data dir...
When built-in Views aren't enough, build your own. This guide covers three approaches (extend, compound, fully custom), the @JvmOverloads constructor ...
Material Components give you production-quality, themed widgets out of the box. This guide covers setup with Material3 theme, TopAppBar with collapsin...