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:

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.

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.

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.