jetc.dev Newsletter Issue #256

Published: 2025-03-11

I’m back! 👋🏻

We got a new Compose beta and a Compose Multiplatform alpha, so let’s see what they are about!

In addition, we look at hot reload, mesh gradients, and strong skipping. Plus, we look at a library to simplify permissions and several releases to notable libraries.

Also, FYI and ICYMI, Figma Relay is going away soon. This is why I use hand-crafted small-batch bespoke Figma-to-Compose conversions, referred to more commonly as “just code it”.

Ooooo… What Did We Get?

Reviewing the release notes for the latest Jetpack Compose update!

Back before my vacation, 1.8.0-beta03 of the main Compose artifacts dropped. Mostly, this seems to be bug fixes, as expected of a third beta. However, a couple of accessibility-related API changes snuck in as well.

We got seven new artifacts, for Compose testing and Navigation for Compose:

  • androidx.navigation:navigation-compose-android
  • androidx.navigation:navigation-compose-jvmstubs
  • androidx.navigation:navigation-compose-linuxx64stubs
  • androidx.compose.ui:ui-test-accessibility
  • androidx.compose.ui:ui-test-accessibility-android
  • androidx.compose.ui:ui-test-junit4-accessibility
  • androidx.compose.ui:ui-test-junit4-accessibility-android

We also got the following updates to Compose-adjacent artifacts:

  • androidx.activity:activity-compose:1.10.1
  • androidx.camera:camera-compose:1.5.0-alpha06
  • androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha13
  • androidx.constraintlayout:constraintlayout-compose:1.1.1
  • androidx.constraintlayout:constraintlayout-compose-android:1.1.1
  • androidx.lifecycle:lifecycle-runtime-compose:2.9.0-alpha11
  • androidx.lifecycle:lifecycle-runtime-compose-android:2.9.0-alpha11
  • androidx.lifecycle:lifecycle-runtime-compose-jvmstubs:2.9.0-alpha11
  • androidx.lifecycle:lifecycle-runtime-compose-linuxx64stubs:2.9.0-alpha11
  • androidx.lifecycle:lifecycle-viewmodel-compose:2.9.0-alpha11
  • androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-alpha11
  • androidx.lifecycle:lifecycle-viewmodel-compose-desktop:2.9.0-alpha11
  • androidx.media3:media3-ui-compose:1.6.0-beta01
  • androidx.navigation:navigation-compose:2.8.8
  • androidx.navigation:navigation-compose:2.9.0-alpha07
  • androidx.navigation:navigation-compose-android:2.9.0-alpha07
  • androidx.navigation:navigation-compose-jvmstubs:2.9.0-alpha07
  • androidx.navigation:navigation-compose-linuxx64stubs:2.9.0-alpha07
  • androidx.navigation:navigation-fragment-compose:2.8.8
  • androidx.navigation:navigation-fragment-compose:2.9.0-alpha07
  • androidx.savedstate:savedstate-compose:1.3.0-alpha09
  • androidx.savedstate:savedstate-compose-android:1.3.0-alpha09
  • androidx.savedstate:savedstate-compose-jvmstubs:1.3.0-alpha09
  • androidx.savedstate:savedstate-compose-linuxx64stubs:1.3.0-alpha09

In addition, JetBrains released 1.8.0-alpha04 of Compose Multiplatform. This release boosts Compose for Desktop performance, adds a bunch of iOS features, and reverts Material3 due to a timing issue between Google and JetBrains releases.

One Off the Stack, One Off the Slack

You’ve got questions. That’s understandable!

How Can We React to Desktop Theme Changes?

isSystemInDarkTheme() works great for Android and iOS. It works… less great for desktop platforms. But there are workarounds, as we see in this week’s highlighted Stack Overflow question.

Is Reloading Hot?

JetBrains’ Compose Hot Reload is now available on Maven Central. Sebastian Sellmair (Mastodon, Bluesky) calls for feedback and gets some, in this week’s highlighted Kotlinlang #compose-desktop Slack thread.

Composable Commentary

Posts, videos, and other new information related to Jetpack Compose!

Video: Compose runtime and performance

The Android Developers Backstage crew talked to Chuck Jazdzewski (Bluesky) and Leland Richardson (Bluesky) from the Compose team to discuss an ever-popular topic in Compose development: app performance. They feel our pain and discuss recently-implemented and upcoming improvements to help us out!

Video: Making Gradients Easy!

The Code with the Italians team talked with Google’s Chris Sinco (Bluesky) about Mesh. Mesh is a Compose for Desktop tool to help build mesh gradients for Compose, based on sinasamaki’s mesh gradient code.

SoundCloud uses Jetpack Glance to build Liked Tracks widget in just 2 weeks

Google’s Summers Pittman wrote a summary about Soundcloud’s success with using Glance to quickly implement an app widget using composables.

Strong skipping does not fix Kotlin collections in Jetpack Compose

We like skipping composables when inputs do not change, which is why we (generally) like the new strong skipping mode, which does a better job of inferring which types are stable and can be skipped. As Jorge Castillo (Mastodon, Bluesky) points out, though, this does not completely resolve problems, especially with standard Kotlin collections.

Medium: Composing with Accessibility in Mind: Because Every User Matters! — Part 1

Bhoomi Vaghasiya Gadhiya walks us through several accessibility-related options in Compose, from contentDescription on Image() to onClickLabel on the clickable() modifier.

Resource Roundup

100% pure code!

GitHub: meticha / permissions-compose

The Meticha team brings us a library for simplifying the act of requesting runtime permissions in Compose for Android apps, handling both required and optional permissions.

GitHub: lmbotero / PullToRefresh

Luis Miguel Botero Tobon created a Compose Multiplatform Material3-based pull-to-refresh implementation that supports Android, iOS, and desktop.

GitHub: adamglin0 / compose-continous-rounded-corner-shape

GitHub user adamglin0 created a Compose Multiplatform ContinuousRoundedCornerShape, offering a custom smooth parameter, to better align with the iOS design system.

Notable Releases

Horologist has a 0.6.23 release, for dependency updates.

Maps for Compose is up to 6.5.0, adding support for Nav for Compose.

Compose Destinations released a stable 2.1.0, adapting to KSP2.

Circuit now sports a 0.27.0 release, offering screen-based animation overrides and some bug fixes.

Compose Unstyled is out with 1.20.1, for some bug fixes.