Android notes · Topic

Jetpack Compose

State, recomposition, theming and widgets in Jetpack Compose.

MVVM Done Right: ViewModel Contracts, Side Effects, and Lifecycle

ArchitectureJetpack Compose

A beginner-friendly guide to building robust MVVM screens in Android with clear UI contracts, one-off side effects, and lifecycle-safe collection in Compose.

UI Layer in Practice: State, Events, and UDF in Compose

ArchitectureJetpack Compose

Learn how to structure a Compose UI layer with clear state, one-off events, and unidirectional data flow using practical BAD vs GOOD examples.

Android Testing: Unit + Compose (Bad vs Good Patterns for Real Apps)

TestingJetpack Compose

Learn beginner-friendly Android testing with practical BAD vs GOOD examples for ViewModel unit tests and Jetpack Compose UI tests.

Compose retain vs ViewModel: Practical Guide, Trade-offs, and Real Examples

Jetpack ComposeArchitecture

A detailed guide to Compose retain: what it solves, what it does NOT replace, and concrete scenarios where retain is better than creating a ViewModel.

Glance Widgets: Building Your First Android App Widget with Jetpack Compose

Jetpack Compose

Learn how to create modern Android widgets using Jetpack Glance — the declarative way to build app widgets with Compose.

Navigation Compose 3: Type-Safe Routing Done Right

Jetpack ComposeNavigation

Master Navigation Compose 3 with type-safe arguments, Serializable support, NavigationSuite for tablets, and the new routing patterns that make navigation effortless.

Material 3 Theming in Jetpack Compose

Jetpack Compose

Learn how to properly implement Material 3 theming in your Compose apps with dynamic colors, custom color schemes, and best practices.

Navigation Compose: Stop Fighting Your Router

Jetpack ComposeNavigation

A practical guide to Navigation Compose that will make your app flow feel natural. No more argument passing nightmares or navigation graph spaghetti.

Stop Recomposing Your List! LazyColumn Keys That Actually Work

Jetpack ComposePerformance

Learn how to use stable keys in LazyColumn to prevent unnecessary recompositions and boost your Compose UI performance.

Jetpack Compose: The One Mistake That's Killing Your LazyColumn Performance

Jetpack ComposePerformance

Stop unnecessarily recomposing your LazyColumn items! Learn how to use keys properly and avoid the most common performance pitfall in Compose lists.

Compose LazyColumn Stability Budget for User Directories

Jetpack ComposePerformance

Teach Compose to skip useless work by stabilizing your user list models, derived filters, and side effects.

Compose LazyColumn Without Leaks: Stabilize Side Effects

Jetpack ComposePerformance

How to keep a user directory fast by taming LazyColumn recomposition, stability, and coroutine side effects.

Stabilizing LazyColumn User Lists for Skip-Friendly Recomposition

Jetpack ComposePerformance

How to structure user lists in Jetpack Compose so LazyColumn can skip work and stay memory-safe.

remember vs rememberSaveable in Compose: When to Use Each

Jetpack Compose

Learn the difference between remember and rememberSaveable in Jetpack Compose and when each one prevents state loss during configuration changes.

Compose StateHolder vs ViewModel: When to Use Which

Jetpack ComposeArchitecture

Stop putting everything in ViewModel. Learn when to use local StateHolder (remember { ... }) vs when you need a ViewModel for proper lifecycle awareness.

Why Your LazyColumn Recomposes Everything: Understanding Item Stability in Compose

Jetpack ComposePerformance

Learn why your LazyColumn items keep recomposing and how to fix stability issues for smooth scrolling performance.

Compose Performance: It's Probably a Leak

Jetpack ComposePerformance

When 'Compose is slow' is actually GC jank: how to find and fix memory leaks with LeakCanary (and correct side-effect cleanup).

Jetpack Compose LazyColumn Performance: Stability, Keys, and Recomposition You Can Predict

Jetpack ComposePerformance

A beginner-friendly guide to speeding up Compose lists by fixing unstable models, adding stable keys, and avoiding accidental recompositions and side effects.

Compose Performance: Skipping & Stability (User List Edition)

Jetpack ComposePerformance

Why your User List janks: unstable lambdas break skipping. Learn the fix with remember + method references, with beginner-friendly comments.