Some of my previous thoughts on these patterns (and anti-patterns) are in this blog post series: proandroiddev.com/loading-init...
06.01.2026 01:52 β π 3 π 1 π¬ 0 π 0Some of my previous thoughts on these patterns (and anti-patterns) are in this blog post series: proandroiddev.com/loading-init...
06.01.2026 01:52 β π 3 π 1 π¬ 0 π 0
You should not use explicit backing fields at all for this.
In addition:
1. Delete the _uiState variable, it is unnecessary and duplicates the default value you give you stateIn()
2. Don't use onStart + viewModelScope.launch, just flow { emit(yourSuspendingLoadCall()) }.stateIn(...)
The Nav1 team meeting the Nav2 team meeting the Nav3 team
06.12.2025 05:08 β π 16 π 0 π¬ 0 π 0
There were a lot of other releases this week including Ink 1.0.0-rc01, Compose 1.11.0-alpha01 (new `visible` modifier!), Navigation3 1.1.0-alpha01 (entries as shared elements!) and a bunch of XR library updates.
Read the release notes for all the details!
developer.android.com/jetpack/andr...
SwipeRefreshLayout 1.2.0 is out as part of a concerted effort to get long running alphas to a stable state.
Thanks @liutikas.net for pushing these libraries through to stable!
developer.android.com/jetpack/andr...
Compose 1.10.0, the "December '25 release", is stable today with performance improvements, retain APIs, plus some neat new animation features.
android-developers.googleblog.com/2025/12/what...
This week's #JetpackReleaseNotes include Compose 1.10.0, SwipeRefreshLayout 1.2.0, and bug fixes in Activity 1.12.1, NavigationEvent 1.0.1, ExifInterface 1.4.2, and Wear Compose 1.5.6.
developer.android.com/jetpack/andr...
In Nav2, the NavController held a reference to your Activity.
In Nav3, the back stack is totally decoupled from the other layers, so you don't have any of the same constraints.
Usually that kind of error means you didn't have an 'else' statement in your when statement - something the entryProvider takes care of for you (see the fallback parameter if you want to customize the default behavior for unknown keys).
27.11.2025 21:59 β π 0 π 0 π¬ 0 π 0
FYI, Navigation3 1.0.0 depends on Compose Runtime 1.9.5 which has an important fix to a "Missed recording an endGroup" crash that Navigation3 ends up hitting more often due to its internal usage of movableContentOf() - make sure to update!
developer.android.com/jetpack/andr...
Let us know if the AI agent instructions linked in the blog post work for Claude! We've had good success with Gemini 3 π
20.11.2025 14:15 β π 1 π 0 π¬ 1 π 0
Navigation3 is really a turning point for the whole Architecture Components team as we look to work closely with the Compose team and think more holistically about what it takes to build an Android app.
So if you're an ~L4 engineer who wants to help, I'm hiring!
www.google.com/about/career...
There's still a lot of things we have planned for Navigation3 in our 1.1 release and beyond, where each release will be an opportunity for patterns you see in our recipes repository to "graduate" and become (optional) helpers in the library itself.
github.com/android/nav3...
Jetpack Navigation 3 is stable! πππ
Leaning into Jetpack Compose and the idea of combining smaller building blocks together really helped make Nav3 a much more flexible library that made it a joy to work on and hopefully for you to use as well!
android-developers.googleblog.com/2025/11/jetp...
Good catch! That means it has been even longer since the last stable release, wow.
I guess you get 2 releases worth of fixes in one π
There were a lot of other releases this week including Compose 1.10.0-beta02 (with a lot of retain API changes), DataStore 1.2.0-rc01, and Wear Compose 1.5.5 so definitely check out all of release notes for the details!
developer.android.com/jetpack/andr...
In other Navigation news, Navigation3 hits its 1.0.0-rc01 this week, which means we're almost to the first stable release!
This is the perfect time to test it out one more time and make sure everything is working for what you need!
developer.android.com/jetpack/andr...
Navigation 2.9.6 expands some of the work done in the last bug fix release in modernizing our AGP support. That includes no longer needing to set useAndroidX to true on AGP 9.0.0-alpha04 and higher.
developer.android.com/jetpack/andr...
The Core SplashScreen 1.2.0 release improves the support for day/night themes and includes better support for cutouts and navigation bar constrast, which should help it mesh better with your regular theme.
developer.android.com/jetpack/andr...
The first #JetpackReleaseNotes of November include SplashScreen 1.2.0, SavedState 1.4.0, Navigation 2.9.6, RC releases in Navigation3, NavigationEvent, Activity, and Lifecycle and Compose 1.10.0-beta02.
developer.android.com/jetpack/andr...
That was fast! @donaldturner.bsky.social's really nice talk about Navigation 3 at #dcldn25 available now www.youtube.com/watch?v=j1Oi...
31.10.2025 23:59 β π 17 π 2 π¬ 0 π 0
But I would suggest filing an issue against Navigation3: issuetracker.google.com/issues/new?c...
Maybe this would be a lot easier if there was a more structured API between an OverlayScene and NavDisplay to support overlay windows that don't know how to animate themselves out.
So the 'correct' solution is to have Popup support exit animations (which, unlike Dialog, could actually be driven by Compose animations).
As a workaround though? You do have another location to hoist composables that need to live longer than the Scene - at your rememberPopupSceneStrategy() level.
If you look at what Compose's Dialog does, it respects the window animations and animates the Dialog out when it is removed from composition. So the Scene leaves composition, but the Dialog still animates.
Compose's Popup though? Just removes the window immediately: cs.android.com/androidx/pla...
There were a lot of other releases this week including Camera 1.6.0-alpha01 (new infrastructure, CameraPresenceListener), Media3 1.9.0-alpha01 (CompositionPlayer, media3-inspector), and PDF 1.0.0-alpha11 (custom selection menu items) and more.
Get the details:
developer.android.com/jetpack/andr...
Activity 1.12.0-beta01 is out with a behavior change on how system back is handled - the Lifecycle aware OnBackPressed APIs now enable/disable callbacks rather than register/unregister them, ensuring a more consistent ordering.
Let us know if you are impacted!
developer.android.com/jetpack/andr...
DataStore 1.2.0-beta01 is out, bringing API stability to DataStore's support for Direct Boot mode and GuavaDataStore.
Note that this release also includes an important fix to DataStore's proguard rules if you aren't using the android-proguard-optimize.txt file!
developer.android.com/jetpack/andr...
Navigation3 reaches API stability this week with the 1.0.0-beta01 release! There's a few important bug fixes in this release as well, but this beta means we're only a few weeks away from rc01 and then stable!
If you run into any issues, please let us know ASAP
developer.android.com/jetpack/andr...
Compose Material3 Adaptive reached their 1.2.0 stable release this week with two new layout strategies - reflow and levitate.
Check out their blog post from their beta release for more details!
android-developers.googleblog.com/2025/09/unfo...
WorkManager 2.11.0 raises the minSdk from 21 to 23. That change meant that the team could remove 3,739 lines of code and the AlarmManager based scheduler used to support older versions of Android. Welcome to a leaner WorkManager!
developer.android.com/jetpack/andr...