Advertisement · 728 × 90

Posts by Ian Lake

Preview
GitHub - android/skills Contribute to android/skills development by creating an account on GitHub.

Today we're releasing two essential resources for Android devs: Official Android skills and Android CLI!

📑 Android Skills (github.com/android/skills) fill gaps when state-of-the-art models don't have enough training data. We're focusing on hard migrations, niche APIs, performance, etc.

5 days ago 19 4 1 0
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...

3 months ago 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(...)

3 months ago 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

4 months ago 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...

4 months ago 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...

4 months ago 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...

4 months ago 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...

4 months ago 16 0 1 0
Advertisement

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.

4 months ago 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).

4 months ago 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...

5 months ago 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 😅

5 months ago 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...

5 months ago 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...

5 months ago 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...

5 months ago 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 😅

5 months ago 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...

5 months ago 1 0 0 0
Advertisement
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...

5 months ago 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...

5 months ago 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...

5 months ago 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...

5 months ago 10 3 2 0
Navigating the future with Jetpack Navigation 3 - Don Turner | droidcon London 2025
Navigating the future with Jetpack Navigation 3 - Don Turner | droidcon London 2025 YouTube video by droidcon & fluttercon

That was fast! @donaldturner.bsky.social's really nice talk about Navigation 3 at #dcldn25 available now www.youtube.com/watch?v=j1Oi...

5 months ago 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.

5 months ago 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.

5 months ago 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...

5 months ago 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...

5 months ago 2 0 0 0
Advertisement
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...

5 months ago 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...

5 months ago 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...

5 months ago 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...

5 months ago 4 0 1 0