Android · Kotlin · Compose · Architecture

Mastering Android

In-depth tutorials, deep dives, and field notes on shipping production Android apps — from a 14+ year engineering veteran.

Jetpack Compose Coroutines & Flows Clean Architecture Testing System Design Performance

Featured

Latest

Jetpack Compose

Compose Side Effects

Composable functions should be pure — but real apps need side effects. This guide covers every effect handler with precise keyword identification: Lau...

Jetpack Compose

Compose Navigation

Compose Navigation replaces Fragment-based navigation with code-first, type-safe routes. This guide covers NavHost and NavController, string routes an...

Jetpack Compose

Compose ConstraintLayout

ConstraintLayout in Compose is a power tool for complex interdependent layouts — not a default choice. This guide covers setup, createRef/createRefs, ...

Jetpack Compose

Compose Layouts

Column arranges vertically, Row horizontally, Box stacks, LazyColumn handles lists. This guide covers every layout composable with precise keyword ide...

Jetpack Compose

Compose State Management

State drives Compose — when state changes, UI updates automatically. This guide covers mutableStateOf and optimised variants, remember vs rememberSave...

Jetpack Compose

Jetpack Compose Basics

Jetpack Compose is Android's declarative UI toolkit — functions replace XML, state triggers automatic re-rendering. This guide covers composable funct...

Architecture & Patterns

Android ViewModel

ViewModel survives rotation — but how? This guide covers the internals (ViewModelStore, ViewModelProvider, NonConfigurationInstance), ViewModel lifecy...

Android Core

Android Launch Modes & Back Stack

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,...

Android UI

Android ViewBinding vs DataBinding

Both solve findViewById crashes, but they're very different. ViewBinding is lightweight with type-safe View access. DataBinding lets you bind data dir...

Android UI

Android Custom Views

When built-in Views aren't enough, build your own. This guide covers three approaches (extend, compound, fully custom), the @JvmOverloads constructor ...

Android UI

Android Material Design Components

Material Components give you production-quality, themed widgets out of the box. This guide covers setup with Material3 theme, TopAppBar with collapsin...