jetc.dev Newsletter Issue #290
Published: 2025-11-18
This week’s short-and-sweet issue looks at blocking clicks on transparent pixels, text input, and mixing Espresso and Compose tests. We also see a circular time range picker and a FAB that jiggles “like a bowlful of jelly”.
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
How Can I Restrict Clicks To Be On Non-Transparent Pixels?
Making an Image() respond to clicks via clickable() or combinedClickable() is easy
enough. If the image is non-rectangular, though, there will be a bunch of transparent
pixels that by default would also be clickable. If for some reason that is not
what you want, you will have some work to do, as we see in this week’s highlighted
Stack Overflow question.
Why Do My iOS Compose UI Tests Run Without a Simulator?
It turns out that non-Android tests in a ui-test Compose Multiplatform module run in a
“mock platform” based on pure JVM. A lot of the time, this is fine, but it causes problems
if you are trying to address a bug that only shows up in iOS proper. Learn more in this
week’s highlighted Kotlinlang #compose Slack thread.
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
Video: Mastering Text Input in Compose
Google’s Meghan Mehta delivered a droidcon London 2025 presentation, looking at the
recent move to the state-based BasicTextField() implementation, connecting to the
LocalAutofillManager, adding semantics for accessibility, and more.
Video: Build a modern and expressive Wear OS app
Google’s Chiara Chiappini had a droidcon London 2025 presentation looking at Wear OS
and the recent release of Compose Material3 Expressive for it. Chiara walks us
through shape morphing, the use of TransformingLazyColumn(), EdgeButton(),
and more.
Medium: Testing Android Apps During the Compose Migration: A Practical Guide to Mixing Espresso and Compose Test
Jerimiah Ham explores the difficulties in testing apps that employ a mix of composables
and classic Views and explains how createAndroidComposeRule() will let you blend
Espresso tests with Compose tests. Jerimiah looks at hybrid page objects, how
to deal with synchronization across two disparate test systems, and more.
Video: White-Labelling Your Compose and XML UI with Design Tokens
Joshua Hughes delivered a droidcon London 2025 presentation exploring how to implement a white-labelling system in a Compose app, so you can have multiple branded apps coming from a single set of code.
Video: Beyond the UI: Compose as a Foundation for Multiplatform Apps
Ash Davies (Mastodon) walks us through how to use Compose to manage all sorts of node trees, not just UI elements, through frameworks like Molecule and Circuit.
Other Interesting Links
- From Material 2 to Material You: Everything New in Material 3 for Android Developers
- Jetpack Compose Performance: Best Practices
- Medium: Easy Shimmer Loading for Jetpack Compose & KMM
- Medium: Fixing YouTube Playback in Jetpack Compose: The 3 Changes That Brought My Player Back
- Medium: Handling One-Time Events in Jetpack Compose: The Anti-Pattern approach using Kotlin
- Medium: How I Built a Notion-Style Editor with Compose Multiplatform
- Medium: I Made My Jetpack Compose Home Screen 3× Faster — Here’s Exactly What I Did
- Medium: Increase App Performance by 10X with Compose Stability
- Medium: Part 2: Liquid Glass Components in Compose Multiplatform 1.10.0-beta01
- Medium: Seamless Entry and Exit Animations with AnimatedVisibility in Jetpack Compose
- Medium: Stop Misusing State in Jetpack Compose: How to Architect It Properly with MVVM
- Video: Jetpack Compose Migration at Wolt
- Video: Views, Compose, Multiplatform - Oh My!
Resource Roundup
100% pure code!
GitHub: iprashantpanwar / JellyFab
Prashant Panwar (Bluesky) brings us a floating action button and menu implementation for Compose for Android, with “smooth, flexible, and delightful jelly-like expansion animation based on real spring dynamics”.
GitHub: yamin8000 / TimeRangePicker
Yamin Siahmargooei offers us a circular picker to choose a time range within a day, for Compose for Android.
GitHub: quantipixels / ikokuko
GitHub user quantipixels has released a form validation library for Compose Multiplatform. It includes a large library of validators, a framework for creating validation-aware widgets, and a declarative way to build up a form and its validation rules.
Combot
Gabriel Brasileiro created a library for testing composables in Compose for Android projects.
Other Interesting Links
- GitHub: kez-lab / DotKit (pixel art canvas for Compose Multiplatform)
- GitHub: suqi8 / coui (design system for Compose Multiplatform)
Notable Releases
Google released Maps for Compose 6.12.2,
fixing a bug where they were doing some initialization work on the main application thread.
Compose Unstyled 1.49.0 is out.
Notably, this adds Platform Themes, which “provide a native look and feel depending on the platform you are running on, such as platform fonts, text sizes, emojis on Web, touch indications, and interactive sizing for controls”.
Or, you can subscribe to the Atom feed or follow Mark Murphy in the Fediverse.
Recent Issues:
- 2025-11-04: Material3 Adaptive! Cahier! Font scaling tests! Data tables! And... will Compose work remotely?!?
- 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!