Jetpack Compose Articles

Kotlin Lambdas, Function References, and Compose: Verify Before Caching

(Updated on )
Separate Kotlin callback semantics, JVM lowering, and Compose memoization; check Strong Skipping and prevent stale captured handlers before adding remember.

Integrating On-Device AI Inference into Compose: State Machines, Lifecycle Isolation, and Streaming Rendering

A practical pattern for wiring on-device AI inference into Jetpack Compose: sealed-class state machines, lifecycle-safe coroutines, and frame-aligned streaming.

Unified Runtime Skinning for View and Compose with One Theme State

A unified architecture that shares one theme state across View and Compose, so runtime theme switching works seamlessly without recreating activities.

Forms Are Not UI—They Are State Machines

A practical Compose pattern for modeling forms as state machines: field state, form orchestration, dynamic lists, and cross-field linkage.

AnimatedVectorDrawable to Compose Vector Animation

How AnimatedVectorDrawable bridges ObjectAnimator to VectorDrawable nodes, and how Compose reuses the same AVD model.

Compose Dialog, Popup, and Window Focus

(Updated on )
Why a TextField inside a Dialog pushes the UI up but one inside a BottomSheet doesn't: a practical look at Compose overlays, Window focus, and IME behavior.

Inside Android Photo Picker: Privacy Sandbox Architecture and Compose Integration

A close look at Android Photo Picker's privacy-sandbox design, from cross-process URI permission grants to Compose declarative integration, covering single/multi-select, persistent permissions, and ROM compatibility.

Inside the Compose Compiler Plugin: From @Composable to Synthetic Parameters

How the Compose Compiler Plugin transforms @Composable functions at the IR level, covering $changed bitmasks, skip logic generation, state read/write markers, and stability inference rules.

Inside Jetpack Compose List Animations: From animateItem to Declarative Choreography

A practical walkthrough of animateItem internals, key stability, recomposition scoping, and frame-rate tuning for LazyColumn.

Android TV and Google TV Development: Leanback, D-Pad Focus, and Large-Screen UX

A TV-first Android engineering guide covering D-Pad interaction, Leanback architecture, focus management, remote-control events, and phone-to-TV adaptation.

Android Share Framework: ShareCompat, Chooser, and Dynamic Targets

An end-to-end look at Android sharing, from ShareCompat intent construction and Chooser target resolution to Direct Share dynamic targets and Compose integration.

Why Does Compose Recompose So Often? From Stability to State Read Placement

(Updated on )
A practical guide to frequent Jetpack Compose recomposition, including unstable parameters, where state is read, derivedStateOf misuse, and list item design.

What Is the Difference Between Glance and RemoteViews?

Explains how Android Glance AppWidget relates to RemoteViews, where they differ, when each fits, and how to think about migration.

Android AGSL RuntimeShader: From Skia Compilation to Compose Effects

A deep dive into Android AGSL RuntimeShader, including the AGSL-to-SkSL-to-GPU pipeline, uniform shader sampling, Compose integration, practical effects, and performance limits.

Android Glance AppWidget Deep Dive: RemoteViews and Compose Widgets

A deep dive into the full Android Glance AppWidget pipeline, from RemoteViews cross-process rendering and the Glance translation engine to Actions, update flows, and update strategy choices.

Kotlin Type-Safe Builders and DSL Design: Receivers, Scopes, and @DslMarker

Starting from a Compose nesting error, this guide explains Kotlin DSL design through lambda with receiver, @DslMarker scope control, Compose, Gradle KTS, and custom builders.

Android Architecture Evolution: From MVC Confusion to MVI in Compose

A practical walkthrough of Android architecture patterns from MVC and MVP to MVVM and MVI, with Compose-focused guidance for unidirectional data flow.

Compose and View Interop: AndroidView, ComposeView, and Two-Way State

A practical deep dive into Compose and View interoperability, including AndroidView, ComposeView lifecycle binding, state synchronization, focus, touch conflicts, and migration strategy.

Jetpack Compose Gestures: Pointer Input, Consumption, and Nested Scroll

(Updated on )
Build reliable Compose interactions by choosing the right gesture API, understanding pointer consumption, and coordinating nested scrolling.

Jetpack Compose Modifier Internals: From Modifier.Node to Layout and Drawing

A deep dive into the Compose Modifier chain, the shift from composed to Modifier.Node, how declarative modifier pipelines are built, and where performance gains come from.