jetc.dev Newsletter Issue #258

Published: 2025-03-25

We got our first 1.8-series beta for Compose Multiplatform, so we peek at it!

In addition, we look at accessibility, hot reload, and BringIntoViewSpec. Plus, we explore a blurhash implementation and hierarchical animations.

Ooooo… What Did We Get?

Reviewing the release notes for the latest Jetpack Compose update!

JetBrains has released Compose Multiplatform 1.8.0-beta01! Mostly, this contains bug fixes, but it also supports iOS trackpad input, improves iOS behavior when the view controller leaves the hierarchy, and adds @Composable to the actual implementation of WindowInsets.Companion functions.

Also, androidx.media3:media3-ui-compose is up to 1.6.0-rc02.

One Off the Stack, One Off the Slack

You’ve got questions. That’s understandable!

How Can I Pop Up an Instructions Box?

You may have encounter a UI pattern for fields for creating passwords, where a box of rules for valid passwords pops up once the field gains the focus. The best solution is to get rid of the rules, as most password-validity rules (other than minimum length) are no longer recommended. But, if you need to display something like this, a properly-positioned Popup() can work, as we see in this week’s highlighted Stack Overflow question.

How Can I Access Screen Density in a ViewModel?

The answer is “please don’t”. When multiple Compose experts steer you away from an approach, this should be a clue that what you are doing is inadvisable. Learn more in this week’s highlighted Kotlinlang #compose Slack thread.

Composable Commentary

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

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

Bhoomi Vaghasiya Gadhiya continues a series of posts on accessibility in Compose UI. This time, Bhoomi explores mergeDescendants (consolidating semantic guidance for related composables), custom actions (to eliminate redundancy), stateDescription, and more!

Medium: Compose Hot Reload is Now Available

Suhyeon Kim walks us through the work-in-progress implementation of “hot reload” for Compose for Desktop, to speed up UI previews.

Medium: BringIntoViewSpec — introduction

Karol Ksionek points out the loss of TvLazyColumn() and TvLazyRow() from TV Compose and explains their role in a non-touchscreen environment like a TV. Karol then explains how BringIntoViewSpec and LocalBringIntoViewSpec can give us similar functionality using a regular LazyColumn() or LazyRow().

Joe Birch (Mastodon) takes a look at Compose Material3’s SearchBar() and its feature set, including presenting suggestions, single-click clearing of the current search text, and more.

Resource Roundup

100% pure code!

GitHub: ngallazzi / KMP-Places-Autocomplete

Nicola Gallazzi built a series of auto-complete composables for collecting addresses, cities, and countries, using Google Places as the data source. This is built on Compose Multiplatform, supporting Android and iOS at present.

GitHub: brys0 / compose-blurhash

Blurhash is a way to create short strings that can be decoded into a custom image placeholder. GitHub user brys0 is working on a Compose Multiplatform renderer for such hashes, presently supporting desktop, iOS, and Web/Wasm platforms.

GitHub: pauloaapereira / AnimatedSequence

Paulo Pereira created a framework for implementing chained or hierarchical sequences of animated effects.

GitHub: zt64 / compose-pipette

GitHub user zt64 brings us a trio of Compose Multiplatform color picker widgets, in circle, square, and ring configurations.

Notable Releases

Horologist came out with 0.7.11-alpha and 0.7.12-alpha releases in rapid succession, updating dependencies and fixing some bugs.

Similarly, Maps for Compose shipped 6.5.1 and 6.5.2 back to back, both seemingly reverting code from 6.5.0.

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

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!