jetc.dev Newsletter Issue #314
Published: 2026-05-12
New BOMs are out, and we have other updates as well to check out!
Beyond that, we look at form validation and tracing through ViewModel construction. Plus, we see multiplatform stylus support and some scrolling support libraries.
NOTE: I will be taking a short break, so see you in two weeks!
Ooooo… What Did We Get?
Reviewing the release notes for the latest Jetpack Compose update!
The Compose 2026.05.00 BOM editions are out. The stable BOM should point to 1.11.1, containing bug fixes.
The alpha BOM should point to 1.12.0-alpha02. Of note:
-
There is a new
SideEffect()overload that accepts keys, for improved one-shot side-effects -
There is a new
meshGradient()modifier
Compose Material3 now has a 1.5.0-alpha19 release. Typography now offers support for a default font family. In addition, a bunch of APIs were promoted out of experimental status, and there were some bug fixes.
Compose Material3 Adaptive is out with 1.3.0-beta01, with no changes, other than devolving the “scaffold order APIs” back to experimental status.
Remote Compose is up to 1.0.0-alpha010. Of particular note,
Remote Compose is now testable, via a new androidx.compose.remote:remote-testing library.
Glance for Wear is up to 1.0.0-alpha09, which now has its own ExperimentalGlanceWearApi annotation. Also, Glance for Wear probably is gaining better IDE support, courtesy of a new androidx.glance.wear:wear-tooling-preview library.
TV Compose has new stable releases:
androidx.tv:tv-foundation:1.0.0androidx.tv:tv-material:1.1.0
Wear Compose is up to 1.7.0-alpha02, with some bug fixes.
And we also got these other Compose-related updates:
androidx.camera:camera-compose:1.6.1androidx.camera.viewfinder:viewfinder-compose:1.6.1androidx.navigation:navigation-compose:2.10.0-alpha04(and multiplatform targets)androidx.navigation:navigation-fragment-compose:2.10.0-alpha04androidx.navigationevent:navigationevent-compose:1.1.1(and multiplatform targets)androidx.paging:paging-compose:3.5.0(and multiplatform targets)androidx.savedstate:savedstate-compose:1.5.0-rc01(and multiplatform targets)
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
How Can We Scroll To an Item In a LazyColumn() From Outside the Composable?
In the end, the author had the right idea. The crash in the original implementation stemmed from GlobalScope, which is rarely the right answer in production code. Learn more in this week’s highlighted Stack Overflow question.
How Can We Get the Coordinates of Indirect Children in a Single Layout Pass?
onGloballyPositioned() is (relatively) easy, but it can trigger a second layout pass, depending on how you use that position. Avoiding that extraneous layout pass may be possible with some additional work, 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: A Validation Architecture for Forms in Jetpack Compose
Melek Sönmez Cesur gives us a tour of an approach for forms management in Compose, allowing forms to validate across all input values while minimizing the ceremony for declaring what composables supply those input values.
Medium: ViewModels in Jetpack Compose: A Deep Dive into the Internals
Medium user Avinash walks us through the innocent-looking viewModel() function, explaining how it finds the appropriate ViewModelStoreOwner for your composition, how NavController affects that, and how this all ties back to onRetainNonConfigurationInstance() (from a bygone era of Android app development).
Video: Mastering Recomposition: Optimizing State Changes for Efficient UI
Marcin Moskala delivered a presentation at Android Makers 2026, walking through the process of recomposition and how to tune your state updates to trigger recomposition at all the right times… and none of the wrong ones.
Tuning Compose Themes Live: A Visual Feedback Loop for UI Design
Jaewoong Eum (Mastodon, Bluesky) writes about how you can use Compose HotSwan to make it easier to evaluate themes on the fly, without rebuilds, especially coming from coding agents. See also this post on using Compose HotSwan to hot-reload side effects.
Other Interesting Links
- Medium: 5 More Compose Recomposition Mistakes That Kill Your App Performance
- Medium: Android Developer Production Experiences: 3 — The Composition Race Condition
- Medium: Building GPU Shader Effects for Compose Multiplatform: From Scratch to ShaderX
- Medium: Custom Bottom Sheets in Compose, Part 2
- Medium: Fabric Prism: Building a Realistic Component Lab with Compose Multiplatform
- Medium: Loading Animation with Gradient Circle
- Medium: Tooltips in Material 3 Jetpack Compose (with Examples)
- Video: Using Kotlin/Compose Multiplatform to Revive a Historic Multiplayer Online Drum Machine
Resource Roundup
100% pure code!
GitHub: MohamedRejeb/compose-stylus
Mohamed Rejeb created a penInput() modifier and a PenInkSurface() composable for cross-platform stylus support on Compose Multiplatform for all major platforms.
GitHub: yshrsmz/changelog-compose
Yasuhiro SHIMIZU
(Bluesky)
brings us a ChangelogContent() composable that renders the content in an XML-described changelog. This presently supports Compose for Android.
GitHub: AbhijithShambu/compose-scrollbar-modifier
Abhijith Shambu offers a flexible scrollbar implementation for Compose for Android, iOS, and desktop. It offers support for horizontal and vertical scrollbars, auto-hide, and customizable scrollbar look-and-feel.
GitHub: farsroidx/ComposeElasticOverscroll
Mohammad ali Riazati created a modifier-based elastic overscroll implementation for Compose for Android. It avoids recompositions during scrolling and gives you an exponential resistance model for physical spring-like feeling.
Other Interesting Links
- GitHub: BharathVishal/TextFileViewer-for-Android (TXT/HTML/CSS/CSS/CSV viewer composable for Compose for Android)
- GitHub: ChristophyBarth/modifier-node-cookbook (modifier collection for Compose for Android)
- GitHub: Coderkube-App/compose-pixel-perfect-design (percent-of-height/width dimensions for Compose for Android)
- GitHub: ConaMobileDev/PdfKmp (vector-based PDF rendering for Compose for Android and iOS)
- GitHub: kdroidFilter/ComposeMediaPlayer (media player for Compose Multiplatform)
- GitHub: komodgn/compose-codeview (syntax highlighting for Compose for Android/iOS/Web)
- GitHub: ksharma-xyz/aagya (permission framework for Compose for Android and iOS)
- GitHub: Orange-OpenSource/ouds-android (Orange Unified Design System for Compose for Android)
- GitHub: Rend1x/compose-animated-list (diff-driven animated lists for Compose for Android)
- GitHub: stevdza-san/CountryPicker-KMP (country picker dialog for Compose Multiplatform)
- GitHub: talha-malik-05/AnimBarChart (animated bar charts for Compose for Android)
A Very Particular Set of Skills
Adding Compose capabilities to your coding agents!
WooSeung Kim created FixThis, a tool to help you explain to a coding agent a particular portion of your Compose UI that needs adjustments. You point out on the screen where the issue lies, and FixThis prepares a prompt for you telling the agent where that is.
In addition, these skill files showed up this week:
Recent Issues:
- 2026-04-28: Compose 1.11.0 is stable! Compose Multiplatform beta! Testing multiplatform composables! LinkBuffer! Tables! PDFs! And... text underlining?!?
- 2026-04-21: ViewModel Scope in Nav3! More inclusive drag-and-drop! Shared element transitions in Nav3! Official skills!
- 2026-04-14: 1.11.0 RC and beta releases! App languages! Atomic design! Action modes! And... *another* newsletter?!?