Issue #685

July 27th, 2025
Articles & Tutorials
Sponsored
Deep links power core user journeys, but Firebase Dynamic Links will shut down this August. Switch to the Airbridge DeepLink Plan, a powerful SDK-based solution with full support for Android and iOS. It’s free for up to 10K MAU. Whether you’re migrating existing links or starting from scratch, now is the time to build smarter and with less stress. Easy to integrate. Fully documented.
Tom Mulcahy describes how blocking in AOSP’s USB stack caused Android app freezes, and how Block’s upstream Android 16 patches resolved it, boosting performance by ~40%.
Pouya Heydari shows how to secure Room by generating an SQLCipher passphrase, storing it with EncryptedSharedPreferences, and configuring Room with a SupportFactory to enable transparent encryption.
Jaewoong Eum highlights Billing Library 8’s key changes—more flexibility for one‑time purchases, non‑expiring subs, improved error responses and removed deprecated queries—with seamless support through RevenueCat SDK v9.0.0
Eury Pérez Beltré introduces StyledString, a cleaner abstraction over AnnotatedString allowing rich, interactive text styling without index math or boilerplate.
Nikhil Mandlik demonstrates creating retro-style text in Compose by rendering text into a bitmap, downscaling to a dot‑matrix, and drawing visible pixels as colored dots.
Iago Fucolo demonstrates migrating a fragment-based navigation flow to Navigation 3 using Compose screens, NavDisplay, mutable back stack, and entry decorators for state and transitions.
Sahil Thakar explains how to cancel Kotlin Flows reliably using cooperative cancellation, Flow operators, and lifecycle-aware scopes to avoid leaks and improve performance.
Asha Mishra demonstrates animating a bottom sheet header’s elevation, scale, and corner radius in Jetpack Compose according to swipe progress.
Dmitry Glazunov highlights misuse of Kotlin’s inline, crossinline, and reified modifiers that can damage debuggability, cause unintended API leaks, or lead to performance surprises.
Davies Adedayo AbdulGafar presents a fast, minimal custom Compose search dialog using suffix array, debounced input, and highlighted matches.
Richa Sharma explains that Compose’s SideEffect API lets you safely run non‑suspending operations after every successful recomposition to maintain predictable UI‑state interactions.
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!
Jobs
Join DuckDuckGo, a remote-first company dedicated to raising online trust standards, where a culture of trust, inclusivity, and empowered project management allows team members to take full ownership of their projects. We're looking for an experienced Android engineer with 7+ years in native apps, s
Libraries & Code
A synchronized dual-view timeline visualization component for Android with native Compose support.
Deepr is a native Android application designed to streamline the management and testing of deeplinks. It provides a simple and efficient way to store, organize, and launch deeplinks, making it an essential tool for developers and testers.
Videos & Podcasts
Jov Mit demonstrates 2 ways to display DateTime in Compose UI.
Philipp Lackner shares a generic approach to paginate data from a remote API or local database.
The Kotlin Foundation provides funding and promotion for standout libraries. If you maintain a library in a field such as Kotlin Multiplatform or AI tooling consider submitting it at https://kotl.in/grants!
Steven Moreland on the Android Systems Team shares the latest news for Android developers.
Learn how to use Android live updates and widgets to create rich user experiences! In this video, see notifications (progress style template & live updates) and widgets (canonical layouts & generated previews).
David Herman discusses Kobweb, a Kotlin web framework build on top of Compose HTML.
Anton Arhipov livestreams coding with Jetbrains Junie.