jetc.dev Newsletter Issue #289
Published: 2025-11-11
We got a new Compose beta and new Compose Multiplatform patches and betas!
Beyond that, we try to wait, lament the clear-cut logging of redwoods, and pretend that our screen is really really old. Also, we see an IDE plugin that helps tell us if we are stable, in real time!
:: glances at plugin output ::
Hey, what do you mean I’m unstable?!?
Ooooo… What Did We Get?
Reviewing the release notes for the latest Jetpack Compose update!
The Compose BOMs are up to 2025.11.00. The production BOM contents should be
unchanged, but the beta BOM will point to 1.10.0-beta02 of the major artifacts.
Mostly, this release contains breaking API changes for custom RetainedValueStore implementations, along with
many other changes to the RetainedValuesStore approach.
Compose Material3 is up to 1.5.0-alpha08, with minor changes. Compose Material3
Adaptive is up to 1.3.0-alpha03, also with minor changes.
Wear Compose is out with 1.5.5, with a fix to help TimePicker number visibility on
small screens.
Updates to Compose-related artifacts include:
androidx.activity:activity-compose:1.12.0-rc01androidx.lifecycle:lifecycle-runtime-compose:2.10.0-rc01(and multiplatform targets)androidx.lifecycle:lifecycle-viewmodel-compose:2.10.0-rc01(and multiplatform targets)androidx.navigation:navigation-compose:2.9.6(and multiplatform targets)androidx.navigation:navigation-fragment-compose:2.9.6androidx.navigationevent:navigationevent-compose:1.0.0-rc01(and multiplatform targets)androidx.savedstate:savedstate-compose:1.4.0(and multiplatform targets)
In terms of Compose Multiplatform, JetBrains
released 1.9.3,
fixing an iOS crash. JetBrains also
shipped 1.10.0-beta01,
which bundles the Compose Hot Reload functionality with their standard Compose Gradle
plugin. This blog post
lists the major improvements in this latest beta.
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
How Can We Wait?
Sometimes, we need a composable to do something after a certain period of time. Personally,
I would handle this with an updated state in the viewmodel, but there will be cases where
the delay is purely a UI concern. See how to properly use LaunchedEffect() to handle this
in this week’s highlighted Stack Overflow question.
Can I Use Browser Fonts in Compose for Web?
This seems like it should be straightforward: the browser has fonts, so Compose for Web
should be able to render them. Alas, this is not possible. Learn more in this week’s
higlighted Kotlinlang #compose-web Slack thread.
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
Redwood Fall Down, Go Boom
Redwood is CashApp’s framework for building platform-native UIs using composables. Alas, Redwood has been discontinued, as announced by Jake Wharton (Mastodon).
Medium: How to Dynamically Modify SVGs in Jetpack Compose Using Coil
Angela Dimovska demonstrates how Coil allows us to plug into the SVG rendering pipeline, and we can use that hook to do things like change colors on the fly.
Medium: Understanding Flow Collection in Jetpack Compose
Dnyaneshwar Patil walks us through various ways of collecting flows from a composable,
from collectAsState() and collectAsStateWithLifecycle() to produceState() and
LaunchedEffect().
Creating a CRT Screen Effect in Jetpack Compose
sinasamaki
(Mastodon, Bluesky)
is back, once again using graphicsLayer() for fun effects. In this case,
the objective is to render a UI as if it were being viewed on an old green low-resolution
CRT monitor. I remember when those monitors were cutting-edge. Yes, I’m old.
Other Interesting Links
- Medium: A Deep Dive into Recomposition: Compose’s Engine Room and the Secrets of Skippability
- Medium: Boosting Jetpack Compose Performance: 10 Practical Techniques for Smoother UI
- Medium: Build a Multi-Row Scrollable Category Selector in Jetpack Compose — Elegant, Animated & Modular
- Medium: Introducing Compose Reorderable: A Jetpack Compose Library for Drag & Drop Lists and Grids
- Medium: Previewing Your KMP-Driven Compose UI Without Losing Your Mind
- Medium: Why Your ViewModel Is Technically Unstable — and Why Compose Doesn’t Mind
- Using MockK library in Jetpack Compose Preview
- Video: A Guide to Loading Animations in Jetpack Compose
- Video: Building adaptive apps for Android
- Video: Building Androidify: an AI-powered Android experience
- Video: Building for TV and cars with Compose
- Video: Chasing 60 FPS: Frame Time Profiling in Jetpack Compose
- Video: Creative Coding with Kotlin
- Video: More customization in Material 3: the path to expressive apps
- Video: Practical Tips and Tricks to Improve Your Compose Previews
Resource Roundup
100% pure code!
GitHub: skydoves / compose-stability-analyzer
Jaewoong Eum (Mastodon, Bluesky) is working on an IDE plugin to provide gutter hints as to which of our types are unstable, etc. The idea is to give performance-related info in real time while editing the code. See also this Medium post on the project.
GitHub: guimauvedigital / ant-design-kmp
The Guimauve Digital team is building out a complete Compose Multiplatform implementation of the Ant Design design system.
GitHub: anthonyhfm / kowe
Anthony Hofmeister is creating a Compose Multiplatform wrapper around platform-specific Web views, supporting Android, iOS, and desktop targets.
GitHub: wooongyee / komvi
Jae Woong brings us an MVI architecture framework powered by KSP to help with compile-time checks for invalid MVI contracts.
Other Interesting Links
- GitHub: abbasiandev / ExoBoostPlayer (ExoPlayer wrapper for Compose for Android)
- GitHub: boiledeggg / BoiledCalendar (month/week calendar for Compose for Android)
- GitHub: yskuem / kmp-onboarding (wizard-style onboarding screens for Compose Multiplatform)
Notable Releases
Circuit is up to 0.31.0.
Result handling is now decoupled from the backstack implementation, resetRoot() now
takes a StateOptions parameter, and other changes are included in this release.
Compose Unstyled is out with 1.47.2,
with a few bug fixes. Also, see Alex Styl’s post about the 1.47.* series.
Or, you can subscribe to the Atom feed or follow Mark Murphy in the Fediverse.
Recent Issues:
- 2025-10-28: Compose patch and beta! Wear Compose patch and alpha! Compose Multiplatform alpha! Overlays! Surfaces! Ink! And... which finger gets used in a one-finger gesture?!?
- 2025-10-21: Gap buffers! Organizing previews! Liquid Glass! Custom design systems! And lots of stuff from Jaewoong Eum!
- 2025-10-14: New Compose BOMs! New Compose Multiplatform alpha! Nav2 -> Nav3 migration! Keys and lazy containers! Coachmarks! And... do we really want our UI to glitch?!?