Issue #718

March 15th, 2026
Articles & Tutorials
Sponsored
Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
Victor Brandalise demonstrates how to integrate the embedded system photo picker into a Compose UI using the photopicker-compose artifact.
Yabin Cui explains how the Android LLVM team applies AutoFDO to the kernel using real-world workload profiles for measurable performance gains.
Sponsored
Level up your Android projects with Tuist-powered Gradle cache, build and test insights, and previews. Runs anywhere: local, CI, or agentic workflows. No servers to host. No infrastructure to manage. Set up in minutes and start shipping faster.
Enrique Lopez Manas explains how to use the java-platform Gradle plugin to create a BoM that simplifies version management for multi-module Android libraries.
Shreyas Patil dives deep into how Jetpack Compose's CompositionLocal API works internally, tracing value holders, persistent scope maps, and snapshot-based recomposition tracking.
Matt McKenna introduces Dejavu, a test library that turns Jetpack Compose recomposition counts into assertable CI contracts without any production code changes.
Adit Lal introduces Rebound, a Kotlin compiler plugin that monitors Jetpack Compose recomposition rates against role-based budgets and surfaces violations in an IDE plugin.
Jan Rabe explains how to build a unified, promise-based WebView bridge that works identically on Android and iOS, eliminating platform-specific callback spaghetti.
Nav Singh walks through Material3 1.5.0-alpha15's unified LocalMaterialTheme CompositionLocal and how custom Modifier nodes can now read theme data directly.
Costa Fotiadis explores replacing ViewModel with Compose's retain API to create a composition-scoped, DI-friendly state holder without the pre-Compose baggage.
Maia Grotepass demonstrates building a Gemini CLI skill that automates Code Maat analysis to detect hotspots and logical coupling in an Android codebase.
Nguyen Van Minh and Rifqi Fahmi explain how Grab evolved their Android disk cache from LRU to a time-aware variant to reclaim device storage at scale.
Nguyen Van Minh walks through how Grab enabled full R8 optimization across a 9-million-line Android app using AI-assisted debugging techniques.
Arman Chatikyan explores Remote Compose, showing how to define and render Android UI from a server without WebViews or custom JSON schemas.
Kevin Schildhorn from Touchlab highlights standout KotlinConf 2026 sessions covering KMP, Compose Multiplatform, iOS integration, and Kotlin/JS.
Thomas Künneth explores how the familiar Jetpack library stack maps onto Kotlin Multiplatform for cross-platform development.
Marcello Galhardo walks through new Lifecycle ViewModel APIs that allow scoping ViewModels to arbitrary parts of the Compose UI hierarchy.
Place a sponsored post
We reach out to more than 80k Android developers around the world, every week, through our email newsletter and social media channels. Advertise your Android development related service or product!
Libraries & Code
Budget-based recomposition monitoring for Jetpack Compose. A Screen at 3/s. An Animation at 120/s. Zero config. Debug builds only.
A test-only library that turns Jetpack Compose recomposition behavior into assertable, automatable test expectations.
A Compose component that implements a snappy swipe-to-delete interaction inspired by Material 3 Expressive notifications.
News
Google announces cross-platform PC discovery, Game Trials, buy-once-play-anywhere pricing, and Play Pass updates for game developers.
Google announces Play Games Sidekick testing, new Play Console updates, and 2026 Level Up program milestones for game developers.
Google releases the first alpha of Room 3.0, a major update adding Kotlin Multiplatform support, dropping Java codegen, and going coroutines-first.
Videos & Podcasts
kt.academy explains how and why Jetpack Compose's snapshot state system uses remember under the hood.
Dave Leeds demonstrates what Kotlin Flow operators can do that standard collections cannot.
Philipp Lackner shares his top strategy for managing and splitting oversized ViewModels.