jetc.dev Newsletter Issue #300

Published: 2026-02-03

It’s the tri-centennial issue of the newsletter! 🎉 As always, I am grateful for everyone who has subscribed, reads the newsletter through the Atom feed, or picks it up via my Mastodon or Bluesky posts.

This week, we look at a lot of bug fixes, closely examine onGloballyPositioned(), chat a bit about accessibility, and reduce the size of our Android apps. And we see a library that helps us with large fonts, allowing us to download slices at a time.

Ooooo… What Did We Get?

Reviewing the release notes for the latest Jetpack Compose update!

The Compose BOMs are up to 2026.01.01. The production BOM should point to 1.10.2 of the core artifacts, and that patch release contains small bug fixes.

The alpha BOM should point to 1.11.0-alpha04 of the core artifacts. Here, we get:

  • A non-lazy Grid(), filling a long-standing gap in the foundation composables
  • A FlexBox(), described as “a superset of Row, Column, FlowRow, and FlowColumn
  • More bug fixes

Compose Material3 is up to 1.5.0-alpha13, also mostly for bug fixes.

Compose Material3 Adaptive is out with 1.3.0-alpha07, once again mostly for bug fixes.

Remote Compose is now up to 1.0.0-alpha03, adding support for shapes and colors in BorderModifier, introduced the concept of RemoteDensity, and added a CombinedAction to support more than one action on a click event.

Compose for Wear OS reached 1.6.0-alpha09. While this is mostly bug fixes, they renamed SnapPositionalThreshold and SnapSensitivity to LowSnapPositionalThreshold and LowSnapSensitivity.

Glance for Wear OS is at 1.0.0-alpha02, also mostly bug fixes.

We received updates to many Compose-related artifacts, including:

  • androidx.activity:activity-compose:1.12.3
  • androidx.camera:camera-compose:1.5.3
  • androidx.camera:camera-compose:1.6.0-beta01
  • androidx.camera.viewfinder:viewfinder-compose:1.5.3
  • androidx.camera.viewfinder:viewfinder-compose:1.6.0-beta01
  • androidx.navigation:navigation-compose:2.9.7 (plus multiplatform targets)
  • androidx.navigation:navigation-fragment-compose:2.9.7
  • androidx.navigationevent:navigationevent-compose:1.0.2 (plus multiplatform targets)
  • androidx.paging:paging-compose:3.4.0 (plus multiplatform targets)

And JetBrains released Compose Multiplatform 1.11.0-alpha02. This drops Apple x86_64 support, renames WebElementView to HtmlElementView, adds a new ComposeUIView for iOS, and adds many other improvements and bug fixes.

Composable Commentary

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

How to create Dials in Jetpack Compose

sinasamaki (Mastodon, Bluesky) discusses their new ChromaDial library, for creating interactive dials in Compose. This library supports all Compose Multiplatform targets and offers a range of features, from overshot tracking, customizable step snapping behavior, rich style control, and more.

Video: Making Apps Accessible with Kotlin and Compose

Huyen Tue Dao (Mastodon, Bluesky) interviewed Vanessa Johnson at KotlinConf 2025 regarding implementing accessibility support in Compose applications.

Medium: The Untapped Power of Jetpack Compose Modifiers

Sergey Drymchenko reminds us that modifier order matters a lot. If you think of each modifier in your modifier chain as wrapping a Box() around the next modifier’s Box() (and eventually your content), it is easier to see where your modifier order may be going wrong.

Medium: From Pixels to Perfection: A Deep Dive into Compose’s onGloballyPositioned

Sometimes, you really need to know where your composable is being rendered on-screen. Sehaj kahlon explores the onGloballyPositioned() modifier, walking through scenarios like parallax headers and tooltip anchoring to show how to apply it.

Vertical text in Jetpack Compose (without rotation width problems)

Vladislav Kochetov demonstrates how to render text vertically without using the rotate() modifier. Using rotate() simply rotates the content, not the composable size, and so only works in certain situations. Vladislav shows how to rotate individual characters inside of a Column() as the alternative approach.

Is Jetpack Compose Making Your APK Fatter? (And How to Fix It)

Sivavishnu R reviews how our Android app size may change based on an initial migration to Compose, and then how various optimization techniques (e.g., R8) can improve upon that.

Medium: Building an Infinite Video Feed in Jetpack Compose: A Media3 Tutorial

Oğuzhan Aslan takes a deep dive into using a VerticalPager() for a video feed, with the content driven by the ExoPlayer-powered Media3 library.

Resource Roundup

100% pure code!

GitHub: Lyxot / Klyph

Long Yixing is building an extensive library to help in dealing with the size of Chinese/Japanese/Korean fonts. Rather than package or download the entire font, Klyph uses CSS files that define font slices based on Unicode point ranges, so we can download only the subsets that we need. This library supports all Compose Multiplatform targets.

GitHub: gleb-skobinsky / ThemeAnimator

Gleb Gutnik brings us a Compose Multiplatform library (supporting all targets) that animates the transition between themes, such as between light and dark. The library includes four standard animation formats: crossfade, slide, and two types of circular reveal.

GitHub: saltpay / lemonade-design-system

The Saltpay team created a design system for Compose Multiplatform (Android, iOS, desktop), Flutter, and SwiftUI.

GitHub: yankeppey / kmp-maps-compose

Andrei Buneyeu is working on a Compose Multiplatform wrapper around Google Maps for Android and iOS.

Notable Releases

Maps for Compose had two releases. 8.0.0 raised the Maps version to 20.0.0, and there are breaking changes. 8.0.1 was released shortly thereafter with a GroundOverlay bug fix.

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

Powered by Buttondown

Or, you can subscribe to the Atom feed or follow Mark Murphy on Mastodon or Bluesky.

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!