The engineering notebook
RSS feedAndroid
Articles, practical guides, and engineering notes on Android.
By Ashish Bhakhand 108 published articles
Explore the articles
18 articles
Reset filtersOffline-First Android Data with Room and Supabase
Render from local truth, synchronize explicitly, and model freshness and conflicts instead of hiding them.
Room Versus DataStore: Choose Storage by Data Shape
Use DataStore for preferences and Room for relational, queryable, migratable application data.
Hilt Versus Koin: Why Compile-Time Dependency Validation Matters
Choose dependency injection by failure mode, graph visibility, startup cost, and the team's need for Android integration.
Predictable Compose Recomposition with State Hoisting
Control ownership, stability, derived values, and list identity before reaching for premature performance tricks.
Keeping Compose Screens Free of Network and Storage Work
Let composables describe UI while ViewModels and repositories own effects, retries, and persistence.
StateFlow and Immutable UI State in Compose
Expose one lifecycle-aware state stream and update it atomically as asynchronous work completes.
Designing State, Intent, and Side-Effect Contracts in Kotlin
Give Compose features an explicit vocabulary for durable UI state, user input, and one-time work.
MVI Versus MVVM for Complex Health Application State
Use a single state and explicit events when screens combine permissions, synchronization, local data, remote data, and navigation.
How I Structure a Production Jetpack Compose Application
Organize Android code by feature while keeping UI, state, storage, health, and network responsibilities visible.