Skip to content

1.0.0-beta - Usability and internals improved 🙌

Compare
Choose a tag to compare
@raamcosta raamcosta released this 12 Dec 16:01
· 711 commits to main since this release

NEW FEATURES:

  • Support Parcelable, Serializable and Enums navigation arguments 🎉
  • Support to disable NavGraphs generation and create your own to have more control on some less common scenarios. This enables multiple DestinationsNavHost since you can now declare multiple top-level NavGraphs.
  • Support to manually call specific Destination Composables enabling passing NavHost level components to those specific screens.
  • Added extension functions of NavGraphBuilder to make it possible to use original NavHost Composables instead of DestinationsNavHost.

SETUP CHANGES:

  • Jetpack Compose Navigation is now a transitive dependency of this library. This means you don't need to add that dependency in your gradle build if you include this library.
  • Accompanist Navigation-Animation and Accompanist Navigation-Material are now also transitive dependencies of the "animations-core".
    So if you plan to have animated transitions between screens or Bottom Sheet screens, you don't need to include those dependencies.
    Simply replace the "normal core" with "animations-core". Check the README setup section.

API CHANGES:

  • DestinationsNavHost now has a mandatory parameter: NavGraph. This is partly due to the feature of disabling NavGraphs generation (which means we can't always know there is a NavGraph with the name "root") but also because this is more explicit what navigation graph is being used to populate that DestinationsNavHost.
  • Animations-core contains a AnimatedNavHostEngine which you'll need to get calling rememberAnimatedNavHostEngine and pass to DestinationsNavHost. The rememberAnimatedNavHostEngine call accepts a DefaultAnimationParams for animations that will be applied to all screen transitions (that don't override it) and accepts a lambda that allows you to override the default for specific nested navigation graphs (also overridable by screen via style parameter of Destination annotation).