jetc.dev Newsletter Issue #275
Published: 2025-07-29
This week, we peek at our first beta of Compose Multiplatform 1.9.0
. We track down
a text gradient issue, connect with ExoPlayer and cameras, and add drawing capabilities
to our app. And we cut off a Compose for iOS problem with some snizzors.
(no, that’s not a typo)
Ooooo… What Did We Get?
Reviewing the release notes for the latest Jetpack Compose update!
Compose Multiplatform is up to 1.9.0-beta01
.
This includes more @Preview
parameter support, wider context menu access, better
Web accessibility, and dependency updates.
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
Why Are My Multiplatform Resources Not Working?
Multiplatform resources are great, but there is still a bit of a learning curve, especially
in more complex projects. If you get a MissingResourceException
in your multi-module
Compose Multiplatform project, you might be missing an experimental property, as we
see in this week’s highlighted Stack Overflow question.
Why Is Text Size Eating My Gradient?
Compose Multiplatform demonstrates that Compose can work well across platforms. However,
you will encounter some platform limitations from time to time. One comes with applying
gradients to text, as we see in this week’s highlighted Kotlinlang #compose
Slack
thread. Note that Halil Ozercan
(Mastodon, Bluesky)
wrote a follow-on blog post
with more details and a solution.
droidcon NYC 2025
The droidcon NYC videos are up, including many related to Compose, such as:
- Animate your apps with Rive and Compose Multiplatform
- Beyond Detekt: Building a Kotlin Compiler Plugin for Compose Insights
- Blazing Fast UI Development with Compose Hot Reload
- Compose Multiplatform for iOS: Ready for Production Use
- Demystifying the Compose Runtime & Compiler
- Digging Deeper with Subcomposition + Custom Compose Layouts
- Drag and Drop in Compose!
- Fine-Grained Composable Scoping: Tying UI and Data Lifecycles at the Compilation Stage
- Handling configuration changes in Compose
- (Re)creating Magic(Move) with Compose
- Reimagining Android Dialogs with Jetpack Compose
- UI Layer Architecture for Adaptive Apps with Compose Multiplatform
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
Medium: Annotations in Jetpack Compose
Luka Janjgava walks us through some of the lesser-known annotations in Compose, such as
@DisallowComposableCalls
, @ReadOnlyComposable
, and @NonRestartableComposable
.
Medium: Mastering Playback State with EXO Player
Siva Ganesh Kantamani continues an exploration of ExoPlayer/Media3, this time looking at detecting buffering, analytics, a custom timeline composable, caching, and transitions.
Medium: Compose Multi-Platform + Custom Camera With Common Capture Design
Arul mani reviews how we can support cameras on Android and iOS using Compose
Multiplatform, powered by expect
/actual
on a composable that represents the
camera view.
Other Interesting Links
- Composing Pixels - AGSL Shaders Compose
- Compose stability tips and tricks
- Jetpack Compose + AdMob Made Easy: Modern, Reusable Kotlin Composables for Android Developers
- Medium: Building a Clean OTP Input View in Jetpack Compose
- Medium: Compose screens can be out of hand! Explanation of experiencing two different ways of dealing with screens
- Medium: Forget XML Qualifiers: How to Master Screen Sizes in Jetpack Compose
- Medium: How to Build a Floating View in Jetpack Compose (YouTube-style Mini Player)
- Medium: Mastering AppBar Scroll in Jetpack Compose: Custom scroll behavior with Snap and Fling That Just Work
- Medium: Morphing Blobs with Jetpack Compose: From Circle to Organic Waves
- Medium: Search Dialog Component — A compose implementation
- Medium: Simplifying Shared Element Transitions in Navigation with CompositionLocal
- Medium: Smooth Animated Bottom Sheet Header with Jetpack Compose
- Medium: Understanding SideEffects in Jetpack Compose : Logging and Beyond in Compose
Resource Roundup
100% pure code!
GitHub: thedroiddiv / DrawFull
Divyansh Kushwaha created a DrawingCanvas()
composable that offers freehand and
shape-based drawing, with undo/redo support, for Compose for Android.
GitHub: Infinite-Retry / Snizzors
GitHub user Infinite-Retry improves upon Compose Multiplatform’s support for UIKit views on iOS. Specifically, Snizzors allows UIKit views to be rendered above the Compose content, whereas by default they are rendered underneath, causing a variety of hassles.
GitHub: mahozad / vlc-setup
Mahdi Hosseinzadeh created a Gradle plugin for Compose for Desktop to embed VLC in your project, complete with VLC plugin integration.
GitHub: Wokdsem / kioto
José Luis García is building out a Compose Multiplatform (Android and iOS) UI architecture framework, including navigation support.
Other Interesting Links
- GitHub: Loop312 / compose-keyhandler (simplify Compose Multiplatform keyboard support)
- GitHub: sham-h93 / persian-dtpicker (Persian date picker)
Notable Releases
Coil 3.3.0 is out. It offers memory trimming in the background, support for custom SVG parsers, a bunch of other improvements and fixes, plus dependency updates.
Compose Unstyled is up to 1.38.1
,
released shortly after 1.38.0
.
Sheets can now be imeAware
, an outline()
counterpart to border()
, dynamic detent
heights for sheets, and more.
Or, you can subscribe to the Atom feed or follow Mark Murphy in the Fediverse.
Recent Issues:
- 2025-07-15: Android Makers! Accessibility focus *and* keyboard focus! FABs and FAMs! PWAs!
- 2025-07-08: Compose BOMs! Wear Compose and Compose Multiplatform updates! Nav3! ExoPlayer! Datatables! And... can we transmogrify Compose for Android into Compose Multiplatform?!?
- 2025-07-01: Nav3! Autofill! Server-side rendering! And... Compose alpha BOM, where were you?!?