jetc.dev Newsletter Issue #311

Published: 2026-03-24

This week, we look at viewmodel scope, more inclusive drag-and-drop options, and shared element transitions in Nav3. We see some official skills and an emoji picker. And, we hear from Jaewoong Eum, Jaewoong Eum, Jaewoong Eum, and Jaewoong Eum.

Composable Commentary

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

Medium: Scope of ViewModels in Compose Navigation 3

Domen Lanišnik (Bluesky) points out that while ViewModel was scoped to be per navigation destination in Nav2, that is opt-in behavior for Nav3 — by default, all destinations share a single ViewModel.

Compose Preview Driven Development with Instant Feedback

Jaewoong Eum (Mastodon, Bluesky) writes about the power of having a robust catalog of @Preview functions and how they can be used for more than just “eyeballing” what your composables render as.

Optimize App Performance by Mastering Stability in Jetpack Compose

The previously-mentioned Jaewoong Eum (Mastodon, Bluesky) gives us a fresh review of the state of stability in Compose: what it is, where we still need marker annotations, how to analyze our current stability status, and more!

Compose Preview Renders Differently Than Your Real Device. Here’s Why.

Jaewoong Eum, (Mastodon, Bluesky) who appears to have taken over this newsletter 😀, writes about the differences between the rendering of a composable in a @Preview function versus when it runs “for realz”, owing to platform differences. The post also explains how Compose HotSwan can help you avoid that discrepancy by showing previews on a device.

Medium: Bridging the Gap: Automating Your Jetpack Compose Component Catalog

Continuing the theme of previews, Maik Peschutter reviews ComposeComponentCatalog, an option for providing an in-app way of letting graphic designers and others view the full roster of previews.

Inclusive Android Apps #5: The Problem of Drag and Drop

Eevis Panula (Mastodon, Bluesky) points out that drag-and-drop is awesome but may be difficult for all of your users to accomplish, especially if they are using screen readers. Eevis also demonstrates ways to improve the reordering experience, including leveraging semantics to help assistive technologies.

Smooth Handoff

KMP Bits writes about LocalNavAnimatedContentScope, a way of implementing shared element transitions between Nav3 destinations.

Resource Roundup

100% pure code!

GitHub: android / skills

Google released a set of coding agent skills of relevance to Android developers. Besides the skill files themselves, these are minimally documented, but see this for what there is.

GitHub: skydoves / android-skills-mcp

Jaewoong Eum, (Mastodon, Bluesky) in an effort to once again claim this newsletter on behalf of hot swans everywhere, turned around and wrapped Google’s skills in an MCP server (to reduce the cost of preloading skills). This repo also offers a CLI for converting skills into native rules files for various coding agents.

GitHub: ignaciotcrespo / compose-preview-cli

Ignacio Tomas Crespo created a TUI (terminal UI) for browsing @Preview functions in your project and launching them on a connected device.

GitHub: digitalby / kmp-emoji-picker

Yury Vashchylau (Bluesky) brings us an emoji picker (EmojiPicker()) implementation for Compose Multiplatform, supporting most major platforms.

A Very Particular Set of Skills

Adding Compose capabilities to your coding agents!

Besides Google’s set of Android skills mentioned above, here are a few more that popped up:

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

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!