jetc.dev Newsletter Issue #271
Published: 2025-07-01
Welcome to the second half of 2025!
🙀
This week, we try to say “goodbye” to Skia, dive a bit deeper into Nav3, explore autofill support and Compose Hot Reload, and peek at a server-side rendering framework.
Ooooo… What Did We Get?
Reviewing the release notes for the latest Jetpack Compose update!
androidx.compose:compose-bom-alpha:2025.06.01
was released later than its peer
beta and production BOMs, but is now available.
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
Where Did rememberSystemUiController()
Go?
The Accompanist project deprecates and removes code, either when it gets promoted into official Compose libraries, or when the project maintainers simply do not want to maintain it. Accompanist System UI Controller suffered the latter fate, and I point out the official migration instructions and the option of forking the library.
What If I Don’t Want Skia?
Compose Foundation and things built atop of it assume that the UI will be rendered by
Skia. If you are implementing some separate rendering system, you lose some of the modifiers
and related code from Foundation. You have a couple of options for dealing with this,
as we see in this week’s highlighted Kotlinlang #compose
Slack thread.
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
Medium: Custom Scene Strategy in Navigation 3 — Make Your App Flow Your Way
Ashiq Fury reviews the role of scenes and scene strategies in Nav3, then walks us
through how to define Scene
implementations and a SceneStrategy
, including
how to incorporate window size classes and how to deal with back navigation.
Medium: Implementing Nested Bottom Navigation with Navigation 3 in Jetpack Compose
Muhammad Irfan Ali also explores Nav3, in this case looking at having nested navigation
with a BottomNavBar()
. This involves defining a distinct set of NavKey
objects
representing the nested destinations, then defining and applying distinct backstacks
per nested destination.
Slides: Blazing Fast UI Development with Compose Hot Reload
Márton Braun (Mastodon, Bluesky) delivered a droidcon NYC 2025 presentation on Compose Hot Reload — while we wait for the conference video, here are the slides!
Autofill in Compose 1.8.0
Bryan Herbst
(Mastodon, Bluesky)
returns to autofill support in Compose for Android, looking at what was
added in 1.8.0
, including enabling autofill via contentType
semantics, improved
highlighting and context menu support, and more.
Medium: How to Create a Word-by-Word Animation in Jetpack Compose
Kappdev is back with a new animated effect: rendering text in pieces (word-at-a-time,
line-at-a-time, etc.). This involves dividing the text into discrete Text()
composables,
positioned based on text measurements, and animated using AnimatedVisibility()
.
Medium: Creating a Dimmed Overlay with a Transparent Cutout in Jetpack Compose
A common onboarding technique is to highlight a UI element by means of dimming everything
else around it, incorporating a callout or some other UI that explains the role of
the highlighted element. Zvereva Tatiana demonstrates how to implement this sort of
presentation, by means of cutting a Color.Transparent
hole in an overlay Canvas()
that
is sufficient to let the to-be-highlighted composable peek through.
Other Interesting Links
- Mastering Android Pagination with Paging 3 + Jetpack Compose
- Medium: 5 Compose Performance Wins with Just One Line of Code
- Medium:
androidx.activity.compose
library – The Secret Weapon for Compose + Activity Integration - Medium: A Helper class to detect window configs to build a Responsive UI in Jetpack Compose across multiple platforms
- Medium: Auto Scrolling Text in Jetpack Compose: Smooth Horizontal Marquee for Android
- Medium: Composable Wizardry — Reusability, Stateless Patterns & Real-World UI Architecture
- Medium: Creating an Engaging Progress Button in Jetpack Compose
- Medium: Mastering CompositionLocalProvider in Jetpack Compose: Pass Data the Clean Way
- Medium: Mastering State Management in Jetpack Compose: State, StateFlow, and Side Effects
- Medium: Modern Tabs in Jetpack Compose: PrimaryTabRow, SecondaryTabRow & Scrollable Variants — Complete Guide
- Medium: Opening URLs in Compose Multiplatform: Why Your Code Breaks on iOS 18 and How to Fix It
- Medium: Reading Clipboard Text Across All Platforms in Compose Multiplatform (CMP)
- Medium: SQLDelight Integration in Compose Multiplatform
- Medium: Understanding TextField and State in Jetpack Compose
Resource Roundup
100% pure code!
GitHub: serioushyeon / styled-text-compose
Jihyeon Jin has published a StyledText()
composable that offers a DSL for building up
an AnnotatedString
for rendering. The library also offers some helper extension functions
for assembling an AnnotatedString
for use in stock composables like BasicText()
and Text()
.
GitHub: nicholaspark09 / ssr
Nicholas Park is working on a Compose for Android server-side rendering (SSR) library for use in server-defined UI (SDUI) scenarios, or just for describing screens in JSON.
Raising the Glass
And since the fine folk at Apple are all glassy-eyed, there has been renewed interest in glass and glassmorphism in Compose, leading to:
Notable Releases
Circuit is up to 0.29.0
,
adding seekable transition support to AnimatedOverlay()
,
predictive back support to FullScreenOverlay()
, and the latest version of Kotlin/KSP.
Compose WebView Multiplatform is now at 2.0.1
,
improving zoom support.
Compose Unstyled had 3 releases in the past week. 🤯 1.34.0
added progress()
to sheets and retired the legacy version of LocalModalWindow
.
1.35.0
folds in a version of theming formerly found in a separate project. And
1.36.1
offers fully stateless versions of RadioGroup()
, TabGroup()
, and DropdownMenu()
.
Or, you can subscribe to the Atom feed or follow Mark Murphy in the Fediverse.
Recent Issues:
- 2025-06-17: Compose Multiplatform! Server-defined UI! OpenGL in Compose Multiplatform! Collecting signatures! And... can we start off with a bit of focus?!?
- 2025-06-10: Compose and Compose Multiplatform alphas! Material3 Expressive! Lottie testing! Cross-platform ripples! And... *now* can we pick a peck of pickle photos?!?
- 2025-06-03: Navigation for Compose! What's new in Compose! Accessibility testing! Snackbars and channels! Overscroll! And... can we tie a ribbon on it?!?