PackageTrack
Sign in Get early access

nuvigator

A powerful routing abstraction over Flutter navigator, providing some new features and an easy way to define routers.

2.0.1 36K downloads/mo #1701 most downloaded on pub.dev nubank/nuvigator

What this package is like to depend on

Last release 1 years ago

12 Jun 2025

Ships unpredictably

gaps range from 8 days to 2.6 years

Nearly every release is documented

notes for 37 of 38 stable releases

Nothing withdrawn

no release was ever pulled

7 years old

68 releases · first in 2019

0 releases in the last 12 months

see the full history below

Release timeline

68 releases · Sep 2019 to Jun 2025
2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 68
  1. 2.0.1 12 Jun 2025
    Release notes
    • Add optional TransitionBuilder to Nuvigator to allow nesting additional Widgets on the tree
    Open source →
  2. 2.0.0 26 Mar 2025
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v1.8.0...v2.0.0

    Open source →
    Release notes
    • Remove deprecated hash function to support Flutter 3.27
    Open source →
  3. 2.0.0-beta.3 24 Aug 2022 pre-release
    Release notes

    2.0 Major Beta Release 🎉

    This beta release includes the so-awaited support for Sound Null Safety and the removal of the Legacy API

    What's Changed

    Full Changelog: v1.8.0...v2.0.0-beta.3

    Open source →
    Release notes
    • [BREAKING] Add support for Sound Null Safety
    • [BREAKING] Remove Legacy API and Deprecated options related to it
    Open source →
  4. 2.0.0-beta.2 30 Jul 2021 pre-release
    Release notes
    • Improve error message when a NuRoute is registered twice
    Open source →
  5. 2.0.0-beta.1 17 Jun 2021 pre-release
    Release notes
    • Add option to get registered routes after NuRouter initialization when overriding the lazyRouteRegister option in NuRouter
    Open source →
  6. 2.0.0-beta.0 11 Jun 2021 pre-release
    Release notes
    • Change the NuRouter.onError to handle any thrown object (including Exception)
    Open source →
  7. 1.8.0 15 Aug 2022
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v1.7.0-beta.0...v1.8.0

    Open source →
    Release notes
    • [FIX] Make Nuvigator compatible with Flutter 2.10.5
    • [FIX] Make Nuvigator compatible with Flutter 3.0.2
    • [FIX] [POSSIBLY BREAKING] Makes the default behavior of Nuvigator to not re-build itself and it's state when the NuRouter provided instance changes. This allows for fixing some state reloads/resets and navigation lost, specially on nested flows. If for some reason you were relying in the current behavior for some feature, you can provide a shouldRebuild property to the Nuvigator that should return true when you wish to perform the rebuild.
    Open source →
  8. 1.6.2 05 May 2022
    Release notes
    • [FIX] Revert changes from 1.6.1 due to some unexpected behaviors found
    Open source →
  9. 1.6.1 02 May 2022
    Release notes
    • [FIX] Fix re-renders due to other state changes when Nuvigator.shouldRebuild returns false
    Open source →
  10. 1.6.0 27 Apr 2022
    Release notes
    • [ENHANCEMENT] Add Nuvigator.shouldRebuild property for controlling when a Nuvigator should be rebuild.
    Open source →
  11. 1.5.0 04 Mar 2022
    Release notes
    • [NEW] Add NuRoute.metaData to be used as a metadata dictionary for NuRoutes
    • [NEW] Add NuRouter.buildWrapper that can be used to wrap the builder function of the registered NuRoutes
    Open source →
  12. 1.4.1 27 Oct 2021
    Release notes
    • [FIX] Fix error when disposing a Nuvigator that was rendered in a Route that does not implement NuvigatorPageRoute
    Open source →
  13. 1.4.0 27 Oct 2021
    Release notes
    • [NEW] Add NuvigatorPageRoute.nestedNuvigator property that is going to link to the nested Nuvigator instance that is being rendered by this Route
    • [NEW] Add NuvigatorState.presenterRoute that will link to the Parent Route that is rendering this Nested Nuvigator
    • [NEW] Add NuvigatorPageRoute.of(context) to retrieve the closest NuvigatorPageRoute in the Context
    Open source →
  14. 1.3.0 15 Oct 2021
    Release notes
    • [ENHANCEMENT] Improvements to all *Named method in Nuvigator
    • [NEW] Add NuRoute.withPath to be used as a RoutePredicate matcher
    • [NEW] Add new methods in Nuvigator: replaceNamed, removeByPredicate and popAndPush
    • [NEW] Adds key, inheritableObservers, debug, observers, shouldPopRoot arguments to the Nuvigator.routes factory
    • [NEW] Adds the optional result argument to the Nuvigator.open method
    Open source →
  15. 1.2.2 08 Oct 2021
    Release notes
    • [FIX] Revert support for List Query Arguments in the legacy API, and preserve previous typings
    Open source →
  16. 1.2.1 07 Oct 2021
    Release notes
    • [FIX] Make Nuvigator.open propagate all options to parent when the route is not found at the current level
    • [FIX] Properly support List Query Arguments in DeepLinks, instead of picking a random one
    Open source →
  17. 1.2.0 25 Sep 2021
    Release notes
    • Improve error message when a NuRoute is registered twice
    • Improve error handling on empty NuRouters
    • Add option to get registered routes after NuRouter initialization when overriding the lazyRouteRegister option in NuRouter
    • [BREAKING] Change the NuRouter.onError to handle any thrown object (including Exception)
      • Type of the NuRouter.onError function changed from Exception to Object
    • Bump dependencies versions and make code adjustments to support usage on non nullable projects (does not include non-nullable in Nuvigator itself)
    Open source →
  18. 1.2.0-beta.0 08 Jun 2021 pre-release
    Release notes
    • Bump dependencies versions and make code adjustments to support non nullable
    Open source →
  19. 1.1.0 29 May 2021
    Release notes
    • Add the ScreenTypeBuilder class to allow the definition and creation of ScreenTypes in an ad-hoc manner
    • Add the screenType parameter to the NuvigatorState.open method, allowing to override the ScreenType of a defined Route to be opened
    Open source →
  20. 1.0.0 12 Apr 2021
    Release notes
    • First stable release with NEXT API (check past beta changelog entries for details)
    Open source →
  21. 1.0.0-dev.11 04 Dec 2020 pre-release

    Nothing published for this version

  22. 1.0.0-dev.10 04 Dec 2020 pre-release

    Nothing published for this version

  23. 1.0.0-dev.9 04 Dec 2020 pre-release

    Nothing published for this version

  24. 1.0.0-dev.8 04 Dec 2020 pre-release

    Nothing published for this version

  25. 1.0.0-dev.7 04 Dec 2020 pre-release

    Nothing published for this version

  26. 1.0.0-dev.6 04 Dec 2020 pre-release

    Nothing published for this version

  27. 1.0.0-dev.5 04 Dec 2020 pre-release

    Nothing published for this version

  28. 1.0.0-dev.4 04 Dec 2020 pre-release

    Nothing published for this version

  29. 1.0.0-dev.3 04 Dec 2020 pre-release

    Nothing published for this version

  30. 1.0.0-dev.2 04 Dec 2020 pre-release

    Nothing published for this version

  31. 1.0.0-dev.1 03 Dec 2020 pre-release

    Nothing published for this version

  32. 1.0.0-dev.0 03 Dec 2020 pre-release

    Nothing published for this version

  33. 1.0.0-beta.12 01 Mar 2021 pre-release
    Release notes
    • Add option in NuRouter to retry the initialization of the Router when it fails
    Open source →
  34. 1.0.0-beta.11 25 Feb 2021 pre-release
    Release notes
    • Add option in NuRouter to provide an error handling function when the Router initialization fails
    Open source →
  35. 1.0.0-beta.10 10 Feb 2021 pre-release
    Release notes
    • Fix extra arguments passing on the [NuvigatorState.open] method
    Open source →
  36. 1.0.0-beta.9 09 Feb 2021 pre-release
    Release notes
    • Fix open method in order to transport params through actions
    Open source →
  37. 1.0.0-beta.8 29 Jan 2021 pre-release
    Release notes
    • Fix the NuRouteSettings copy and fallback methods that were not considering the settings property
    Open source →
  38. 1.0.0-beta.6 26 Jan 2021 pre-release
    Release notes
    • Fix the NuRouterLoader to re-instantiate the nuvigator only if the router change
    Open source →
  39. 1.0.0-beta.5 22 Dec 2020 pre-release
    Release notes
    • Fix to use the screenType when the fallback one is not provided
    Open source →
  40. 1.0.0-beta.4 07 Dec 2020 pre-release
    Release notes
    • Improvements on next API typings
    • Improvements to next generator
    Open source →
  41. 1.0.0-beta.3 05 Dec 2020 pre-release
    Release notes
    • Add awaitForInit option in the NuRouter to configure if it should support async initialization
    • Fix router property name on NuRoute
    • Make loadingWidget a getter method
    Open source →
  42. 1.0.0-beta.2 04 Dec 2020 pre-release
    Release notes
    • Add support from Navigation coming from Native side on Next API
      • INuRouter.getRoute now accepts an optional isFromNative option
      • NuvigatorState.open now accepts an optional isFromNative option
    • Remove default screenType from Nuvigator constructor
    Open source →
  43. 1.0.0-beta.1 04 Dec 2020 pre-release
    Release notes
    • Fixed asserts on Nuvigator
    • Add improved error message when a ScreenRoute is rendered without a ScreenType specified
    Open source →
  44. 1.0.0-beta.0 04 Dec 2020 pre-release
    Release notes
    • Introduction of a new dynamic API (aka: next), more info can be found at it's own documentation
      • DeepLinks and RouteNames where unified under paths
      • New dynamic approach to define Routes and Routers
      • More info can be found at here
    • initialDeepLink and initialRoute have better error reporting and a more precise behavior.
      • Just the explicitly provided initialRoute is going to be used to find the Route.
    • Nuvigator now relies on a interface type INuRouter instead of a concrete specific implementation
    • onScreenNotFound method was removed
    • Introduction of NuvigatorState.open in favor of .openDeepLink. This new method supports nested deepLink navigation.
    • Old API can be considered deprecated from now on. Prefer using the next API on new projects.
    Open source →
  45. 1.0.0-beta.0+1 04 Dec 2020 pre-release
    Release notes
    • Fix conflict between Nuvigator and NuvigatorInner key
    Open source →
  46. 0.7.2 27 Oct 2020
    Release notes
    • Fix problems caused by bump in analyzer dependency
    Open source →
  47. 0.7.1 21 Oct 2020
    Release notes
    • Update README
    • Update pubspec.yaml to support analyzer up to version 0.41.0
    Open source →
  48. 0.7.0 19 Oct 2020
    Release notes
    • [BREAKING] Rename classes to avoid conflicts with Flutter 1.22 Router Widget
      • Router was renamed to NuRouter
      • The NuRouter annotation was renamed to nuRouter const or customNuRouter function
    Open source →
  49. 0.6.2 17 Aug 2020
    Release notes
    • Fix NPE exception when a old instance of router tries calling some methods on it's nuvigator
    Open source →
  50. 0.6.1 14 Aug 2020
    Release notes
    • Fix a NavigationObserver error when the nuvigator is updated. Now we are reloading the inheritableObservers and StateTracker when has an update.
    Open source →
  51. 0.6.0 10 Aug 2020
    Release notes
    • Add support for typed screen arguments on deep links. In addition to String, we now support int, double, bool, and DateTime.
    Open source →
  52. 0.5.1 04 Aug 2020
    Release notes
    • Update ReCase version support to '>= 2.0.0 <3.1.0'
    Open source →
  53. 0.5.0 14 May 2020
    Release notes
    • Updates the codebase to flutter 1.17 (stable) version
    Open source →
  54. 0.4.6 16 Apr 2020
    Release notes
    • Support query parameters with dashes by converting them to camelCase
    Open source →
  55. 0.4.5 16 Mar 2020
    Release notes
    • Downgrade the analyzer dependency to '>=0.38.5 <0.40.0'
    Open source →
  56. 0.4.4 13 Mar 2020

    Nothing published for this version

  57. 0.4.2 27 Feb 2020
    Release notes
    • Fix the Nuvigator.of(context) to start the search at the last state instead of root
    Open source →
  58. 0.4.1 13 Feb 2020
    Release notes
    • Make initialDeepLink work passing arguments to destination route
    Open source →
  59. 0.4.0 11 Feb 2020
    Release notes
    • Allow to pass an initialDeepLink
    • Add new option to pop SystemNavigator on last screen of the Root Router
    Open source →
  60. 0.3.0 03 Feb 2020
    Release notes
    • [BREAKING] API Simplifications/Changes.
      • Removal of ScreenWidget and related generated classes.
      • Removal of FlowRoute, now you can use the default ScreenRoute and pass the Nuvigator to the builder function.
      • Removal of GlobalRouter, every Router had it's capabilities incorporated, you can override previous GlobalRouter properties directly in your topmost Router class, and pass it directly to the Nuvigator.
      • Removal of Nuvigator initialArgs auto-passing, now you should explicitly provide the arguments required to the nested nuvigator. The suggestion is to pass it to the Router constructor.
      • Removal of FlowRouters.
      • Nested Nuvigators will not have it's router exposed by the parent anymore.
      • Use extension methods to navigation methods in the Router. Instead of ExampleNavigation.of(context).toRoute() use Router.of<ExampleRouter>(context).toExampleRoute().
      • Use of extension methods to screensMap and routers generator. Instead of passing this to the function, just call the private getter _$screensMap and _$routers in the Router class.
      • Unify Router and BaseRouter, instead of extending BaseRouter you should extend Router directly.
      • Rename getDeepLinkPrefix to deepLinkPrefix.
      • initialRoute is now a required argument to Nuvigator.
    • [IMPORTANT] Router instances should be unique per Nuvigator. The same Router instance SHOULD NOT be shared by different Nuvigator (we advise to create new instances together with the Nuvigator).
    • A bug was fixed were the maybePop method was not consistent with the Android back button behavior. Now the expected behavior is to always pop the Route of the active Nuvigator.
    • Nuvigator now keeps track of it's Route stack.
    • Added debug flag to Nuvigator to log all route transitions/changes.
    • Observers management was moved into the state lifecycle to ensure that inheritableObservers are always going to be considered.
    • [BUMP] Updates to Flutter 1.12.1, resolves some deprecation warnings.
    • A toMap getter was added to Args* classes to serialize them into Map<String, Object>.
    • Added new mixin NuvigatorRoute that should be incorporated by PageRoutes used in custom ScreenTypes. While this mixin is optional, it will guarantee the correct behavior of Android's back button and also make nested Nuvigators Routes present AppBar back buttons correctly based in the overall App state, and not only by the current Nuvigator. (The provided screensTypes Material and Cupertino have already been update to include this new Mixin).
    • Improvement of some error messages that could be misleading or produce unexpected error.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive