jetc.dev Newsletter Issue #308

Published: 2026-03-31

We got a fresh beta for Compose Multiplatform, along with the first signs of Remote Compose for Wear OS!

In addition, this week we look back on PredictiveBackHandler() and its replacement, get flexible with our boxes, and consider if text input could be rich.

And we look at yet another composition tracer. No, really.

Ooooo… What Did We Get?

Reviewing the release notes for the latest Jetpack Compose update!

JetBrains released Compose Multiplatform 1.11.0-beta01. iOS’ Z-axis handling of Dialog() and Popup() changed, and there are a bunch of bug fixes, to go along with the usual upstream changes.

Also, Google set up a new artifact group, androidx.wear.compose.remote, containing a single artifact, androidx.wear.compose.remote:remote-material3. Based on the commits, it feels like this is Remote Compose for Wear OS.

Composable Commentary

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

Medium: Goodbye PredictiveBackHandler: How to Migrate to the New Navigation Event in Compose

Santiago Mattiauda points out that PredictiveBackHandler() was deprecated in Compose Multiplatform 1.10.3 and explains how to switch to NavigationBackHandler() instead.

Medium: Meet FlexBox: The Powerful New Layout System for Compose

Nav Singh (Mastodon) writes about FlexBox(), an upcoming container composable inspired by CSS’s flexbox system. It acts like a combination of simple rows/columns and FlowRow()/FlowColumn().

Medium: Lessons from Building and Shipping a Compose Desktop App with Gradle

Szymon Cytrowski shipped a Compose for Desktop app and lived to tell the tale! When a post contains “What could possibly go wrong?”… assume that something went wrong, and Szymon explains how to get past the issues.

Medium: Rich Content in Text Input in Jetpack Compose

Oğuzhan Aslan is rich! No… wait… Oğuzhan Aslan’s input is rich! No… wait… Oğuzhan Aslan’s input on rich content in text input is rich! Anyway, see how the contentReceiver() lets you accept GIFs or other rich content in your Compose app.

Medium: Pooling ExoPlayer in Jetpack Compose for smooth video previews

Nikita Chicherin points out the differences between TikTok-style full-screen vertically-scrolling feeds and a carousel, as the latter often needs several more video players. Nikita explains how to minimize overhead while supporting that sort of UI, despite the intrinsic cost of playing videos.

Build Your Own Landscapist Image Plugin in Jetpack Compose

Jaewoong Eum (Mastodon, Bluesky) is the creator of Landscapist, a Compose Multiplatform-ready image-loading library. This post explains Landscapist’s plugin system, how Landscapist’s built-in plugins work, and how you can craft your own.

Resource Roundup

100% pure code!

GitHub: ienground / compose-hig

GitHub user ienground has forked compose-cupertino and is updating it for Apple’s latest Human Interface Guidelines and Liquid Glass.

GitHub: andrew-malitchuk / yet-another-composition-tracer

Andrew Malitchuk has created a plugin for IntelliJ IDEA/Android Studio that helps you trace composition locals, including gutter icons with color swatches for theme color references, “code vision” for showing providers of the composition locals, and more. See this Medium post for additional info.

GitHub: ajay-pal-singh / compose-swipeable-list

Ajaypal Singh brings us SwipeableList() and GroupedSwipeableList() for lists of composables whose elements can be swiped. This library supports Compose for Android.

GitHub: stevdza-san / Swipeable-KMP

Stefan Jovanovic offers us swipeable elements, supporting Compose Multiplatform for all major platform targets. These elements support both swipe-to-reveal and swipe-to-dismiss patterns, with custom theming, rich animation options, platform-native haptic feedback, etc.

A Very Particular Set of Skills

Adding Compose capabilities to your coding agents!

Aleksandr Litovchenko created a Claude plugin that teaches the agent about Decompose.