Android & Kotlin Technical Articles

Detailed articles on Android development, Jetpack Compose internals, Kotlin coroutines, and open source library design by skydoves, Google Developer Expert and maintainer of Android libraries with 40M+ annual downloads. Read practical guides on Retrofit, Compose Preview, BottomSheet UI, coroutine compilation, and more.

Exclusive Articles
RSS

This is a collection of private or subscriber-first articles written by the Dove Letter, skydoves (Jaewoong). These articles can be released somewhere like Medium in the future, but always they will be revealed for Dove Letter members first.

Kotlin KSP Internals: How Your Annotations Become Generated Code

If you use Jetpack Room, every @Dao interface turns into a full database implementation. If you use Hilt, every @Inject constructor gets wired into a dependency graph. If you use Moshi, every @JsonClass generates a JSON…

ArchitectureKotlin
Wednesday, April 1, 2026
Activity Lifecycle Internals: How the Framework Drives onCreate/onResume/onDestroy

Every Android developer has overridden onCreate(), onResume(), and onDestroy(). You write your initialization logic, register listeners, and clean up resources, trusting that the framework will call these methods at the…

ArchitectureAndroid
Sunday, February 15, 2026
WorkManager Internals: How Guaranteed Background Work Actually Works, and Why Service Can't

Android's WorkManager has become the recommended solution for persistent, deferrable background work. Unlike transient background operations that live and die with your app process, WorkManager guarantees that enqueued…

CoroutinesArchitectureKotlin
Thursday, February 12, 2026
Scalable API Response Handling Across Multi Layered Architectures with Sandwich

Modern Android applications commonly adopt multi layered architectures such as MVVM or MVI, where data flows through distinct layers: a data source, a repository, and a ViewModel (or presentation layer). Each layer has…

CoroutinesNetworkArchitecture
Sunday, February 8, 2026
Shared Internals: Kotlin's New Proposal for Cross-Module Visibility

Kotlin's internal visibility modifier provides a useful mechanism for hiding implementation details within a module while exposing a clean public API. But as codebases grow and libraries modularize, a tension emerges:…

ArchitectureKotlin
Saturday, January 31, 2026
Exploring the Internal Mechanisms of Landscapist Core

Landscapist Core is a standalone image loading engine built from scratch for Kotlin Multiplatform. Unlike Landscapist's wrappers around Coil, Glide, and Fresco, Landscapist Core handles fetching, caching, decoding, and…

CoroutinesArchitectureKotlin
Sunday, January 18, 2026
Breaking down the ViewModel's Internal Mechanisms and Multiplatform

Android's ViewModel has become an essential component of modern Android development, providing a lifecycle-aware container for UI-related data that survives configuration changes. While the API appears simple on the…

Kotlin MultiplatformCoroutinesArchitecture
Tuesday, January 6, 2026
Explore internal mechanisms of Retrofit, and how it works

Making REST API calls has been a fundamental requirement in Android development, yet the complexity of managing HTTP requests, serialization, error handling, and thread management has long been a persistent challenge.…

NetworkArchitecture
Monday, November 24, 2025
An Exploration of the Internal Mechanism of Crossfade Composable

In Jetpack Compose, Crossfade provides a simple and declarative way to animate the transition between two different UI states. When the targetState passed to it changes, it smoothly fades out the old content while…

ComposeArchitectureKotlin
Sunday, September 28, 2025
derivedStateOf Internals: The Cost of Observation / Why derivedStateOf is expensive?

The derivedStateOf API in Jetpack Compose provides a convenient mechanism for creating memoized state that automatically updates when its underlying dependencies change. While essential for performance optimization in…

ComposeArchitectureKotlin
Sunday, September 28, 2025
A Study of the Jetpack Compose SlotTable Internals

The SlotTable is the in-memory data structure that represents the UI tree of a Jetpack Compose application. Instead of a traditional tree of objects, it's a highly optimized, flat structure designed for extremely fast…

ComposeArchitectureAndroid
Sunday, September 28, 2025
Internal mechanisms of Lazy

Kotlin provides a very useful delegate: lazy. The lazy function creates a property whose value is computed only on its first access and then cached for all subsequent calls. While the public API is super simple, a deep…

Architecture
Sunday, September 28, 2025
The Internal Mechanism of snapshotFlow

In the Jetpack Compose ecosystem, state is typically consumed synchronously. A composable function reads a State<T> object during recomposition to get its current value. However, many modern Android architectures are…

Architecture
Sunday, September 28, 2025

Like what you see?

Subscribe to Dove Letter to get weekly insights about Android and Kotlin development, plus access to exclusive content and discussions.