jetc.dev Newsletter Issue #291
Published: 2025-11-25
We got a Compose patch release, a Compose RC, a stable inaugural release of Nav3 for Compose, and a Compose Multiplatform beta, all in one week!
In addition, we try to write a bit on an angle, play with Media3’s Compose-native UI, and try to get our daily agenda in order.
Ooooo… What Did We Get?
Reviewing the release notes for the latest Jetpack Compose update!
The Compose BOMs are up to 2025.11.01. The production BOM will point mostly to 1.9.5
artifacts, which contain bug fixes.
The beta BOM probably points to 1.10.0-rc01 artifacts, as we near a 1.10.0 stable
release. Mostly, this contains bug fixes, but note that EnterExitTransitions in Compose
Material now offer unveilIn and veilOut options.
Compose Material3 is up to 1.5.0-alpha09, adding more options for expressive menus, offer
more alignment possibilities for a ButtonGroup(), and more. Compose Material3 Adaptive
is up to 1.3.0-alpha04, with bug fixes.
Wear Compose is up to 1.6.0-alpha05, with new sensitivity options for rotary and
paging gestures, along with bug fixes.
The following Compose-related artifacts got updates as well:
androidx.activity:activity-compose:1.12.0androidx.ink:ink-authoring-compose:1.0.0-beta02androidx.ink:ink-authoring-compose-android:1.0.0-beta02androidx.ink:ink-brush-compose:1.0.0-beta02androidx.ink:ink-brush-compose-android:1.0.0-beta02androidx.ink:ink-geometry-compose:1.0.0-beta02androidx.ink:ink-geometry-compose-android:1.0.0-beta02androidx.lifecycle:lifecycle-runtime-compose:2.10.0(and multiplatform targets)androidx.lifecycle:lifecycle-viewmodel-compose:2.10.0(and multiplatform targets)androidx.navigationevent:navigationevent-compose:1.0.0(and multiplatform targets)
Finally, JetBrains released Compose Multiplatform 1.1.0-beta02.
This contains a bunch of bug fixes.
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
Why Is My LinearProgressIndicator() Weird When It Is Wide?
The default way the progress is rendered in a LinearProgressIndicator() is via a circular
StrokeCap. Using that, or StrokeCap.Square, causes problems with wide indicators, because
the circle or square will match that width and make rendering small or large progress values
difficult. See how to avoid this using StrokeCap.Butt in this week’s highlighted
Stack Overflow question.
Can We Write Part of an AnnotatedString on an Angle?
Rotating an entire composable is fairly easy, using the rotate() modifier. Rotating a piece
of text in the middle of an AnnotatedString is more challenging. See how to address this
by switching to onTextLayout() 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 Compose Multiplatform 1.10.0-beta02
As was noted earlier in the newsletter, JetBrains released 1.10.0-beta02 of
Compose Multiplatform. This set of release notes covers the entirety of the 1.10.0
release, rather than strictly for beta02.
Jetpack Navigation 3 is stable
Google’s Don Turner announces the stable release of Navigation3 for Compose for Android. The post includes links to the migration guide and recipes site.
Using Navigation 3 with Compose Multiplatform
While Navigation3 for Compose for Android is stable, JetBrains is still working on porting it to Compose Multiplatform. John O’Reilly (Mastodon, Bluesky) reviews its current status and shows how to use it in a multiplatform project.
Medium: From AndroidView to PlayerSurface: Modernizing ExoPlayer with Media3’s Compose UI
Ioannis Anifantakis walks us through using media3-ui-compose to employ ExoPlayer/Media3’s
official Compose-based UI. This includes migrating from AndroidView to PlayerSurface,
its various state holders, and whether “the juice is really worth the squeeze”.
Other Interesting Links
- Complete Jetpack Compose Flow Layout Guide
- Medium: A Practical Guide to MapLibre Compose
- Medium: Compose Animated Date Carousel
- Medium: Compose State Management in Kotlin
- Medium: Deep Dive into Jetpack Compose Architecture -Compiler, Runtime, and UI Explained
- Medium: Drawing an animated pie chart in Jetpack Compose
- Medium: How lifecycle complexity affects Jetpack Compose
- Medium: Increase App Performance by 10X with Compose Stability
- Medium: State Hoisting — The Backbone of Clean & Scalable Jetpack Compose UIs
- Medium: Stop Over-Recomposing! How to Split ViewState in Jetpack Compose for Maximum Performance
- Medium: Testing Android Compose UIs: Ensuring Quality
- Medium: The Complete Guide to Using Jetpack Compose in XML: Modernizing Legacy Android Apps
- Medium: The Nav Graph ViewModel Scope in Compose You Might Not Be Aware Of
- Medium: Theming and Styling: Material Design 3 in Compose
- Video: Compose at Scale: Stop Unnecessary Recomposition
- Video: Dynamic UI with Firebase and Jetpack Compose
- Video: From ImageView to Compose: Architecting Image Loading
Resource Roundup
100% pure code!
GitHub: ivk1800 / Riflesso
GitHub user ivk1800 has created a combination library and IntelliJ IDEA plugin to help you visualize recompositions in real time in your actual code. It highlights blocks of code as they recompose, along with showing parameter stability. It works on Compose Multiplatform, supporting Android and desktop targets.
GitHub: pablichjenkov / daily-agenda-component
GitHub user pablichjenkov has created a Compose Multiplatform (all targets) task planner UI, showing appointments across an hourly view of one’s day.
GitHub: yskuem / kmp-onboarding
GitHub user yskuem brings us a wizard-style onboarding framework for Compose Multiplatform (supporting Android and iOS). You define the page content and it handles rendering common elements (e.g., forward/back affordances, headers/footers) for you. See this Medium post for more.
GitHub: 3moly / compose-data-viz
GitHub user 3moly created a Compose Multiplatform (all targets) library that renders a node graph. You supply the definitions of the nodes and their interconnections, and the library handles drawing the graph, including re-rendering based on users dragging nodes, etc.
Other Interesting Links
- GitHub: bocajthomas / ExpressiveCardShape (card groups for Compose for Android)
- GitHub: deanalvero / line-chart-cmp (line charts for Compose Multiplatform)
- GitHub: dononcharles / NiceToast (toast-style UIs for Compose for Android)
- GitHub: ipirangad3v / glassy (glassmorphism for Compose for Android)
- GitHub: kareemessam09 / liquid-glass-bottom-nav (glassmorphic bottom nav bar for Compose for Android)
Notable Releases
Compose Unstyled 1.49.1
and 1.49.2 were
for some minor cleanup. Also, see this blog post
for more about the 1.49 release series.
Or, you can subscribe to the Atom feed or follow Mark Murphy in the Fediverse.
Recent Issues:
- 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?!?
- 2025-11-04: Material3 Adaptive! Cahier! Font scaling tests! Data tables! And... will Compose work remotely?!?