jetc.dev Newsletter Issue #294

Published: 2025-12-16

This week, we look at the latest RC for Compose Multiplatform and explore a Card() corner clipping conundrum. We extend our reality in some The Android Show segments and continue to grapple with Nav3. We explore using React Native(!) syntax to set up composables. And I point out a problem with malicious GitHub repositories, peddling malware in lieu of Compose libraries.

Ooooo… What Did We Get?

Reviewing the release notes for the latest Jetpack Compose update!

JetBrains released Compose Multiplatform 1.10.0-rc02, so perhaps we will get a stable release by the end of 2025! As one would expect from a second RC release, this one has a few bug fixes.

Also, note that we got composable updates for Jetpack Camera and Jetpack Media3:

  • androidx.camera:camera-compose:1.5.2
  • androidx.media3:media3-ui-compose:1.9.0-rc01
  • androidx.media3:media3-ui-compose-material3:1.9.0-rc01

One Off the Stack, One Off the Slack

You’ve got questions. That’s understandable!

Why Does My Card Get Corners When Clicked?

Normally, to make a composable clickable, you use something like the clickable() modifier. Occasionally, a composable offers its own onClick slot parameter. For those composables, using the slot parameter tends to be a better solution, as we see in this week’s highlighted Stack Overflow question.

What Is Required To Be @Stable?

The @Stable annotation is powerful, but adding it to a type means that the Compose Compiler will expect that type to adhere to the @Stable rules. See what those rules are and how to interpret them in this week’s highlighted Kotlinlang #compose Slack thread.

The Android Show, XR Edition

Some segments of the “XR Edition” of The Android Show cover using Compose for XR app development, including:

This official blog post on Glimmer may also be of interest!

Composable Commentary

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

Video: Navigating Navigation 3

Google’s Don Turner and Alex Vanyo spend time with the Code with the Italians team, exploring what’s new with Compose for Navigation 3 and how to adapt your app to Nav3’s specific approaches.

Tap Detection on Arbitrary Shapes with Compose

Romain Guy explains how to use PathHitTester in Compose to detect when a shape defined by an arbitrary Path is tapped upon. Romain also points out his pathway library that, among other things, supports deriving a Path from a bitmap.

Medium: From View.INVISIBLE to Modifier.visible(): Rethinking Visibility ️in Jetpack Compose

Nav Singh highlights the visible() modifier in 1.11.0-alpha01 of Compose Foundation. This modifier, when passed a false parameter, works a lot like View.INVISIBLE: it allocates the space for the composable but does not render its contents.

Medium: Demystifying Jetpack Compose sizing Modifiers

Sherry Yuan walks through several different modifiers for defining the width of a composable, explaining the role of each and when each should be used.

Medium: Navigation 3 — The new navigation system for Jetpack Compose

Nicos Nicolaou takes a deep dive into Nav3, from basic setup through transition animations and adaptive screen support.

Revisiting Compose Perf-Land in 2025

theapache64 takes a tour of Compose performance challenges from yesteryear and reports on which ones have changed or been addressed by improvements in Compose itself.

Shared element transitions for large screened devices

TJ Dahunsi is a strong proponent of shared element transitions but has encountered challenges using them on larger screens. TJ explains what is going on and how to work around the difficulties.

Resource Roundup

100% pure code!

GitHub: deanalvero / rn-compose-multiplatform

Dean Alvero is working on a library that allows you to use React Native-style JSX syntax for building a composition in Compose Multiplatform, supporting all targets.

GitHub: justdeko / kuiver

Denis Koljada brings us a Compose Multiplatform library that renders cyclic and acyclic graphs, offering a ton of customization options for how the graph and individual nodes get rendered.

GitHub: timoseyfarth / tabler-icons-kmp

Timo Seyfarth set up a Compose Multiplatform library (Android, iOS, desktop) with ~6,000 icons from the Tabler icons set.

…And One More Thing

I am seeing GitHub repositories that pretend to be Compose libraries from prominent developers, but instead [are distributing malware]. Be careful where you get your Compose libraries from!

Featured here? Please add this badge to your article or repo! As Seen In - jetc.dev Newsletter Issue #294

Powered by Buttondown

Or, you can subscribe to the Atom feed or follow Mark Murphy in the Fediverse.

Spread the Word!
Suggestions?
If you have ideas for items for future newsletter editions, reach out via email or contact Mark Murphy on kotlinlang Slack!