Navigation3 shipped two releases on Nov 4, 2026: 1.2.1 on the stable line and 1.3.0-alpha04 on the next. Neither adds a headline feature, but the stable one can break your build setup in a good way, and the 1.3 alphas show where the API is heading. Here is what the release notes actually say.
1. Navigation3 1.2.1: compileSdk goes back to 36
The only listed change: compileSdk has been downgraded from 37 to 36, because version 1.2 depends on Compose 1.10, which does not require compileSdk 37. In practice, if you adopted 1.2.0 stable (Sep 23, 2026) and were forced to bump compileSdk to 37 just for this dependency, 1.2.1 removes that pressure.
dependencies {
implementation("androidx.navigation3:navigation3-runtime:1.2.1")
implementation("androidx.navigation3:navigation3-ui:1.2.1")
}
2. 1.3.0-alpha04: shared NavEntry fix
The single bug fix: a shared NavEntry was not rendered on screen when it was popped and then pushed again before the pop completed. If you have flows where a user can tap quickly, such as a detail screen reopened during its exit animation, this is the scenario. Alpha03 (Oct 21) had no changes from alpha02, and alpha01 (Sep 23) fixed predictive back animation handoff in NavDisplay by migrating to DeferredAnimatedContent.
3. SceneInfo gets title and url (1.3.0-alpha02)
The one new API in the 1.3 line: SceneInfo now has title and url properties, populated automatically from the Scene's last NavEntry metadata. You define them with TitleMetadataKey and UrlMetadataKey in the entry metadata. The notes do not say what consumes them, but titles and URLs per destination are exactly what web targets and window-title style UIs need. The sketch below is mine; the key names come from the notes, while the metadata-building call shape is assumed.
// Sketch: key names are from the release notes, the exact metadata API shape is assumed.
entry<ProductKey>(
metadata = mapOf(
TitleMetadataKey to "Product details",
UrlMetadataKey to "/products/42",
)
) { key ->
ProductScreen(key.id)
}
Alpha caveat: this is an alpha API. Verify the real signatures in the reference before copying, and do not build production behavior on it yet.
4. Recap: what 1.2.0 stable already gave you
- Result API: pass results between entries with
ResultEventBusfromLocalResultEventBusandResultEventBusNavEntryDecorator; read as state viaconflateAsStateor collect withResultEffect; hoist withrememberResultEventBus. - KMP deep links:
DeepLinkRequest,DeepLinkUri,DeepLinkMatcherwithUriDeepLinkMatcherandStaticKeyDeepLinkMatcher;BackStackMatcherviaDeepLinkMatcher.withBackStackbuilds a synthetic back stack. - Predictive back:
NavigationBackHandlerandrememberNavigationEventState, plus support for gestures triggered mid-flight during forward animations. - Safer keys:
NavEntry.contentKeynow defaults to a composite ofkey.toString()andkey::class.toString();EntryProviderprefers key instances over key types; a lint check requiresSceneimplementations to be data classes or implementequals/hashCode.
Upgrade checklist
- On 1.2.0: move to 1.2.1 and see whether you can lower
compileSdkback to 36. - Seeing blank screens after rapid back-then-forward navigation: test against 1.3.0-alpha04 in a branch.
- Fix lint warnings about
Sceneequality before they cause recomposition surprises. - Treat
SceneInfotitle/url as something to watch, not adopt.
Sources: the Navigation3 release notes page (developer.android.com/jetpack/androidx/releases/navigation3) and the AndroidX all-channel release list, retrieved Nov 11, 2026.
No comments yet. Be the first to leave one!