jetc.dev Newsletter Issue #304
Published: 2026-03-03
A lot of Compose artifacts got updates, along with a Compose Multiplatform alpha release, so we dive in!
We also explore the upcoming Compose style API and find a practical use for a linked list. Plus, we see a LaTeX renderer for Compose Multiplatform.
Ooooo… What Did We Get?
Reviewing the release notes for the latest Jetpack Compose update!
The main production Compose artifacts are up to 1.10.4, containing bug fixes.
The main Compose artifacts also have a 1.11.0-alpha06 release, formally announcing the
experimental styles API but otherwise not adding a lot of note.
Compose Material3 is out with 1.5.0-alpha15.
This adds a new scrim component and a
“standalone static sheet component”. It also reworks MaterialTheme to use a single composition
local for theme data, which will require some code changes. Also, some horizontalSpacing
parameters were converted to horizontalArrangement, among many other API changes.
Nav3 brings us 1.1.0-alpha05.
Of note, they eliminated the SceneStrategy then()
infix function, replacing it with a NavDisplay that takes a List<SceneStrategy>.
In smaller releases:
- Compose Material3 Adaptive now has a
1.3.0-alpha09. - Remote Compose is up to
1.0.0-alpha05 - Glance for Wear has a
1.0.0-alpha04release
Wear Compose is up to 1.6.0-beta01, hinting that we may get a stable release in the next
few months.
We also got:
androidx.activity:activity-compose:1.13.0-rc01androidx.camera:camera-compose:1.6.0-rc01androidx.camera.viewfinder:viewfinder-compose:1.6.0-rc01androidx.lifecycle:lifecycle-runtime-compose:2.11.0-alpha01(and multiplatform targets)androidx.lifecycle:lifecycle-viewmodel-compose:2.11.0-alpha01(and multiplatform targets)androidx.media3:media3-ui-compose:1.10.0-beta01androidx.media3:media3-ui-compose-material3:1.10.0-beta01androidx.navigationevent:navigationevent-compose:1.1.0-alpha01(and multiplatform targets)androidx.pdf:pdf-compose:1.0.0-alpha14androidx.xr.compose:compose:1.0.0-alpha11androidx.xr.compose:compose-testing:1.0.0-alpha11androidx.xr.compose.material3:material3:1.0.0-alpha15
Finally, JetBrains released Compose Multiplatform 1.11.0-alpha03.
One breaking change of note:
navigation-common and navigation-runtime used to provide androidx.collection as a transitive
dependency, but no more.
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
Why Is My Text Alignment Off in My Canvas?
Whether it is with TextMeasurer or a simple ruler, if you measure one thing but use another, you may
run into problems. Learn more in this week’s highlighted Stack Overflow question.
Can I Use GraalVM for Compose for Desktop?
Compose for Desktop apps usually use the JetBrains Runtime (JBR) environment, but at least on
Windows using GraalVM can significantly improve memory use. Learn how to set this up and the
pros/cons of various approaches in this week’s highlighted Kotlinlang #compose-desktop Slack thread.
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
The Compose Styles API: Building 8 Labs to Master Declarative Styling
Adit Lal
(Mastodon, Bluesky)
takes a deep dive into the upcoming styles API for Compose, giving us Style and
a styleable() modifier to greatly simplify scenarios like applying shapes and background colors,
both statically and in animated responses to user input like click events.
Adding Navigation support to Large Content Viewer with Compose
Eevis Panula (Mastodon, Bluesky) follows up her previous post on adapting an iOS accessibility trick to Compose. This time, Eevis explores adding accessibility to her solution, so keyboards, screen readers, and voice assistants can work with the large content viewer.
Medium: The “Invisible Performance Killer”: A Deep Dive into Jetpack Compose Stability
Ahmed Nabil explores the ever-popular problem of reducing unnecessary recompositions, including
the lesser-known technique of using stabilityConfigurationFile to indicate stable types
en masse.
Simplest Nav2 to Nav3 Migration Guide
Jov Mit
(Mastodon, Bluesky)
quickly walks us through how to move a code base using Navigation for Compose from Nav2 to
Nav3. This includes adding NavKey marker interfaces, switching from NavController to a NavBackStack,
replacing NavHost() with NavDisplay(), and more.
From Gap Buffer to Linked List: How Compose Rewrote Its SlotTable for Faster Recomposition
Jaewoong Eum (Mastodon, Bluesky) wrote about an internal Compose change, tied to how Compose tracks compositions. As a side benefit, you finally get to see how a linked list gets used in production, given all those times you were asked to reverse one in job interviews… 😉
Other Interesting Links
- Biometric Authentication in Jetpack Compose Android 16
- Medium: Bottom Navigation with Navigation 3
- Medium: How I Built Native Android & iOS Apps from ONE Codebase , My 8-Step Compose Multiplatform Setup Guide
- Medium: How to Connect Firebase Remote Config to a Compose Multiplatform App: A Step-by-Step Guide
- Medium: Jetpack Compose Canvas to Bitmap: A Complete Guide
- Medium: Modern Android State Management: Building Scalable Apps with Jetpack Compose
- Medium: Optimizing a Laggy Chat Screen in Jetpack Compose: Fixing 10 Common Performance Issues Step by Step
- Medium: Stop Hardcoding Navigation: The “Exit Callback” Pattern in Jetpack Compose
- Medium: The Case of the Invisible Highlight in Jetpack Compose
- Medium: The Great Kotlin List Paradox: Why Jetpack Compose Thinks Your Immutable Lists Are Unstable
- Medium: Toast Messages in Compose Multiplatform
- Medium: What I Learned Implementing LazyHorizontalStaggeredGrid on a Real Android Project
Resource Roundup
100% pure code!
GitHub: oleginvoke / composium
GitHub user oleginvoke is building a Storybook-style scene browser for Compose for Android. You can view these preview-style UI elements running live in your app, with editable parameters, as a playground for your design system, etc.
GitHub: huarangmeng / latex
GitHub user huarangmeng has created a LaTeX renderer for Compose Multiplatform, supporting all targets. It includes image export, screen reader support, and an experimental LaTeX editor.
GitHub: meetOzan / Springy
Mert Ozan Kahraman is working on a library of modifiers for simple animations, like shakeVertical(),
heartBeatEffect(), wiggle(), and spin().
GitHub: flaringapp / ComposeCollapsingTopBar
GitHub user flaringapp offers us a CollapsingTopBarScaffold() for Compose Multiplatform, supporting
Android and iOS. It provides automatic height adjustment, various scroll modes, snapping, and lots
of customization options.
Other Interesting Links
- GitHub: infinum / android-snacky (improved snackbars for Compose for Android)
- GitHub: palakpanchani / Advanced-Radio-Group (Material3 radio buttons for Compose for Android)
Notable Releases
Maps for Compose is up to 8.2.0,
which “added Clustering decoration”, so we can avoid boring clusters.
Coil is out with 3.4.0,
with better support for JS/WASM and Linux, a new ConcurrentRequestStrategy, and lots more!
Recent Issues:
- 2026-02-17: Compose patch release and alpha release! Compose Multiplatform patch release! Bottom sheets! Colors and accessibility! And... can we work with Glance?!?
- 2026-02-10: AI! Orchestration composables! Stability! Instant Compose!
- 2026-02-03: It's the tri-centennial issue! Bug fixes! Dials! onGloballyPositioned! APK slimming! And... can we have a slice of a font?!?