Navigation Component for Jetpack Compose with support for screens, dialogs, bottomsheets, transitions and multi module projects
Just a quick maintenance one: Update Compose BOM version.
The library is still currently being upgraded to be a KMM project with Web, Android, Ios and Desktop as targets.
This release updates dependencies while the project is being migrated to KMM. (Thanks to @ilyasshafigin for https://github.com/roudikk/guia/pull/19 )
The library is almost KMM ready with some additional changes to the API, the next release will have support for Android, IOS and Desktop.
For the sake of consistency, some classes were renamed to match other naming conventions used in the library.
Nav
is used a lot as a prefix but the transition API and entry container were using Navigation
so they are now updated to match the rest:
NavigationTransition
was renamed to NavTransition
NavigationVisibilityScope
was renamed to NavVisibilityScope
NavigationEntryContainer
was renamed to NavEntryContainer
VisibleBackstack
is confusing since it should represent what is currently being rendered on the screen for the user so it was renamed
VisibileBackstack
was renamed to RenderGroup
BackstackManager
indicates that it manages the backstack of a Navigator
where in reality it manages the lifecycle of the backstack so it was renamed and updated the public lambdas to be fun interfaces
BackstackManager
was renamed to LifecycleManager
getVisibileBackstack
and updateLifecyles
are now fun interfaces GetRenderGroup
and UpdateLifecycles
BackstackViewModel
to ViewModelStoreProvider
LifecycleEntry
, LifecycleManager
, ViewModelStoreProvider
and DefaultLifecycleManager
to lifecycle
packageNavigatorResultManager
is now internal.LocalNavigator
was not present when using the NavEntryContainer
resulting in a crash when used outside the context of a NavContainer
Initial release for Guia ๐
Check the GitBook for documentation.
This release is an almost complete rewrite of version 1.x, check the updated README for updated information.
NavHost
was removed in favor of rememberNavigator
, multiple navigators can now be created by calling rememberNavigator
on different instancesNavigatorKey
was removed, navigators no longer need to have a unique key since they are now defined by their instanceDeepLinkHandler
was removed in favor of a less opinionated deeplink handling, check the updated README deeplinks
section for detailsNavigationNode
's Content
no longer has AnimatedVisibilityScope
receiver, instead you can get reference to the current navigation animation using LocalNavigationAnimation.current
NavigationNode
in the back stack now has its own LifecycleOwner
, lifecycle events can be listened to using LifecycleEffect
NavigationNode
has its own ViewModelStoreOwner
and SavedStateRegistryOwner
, allowing it to have its own scope ViewModels supporting SavedStateHandle
replaceLast
, replaceUpTo
, moveToTop
, singleInstance
, singleTop
, any