jetc.dev Newsletter Issue #331
Published: 2026-09-15
This week, we see the keyed SideEffect() and (unfortunately) see keyboard flickers. And we see a couple of Compose for Desktop libraries, one adding a CEF-based WebView equivalent and one offering control over window chrome elements (e.g., minimize/maximize buttons).
Ooooo… What Did We Get?
Reviewing the release notes for the latest Jetpack Compose update!
The Compose BOMs are up to 2026.09.00. The production BOM generally points to 1.12.1 of the major artifacts, presumably containing minor bug fixes.
The alpha BOM points to 1.13.0-alpha03 of the major artifacts, which made some changes:
- The
compileSdkwas raised to37.1, which will require all Compose consumers to upgrade as well - Replaced
StylewithCommonStyleas part of splitting the styles DSL out from the modifiers that use that DSL - Added support for multiple styles for compound widgets (e.g.,
DatePicker()) - The
BasicTextField()overloads takingvalueandonValueChangedare deprecated in favor of theTextFieldStatevariants - The
blur()modifier now has a DSL option - There is a new
interactionBarrier()modifier “to block touch, focus, and accessibility interactions” - Added
PolygonShapeandMorphPolygonShape
Compose Material3 is up to 1.5.0-alpha28, deprecating the stateless Slider() and RangeSlider() among other changes.
Compose Material3 Adaptive has reached 1.4.0-alpha02, with minor tweaks.
Remote Compose shipped 1.0.0-alpha19, with a few small additions.
Wear Compose pushed out 1.7.0-rc01, just a version bump to RC status with “no signficant changes”.
Glance for Wear crept up to 1.0.0-alpha18, adding useSafeFallbackRendererVersion to WearWidgetPreview.
Nav3 reached 1.2.0-rc01. The only change was to “disallow duplicate placeholder names in deep link URI patterns”.
And we also got:
androidx.activity:activity-compose:1.14.0-alpha02androidx.ink:ink-authoring-compose:1.1.0-alpha08androidx.ink:ink-authoring-compose-android:1.1.0-alpha08androidx.ink:ink-brush-compose:1.1.0-alpha08androidx.ink:ink-brush-compose-android:1.1.0-alpha08androidx.ink:ink-geometry-compose:1.1.0-alpha08androidx.ink:ink-geometry-compose-android:1.1.0-alpha08androidx.lifecycle:lifecycle-runtime-compose:2.12.0-alpha03(and multiplatform targets)androidx.lifecycle:lifecycle-viewmodel-compose:2.12.0-alpha03(and multiplatform targets)androidx.navigation:navigation-compose:2.10.1(and multiplatform targets)androidx.navigation:navigation-fragment-compose:2.10.1androidx.savedstate:savedstate-compose:1.6.0-alpha03(and multiplatform targets)
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
Medium: One flag stops the Compose 1.12.0 keyboard flicker
Luca Fioravanti notes that Compose 1.12.0 has a bug, where the keyboard closes then reopens as the focus moves from field to field. Luca describes a workaround, until the bug gets fixed.
Medium: SideEffect with Keys in Jetpack Compose 1.12 — Stop Paying the Coroutine Tax
Sunil Kumar reminds us that Compose 1.12.0 gives us a keyed SideEffect(), which we previously lacked. If you are using LaunchedEffect() because of its key support, but you do not need the coroutine support, consider migrating to SideEffect() — this post explains how.
How to blur what’s behind a Compose dialog, down to API 23
Timofey Krestyanov points out that since a Compose dialog is its own window, the normal modifier-based ways to blur the background do not work. Instead, the post demonstrates a couple of other options for blurring the content that is underneath a Compose dialog (on the Z axis).
Other Interesting Links
- Jetpack Compose Internals
- Medium: Beyond Hardcoded Layouts: Building Server-Driven UI with Ktor & Jetpack Compose
- Medium: Compose Multiplatform in Production: Lessons from Sony and Booking.com
- Medium: Designing Android UIs: RESPONSIVE LAYOUT FOR DIFFERENT SCREEN SIZE
- Medium: From Boolean Flags to Sealed Interfaces in Compose: How to Eliminate Invalid Combinations by…
- Medium: Inside Jetpack Compose: Composition, Lifecycle, and How Recomposition Actually Gets Optimized
- Medium: Introducing CountryCodeKit Compose: A Flexible Country Code Picker for Compose Multiplatform
- Medium: Introducing GuideKit Compose: Beautiful Product Tours for Compose Multiplatform
- Medium: Jetpack Compose Effects —Interview Cheat Sheet
- Medium: Learnings From Building My First Android Widget
- Medium: QuadraticBezier in Jetpack Compose
- Medium: RecompositionMode.Immediate is a frame clock
- Medium: Why OAuth Callbacks Were Silently Disappearing on iOS ComposeMultiplatform
- Why Is Rendering Office Documents So Hard? I Built Docxion to Find Out
Resource Roundup
100% pure code!
GitHub: daviantegroup / kromium
The Daviante Group offers us a wrapper around the Chromium Embedded Framework, resulting in a WebView-style KromiumView() for Compose for Desktop, in addition to support for other JVM desktop frameworks.
GitHub: youndie / appframe
pavel votyakov tackles the Compose for Desktop issue of window manager controls (close, minimize, maximize), aiming for platform fidelity while still offering flexibility for where you might want to do something different.
GitHub: fethica / compose-popupbar
GitHub user fethica created an implementation of the mini-player pattern: a small bar that sits above bottom tabs that can be expanded to fill the screen.
Other Interesting Links
- GitHub: awakekt / awake (2D/3D game engine for Compose Multiplatform)
- GitHub: dim971 / drawably-android (animated hand-drawn design system for Compose for Android)
- GitHub: dim971 / textmorph-android (text change animations for Compose for Android)
- GitHub: Meet-Miyani / admob-compose-multiplatform (AdMob wrapper for Compose for Android and iOS)
- GitHub: milanhorvatovic / reducible (MVI framework with Compose integration for Compose for Android and iOS)
- GitHub: peteropensource / iPhone-Solo (physics-based blurring for Compose for Android)
- GitHub: shayann07 / liquidglass (Liquid Glass-like shader for Compose for Android and Desktop)
- GitHub: sinebloc / quiet-motion (reduce-motion-safe animation primitives for Compose Multiplatform)
- GitHub: TRazDev / Mugshot (
@Preview-based snapshot testing)
Notable Releases
Coil 3.6.2 fixes a couple of bugs.
A Very Particular Set of Skills
Adding Compose capabilities to your coding agents!
The Mercari team brings us the Kotlin PSI MCP Server. This plugin exposes your project’s semantic analysis to agents.
Also, here are a couple more skills that I found:
Recent Issues:
- 2026-09-01: Compose Multiplatform `1.12.0`! New Remote Compose and Glance artifact groups! Cross-platform page curls! Streaming Kotlinx HTML via Molecule! Prevent screenshots! And... what does Material3 have against the rich?!?
- 2026-08-25: API modules and composables! LazyColumn() exceptions! 'Select and copy text' for images and videos!
- 2026-08-18: Compose stable release! Compose Material3 stable too! Liquid Glass in a multiplatform app! Preview generator!