jetc.dev Newsletter Issue #267
Published: 2025-06-03
This week, we have questions about navigation, learn what’s new in Compose, and see how to automate accessibility testing. Plus, we render ribbons, add overscroll effects, and try to show snackbars exactly once.
Ooooo… What Did We Get?
Reviewing the release notes for the latest Jetpack Compose update!
Nav3 received an update to 1.0.0-alpha02
, and there are new Nav3-adjacent artifacts:
androidx.lifecycle:lifecycle-viewmodel-navigation3
androidx.lifecycle:lifecycle-viewmodel-navigation3-android
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
How Do I Pass Parameters in Navigation?
Because parameters on Navigation for Compose routes are optional, some people miss the fact that they are indeed available. Instead, some developers try defining the same route multiple times to pass different values to their composables and run into problems as a result. See more in this week’s highlighted Stack Overflow question.
What is the Native Android Transition for Nav for Compose?
Navigation for Compose lets you specify transition animations between screens, but
the default (a fade) is not platform-specific. Not only is there no Android-specific
default, but there is no Android-specific implementation at all, as we learn in this
week’s highlighted Kotlinlang #compose-android
Slack thread.
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
Video: What’s new in Jetpack Compose
One slightly-delayed Google I|O 2025 video is this one, featuring Google’s Jolanda Verhoef (Mastodon, Bluesky) , focusing on Compose and what has all been added recently.
Medium: Automate A11y Testing in Compose
Nav Singh
(Mastodon)
explores the Accessibility Testing Framework (androidx.compose.ui:ui-test-junit4-accessibility
)
and how to use enableAccessibilityChecks()
to identify accessibility issues within
your Compose for Android UI.
Wrapping a Fancy Ribbon around any Composable
sinasamaki
(Mastodon, Bluesky)
examines how to implement an animated ribbon effect, wrapping around a
composable on the Z axis for a 3D effect. The result is a ribbon()
modifier that you
can apply where needed!
Medium: Fixing LaunchedEffect Triggering Before a Screen is Visible in Jetpack Compose
Rohit Kumar ran into problems with LaunchedEffect()
being executed more frequently
than expected, tied into navigation transitions between screens. Rohit demonstrates
a OnResumeEffect()
that helps to alleviate this problem.
Compose/Wasm and the Kotlin Playground
John O’Reilly pointed out on Bluesky that, “As announced at @kotlinconf.com, we can now write Kotlin/Wasm based Compose for Web code in play.kotl.in/compose”.
Other Interesting Links
- Deep Dive into Jetpack Compose Scoped Recomposition for Performance
- Marching Ants
- Medium: 10 Advanced Jetpack Compose Tricks I Wish I Knew Earlier as an Android Developer
- Medium: 5 Expert Jetpack Compose Techniques That Boosted My Productivity
- Medium: Article 3.2: Lazy Layouts & Flow Layouts in Jetpack Compose
- Medium: Better Previews in Compose with State Hoisting + MVI template
- Medium: Building Accessible Android UIs with Jetpack Compose
- Medium: Building Accessible Android UIs with Jetpack Compose
- Medium: Compose UI Performance Secrets (Part 4): Runtime Mastery & Fine-Tuning
- Medium: Event Handling in Jetpack Compose: Channels, SharedFlow, and LiveData Compare
- Medium: How to Handle Predictive Back Gesture in Compose
- Medium: Saving the UI State in a Compose Multiplatform App
Resource Roundup
100% pure code!
GitHub: AungThiha / SnackbarChannel
“Exactly once” state management has long been a pain. Aung Thiha offers a Channel
-based
way to trigger snackbars for Compose Multiplatform that may avoid some of that pain.
GitHub: SomnioNocte / overscroll
GitHub user SomnioNocte brings us bouncedOverscroll()
and delegateOverscroll()
modifiers to bring overscroll spring behavior to our scrollable containers in Compose for
Android.
GitHub: muazkadan / switchy-compose
Muaz Kadan created some Material3-based switch implementations for Compose Multiplatform, including some inspired by iOS designs and ones with custom icons or labels in the switch thumbs.
GitHub: foxlitegor / compose-calendar
Егор Карпов published another calendar composable for Compose for Android, with single or multiple date selection, paging horizontally by month, disabled dates for selection, and more.
Or, you can subscribe to the Atom feed or follow Mark Murphy in the Fediverse.
Recent Issues:
- 2025-05-27: Google I|O 2025! KotlinConf 2025! Compose and Compose Multiplatform updates! Motion physics in Material3 Expressive!
- 2025-05-20: Compose Multiplatform 1.8.0! Compose 1.8.1 and 1.9.0-alpha02! And this issue is a bit short, but there's a reason for that...
- 2025-05-06: DI in previews! LinkAnnotation! Composable visibility! Drag and drop! And... do choosy developers *still* choose GIF?!?