Ian Lake's Avatar

Ian Lake

@ianlake.bsky.social

Android Toolkit Developer and Runner Also at: - https://androiddev.social/@ianlake - https://twitter.com/ianhlake

841 Followers  |  143 Following  |  288 Posts  |  Joined: 01.12.2024
Posts Following

Posts by Ian Lake (@ianlake.bsky.social)

Preview
Loading Initial Data in LaunchedEffect vs. ViewModel When initializing or fetching data upon entering a screen, it’s crucial to select the right trigger point for loading the initial data…

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    πŸ“Œ 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(...)

06.01.2026 01:52 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0
Preview
a cartoon of two spidermans standing in front of a nypd van Alt: a cartoon of two spidermans standing in front of a nypd van

The Nav1 team meeting the Nav2 team meeting the Nav3 team

06.12.2025 05:08 β€” πŸ‘ 16    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Recent Release Notes Β |Β  Android Developers

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...

04.12.2025 05:41 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Swiperefreshlayout Β |Β  Jetpack Β |Β  Android Developers

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...

04.12.2025 05:41 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
What's new in the Jetpack Compose December '25 release News and insights on the Android platform, developer tools, and events.

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...

04.12.2025 05:41 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Recent Release Notes Β |Β  Android Developers

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...

04.12.2025 05:41 β€” πŸ‘ 16    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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.

30.11.2025 16:46 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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
Preview
Compose Runtime Β |Β  Jetpack Β |Β  Android Developers

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...

21.11.2025 03:49 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

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
Software Engineer, Mobile (Android), Platforms and Devices β€” Google Careers

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...

19.11.2025 20:53 β€” πŸ‘ 13    πŸ” 5    πŸ’¬ 1    πŸ“Œ 1
Preview
GitHub - android/nav3-recipes: Implement common use cases with Jetpack Navigation 3 Implement common use cases with Jetpack Navigation 3 - android/nav3-recipes

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...

19.11.2025 20:53 β€” πŸ‘ 9    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Preview
Jetpack Navigation 3 is stable News and insights on the Android platform, developer tools, and events.

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...

19.11.2025 20:53 β€” πŸ‘ 60    πŸ” 26    πŸ’¬ 3    πŸ“Œ 3

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 πŸ˜…

07.11.2025 22:50 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Recent Release Notes Β |Β  Android Developers

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...

07.11.2025 17:42 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
navigation3 Β |Β  Jetpack Β |Β  Android Developers

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...

07.11.2025 17:42 β€” πŸ‘ 13    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0
Preview
Navigation Β |Β  Jetpack Β |Β  Android Developers

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...

07.11.2025 17:42 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Core Β |Β  Jetpack Β |Β  Android Developers

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...

07.11.2025 17:42 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0
Preview
Recent Release Notes Β |Β  Android Developers

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...

07.11.2025 17:42 β€” πŸ‘ 10    πŸ” 3    πŸ’¬ 2    πŸ“Œ 0
Navigating the future with Jetpack Navigation 3 - Don Turner | droidcon London 2025
YouTube video by droidcon & fluttercon Navigating the future with Jetpack Navigation 3 - Don Turner | droidcon London 2025

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.

26.10.2025 22:27 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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.

26.10.2025 22:27 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Search and explore code

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...

26.10.2025 22:27 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Recent Release Notes Β |Β  Android Developers

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...

24.10.2025 21:11 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Activity Β |Β  Jetpack Β |Β  Android Developers

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...

24.10.2025 21:11 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
DataStore Β |Β  Jetpack Β |Β  Android Developers

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...

24.10.2025 21:11 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
navigation3 Β |Β  Jetpack Β |Β  Android Developers

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...

24.10.2025 21:11 β€” πŸ‘ 16    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0
Preview
Unfold new possibilities with Compose Adaptive Layouts 1.2 beta Create polished, responsive UIs for the ever-expanding ecosystem of screen sizes with Compose Adaptive Layouts Library 1.2, now officially in beta.

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...

24.10.2025 21:11 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
WorkManager Β |Β  Jetpack Β |Β  Android Developers

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...

24.10.2025 21:11 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0