jetc.dev Newsletter Issue #293
Published: 2025-12-09
Our possibly-final release wave of the year includes the stable version of Compose for
Android 1.10.0, a new Compose alpha, Compose Multiplatform 1.10.0-rc01, and more!
This week, in addition to those, we look at Nav3, pausable compositions, and multiplatform haptic feedback. Plus, Jake Wharton suggests that perhaps we should not set ourselves up the BOM.
Ooooo… What Did We Get?
Reviewing the release notes for the latest Jetpack Compose update!
The Compose BOMs are up to 2025.12.00. The production BOM contains the stable
version of 1.10.0.
The alpha BOM contains 1.11.0-alpha01, because the release train keeps on chugging.
The new alpha includes:
-
A new
scrollIndicator()modifier to add scroll indicators to scrollable containers, something that third party developers have had to supply for quite some time -
Marking the
onFirstVisible()modifier as deprecated -
A new
visible()modifier “which can be used to skip drawing the content of a Composable without affecting the space it occupies”
Compose Material3 is is up to 1.5.0-alpha10, adding a “multi-aspect” carousel.
Glance is out with 1.2.0-rc01, with only minor changes from beta01.
Wear Compose has both 1.5.6 and 1.6.0-alpha06. As one might expect, 1.5.6 just contains
a few bug fixes. The alpha release adds:
-
LocalRippleConfiguration, to allow you to configure the ripple appearance -
New
AlertDialog()versions that useTransformingLazyColumn() -
Other improvements and bug fixes
We also got updates to Compose-related artifacts, including:
androidx.activity:activity-compose:1.12.1androidx.ink:ink-authoring-compose:1.0.0-rc01androidx.ink:ink-authoring-compose-android:1.0.0-rc01androidx.ink:ink-brush-compose:1.0.0-rc01androidx.ink:ink-brush-compose-android:1.0.0-rc01androidx.ink:ink-geometry-compose:1.0.0-rc01androidx.ink:ink-geometry-compose-android:1.0.0-rc01androidx.navigationevent:navigationevent-compose:1.0.1(and multiplatform targets)androidx.pdf:pdf-compose:1.0.0-alpha12
Also, JetBrains released 1.10.0-rc01 of Compose Multiplatform,
hot on the heels of
Google’s release of the stable 1.10.0 of Compose for Android. As expected, this is mostly
a set of bug fixes and dependency updates.
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
Why Is My SwipeToDismissBox() Not Working?
Material3 1.4.0 changed some SwipeToDismissBox() behaviors, which in turn may break
some of your plans for using that function. Learn more, and about a bug in 1.4.0 that
may cause problems for you, in this week’s highlighted Stack Overflow question.
Why Does rememberUpdatedState() Update After Remembering?
Sometimes, looking at the source code of core composable functions can cause confusion. 🤯
In this case, rememberUpdatedState() has a value = newValue statement that, on the surface,
may seem superfluous. Learn why it is there and how rememberUpdatedState() differs from
ordinary remember() in this week’s highlighted Kotlinlang #compose Slack thread.
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
What’s new in the Jetpack Compose December ‘25 release
Google’s Nick Butcher
(Mastodon, Bluesky)
writes about Compose 1.10 and the other elements of the
Compose 2025.12.00 BOM, including runtime improvements.
Video: Navigation 3 API overview
Google’s Don Turner delivered a presentation regarding Navigation 3 for Compose (Nav3). Topics include using the API both in single-module and multi-module projects, animating between screens, and implementing adaptive layouts through Nav3’s “scenes” system.
Video: Navigation 3 #AskAndroid
Google’s Clara Fok, Ian Lake, Don Turner, and Jeremy Woods took your questions regarding
Nav3 in a recorded #AskAndroid livestream.
Video: Make your composition pause
Google’s Andrei Shikov
(Bluesky)
delivered a droidcon London 2025 presentation on Compose 1.10
and its pausable composition feature. This allows composables to pause composition
part-way through, which is especially useful if they might exceed the available time
for rendering a frame.
Medium: Compose Multiplatform at Perk: A Pragmatic Look at Our Journey So Far
Luis G. Valle describes how the Perk team migrated to using Compose Multiplatform in their app. This includes the benefits of using a mono-repo, their adoption strategy, and the benefits they have gained from the migration.
Let’s defuse the Compose BOM
Jake Wharton (Mastodon) suggests that the Compose BOM might add less value to your project than you might expect, especially given the rise of Gradle version catalogs and Jake’s own recommendation to use AndroidX beta releases.
Create animated stripes in Jetpack Compose
sinasamaki
(Mastodon, Bluesky)
is back, this time demonstrating a sneaky way to use gradients and TileMode.Repeated
to implement a stripe pattern, then animating those stripes by animating their position
offsets.
Medium: The 4-Layer Defense: A Strategic Approach to Jetpack Compose Testing
Sarveshwar Maheshwari outlines their organization’s approach to quality assurance with respect to Compose-based UIs. Instead of relying solely on simple “is it displayed?” tests, the team leverages previews, automated logic and “reality” tests, and manual performance analysis.
Other Interesting Links
- Exploring Jetpack Compose: ButtonGroup
- Finger Shadows in Compose
- Medium: Building a Liquid Glass Floating Bottom Nav for iOS 26 and Android with Kotlin Multiplatform Compose
- Medium: Building a Modern OTP Input Field with Jetpack Compose
- Medium: Building a Smooth, Zoomable PDF Viewer in Jetpack Compose — No Third-Party Libraries Needed!
- Medium: Compose Multiplatform AdMob Integration: Step-by-Step Guide for Android & iOS
- Medium: Flattening the Pyramid — Best Practices for Readable Jetpack Compose UIs
- Medium: Flow vs LiveData in Jetpack Compose: Which One Should You Use?
- Medium: Mastering Jetpack Compose Navigation 3: The Ultimate Guide
- Medium: Mastering Navigation 3 in Jetpack Compose: The Complete Guide to Modern Android Navigation
- Medium: Mastering Side Effects in Jetpack Compose: A Complete Guide for Real Android Apps
- Medium: Navigation Compose 3 Is Finally Stable — Here’s Why It Matters for Android Developers
- Medium: Old-school marquee effect in Compose
- Medium: Production-Ready Navigation 3 in Jetpack Compose
- Medium: Stop Recomposition Errors: How to Correctly Handle One-Time Events in Jetpack Compose
- Medium: The 95% Shared Codebase: How Compose Multiplatform (CMP) Changes Everything for Android & iOS
- Medium: Transforming a Massive Legacy: A Strategic Guide to Migrating from XML to Jetpack Compose in Large-Scale Android Applications
- Video: Android Screenshot Testing on Autopilot
- Video: Kotlin and Compose Multiplatform patterns for iOS interop
- Video: Understanding Compose modifiers and how their order effects UI
- Video: Understanding keyboard shortcuts in Jetpack Compose
Resource Roundup
100% pure code!
GitHub: classops / kmp-screenutil
GitHub user classops published a Compose Multiplatform
library inspired by flutter_screenutil to allow you
to set dimensions based on a design’s size, with the library automatically scaling based on
available space.
GitHub: xfqwdsj / multihaptic
GitHub user xfqwdsj created a Compose Multiplatform library offering haptic feedback across most of the multiplatform target platforms.
GitHub: sajidalidev / compose-epg-viewer
Sajid Ali released a Compose Multiplatform library that renders a TV guide-style UI, with rows per channel tied to a timeline of events on that channel. The library supports Android, iOS, and desktop.
GitHub: composablehorizons / compose-uri-painter
Alex Styl
(Bluesky)
brings us a rememberUriPainter() function that serves as a low-ceremony wrapper
around Coil for Compose Multiplatform.
Other Interesting Links
- Composables UI Blocks (sample composables with Web previews)
- GitHub: akexorcist / headless-compose (composable to bitmap on Compose for Android)
- GitHub: alexey1312 / ExFig (export Figma to Compose for Android)
- GitHub: Bhuvaneshw / KmpProjectView (IDE plugin for Compose Multiplatform project view)
- GitHub: composablehorizons / composables-cli (CLI to generate Compose Multiplatform project)
Or, you can subscribe to the Atom feed or follow Mark Murphy in the Fediverse.
Recent Issues:
- 2025-11-25: Compose patch release! Compose RC! Nav3 is stable! Compose Multiplatform beta! Media3! And... can we compose all our appointments?!?
- 2025-11-18: Text input! Expressive Wear OS! Mixed Espresso and Compose tests! Forms! Time ranges!
- 2025-11-11: Compose beta! Compose Multiplatform patch release and beta! Coil and SVGs! Compose Stability Analyzer! And... is this the end of Redwood?!?