NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1730 most downloaded on pub.dev
A powerful routing abstraction over Flutter navigator, providing some new features and an easy way to define routers.
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
Add optional TransitionBuilder to Nuvigator to allow nesting additional Widgets on the tree
Remove deprecated hash function to support Flutter 3.27 by @bltavares in #121
Full Changelog: v1.8.0...v2.0.0
One column per quarter.
This beta release includes the so-awaited support for Sound Null Safety and the removal of the Legacy API
This beta release includes the so-awaited support for Sound Null Safety and the removal of the Legacy API
Full Changelog: v1.8.0...v2.0.0-beta.3
Improve error message when a NuRoute is registered twice
Add option to get registered routes after NuRouter initialization when overriding the lazyRouteRegister option in NuRouter
lazyRouteRegister option in NuRouterChange the NuRouter.onError to handle any thrown object (including Exception)
NuRouter.onError to handle any thrown object (including Exception)Mob plat/bump flutter 2.10 by @RaqG in #98
Full Changelog: v1.7.0-beta.0...v1.8.0
shouldRebuild property to the Nuvigator that should return true when you wish to perform the rebuild.[FIX] Revert changes from 1.6.1 due to some unexpected behaviors found
[FIX] Fix re-renders due to other state changes when Nuvigator.shouldRebuild returns false
Nuvigator.shouldRebuild returns false[ENHANCEMENT] Add Nuvigator.shouldRebuild property for controlling when a Nuvigator should be rebuild.
Nuvigator.shouldRebuild property for controlling when a Nuvigator should be rebuild.[NEW] Add NuRoute.metaData to be used as a metadata dictionary for NuRoutes
NuRoute.metaData to be used as a metadata dictionary for NuRoutesNuRouter.buildWrapper that can be used to wrap the builder function of the registered NuRoutes[FIX] Fix error when disposing a Nuvigator that was rendered in a Route that does not implement NuvigatorPageRoute
NuvigatorPageRoute[NEW] Add NuvigatorPageRoute.nestedNuvigator property that is going to link to the nested Nuvigator instance that is being rendered by this Route
NuvigatorPageRoute.nestedNuvigator property that is going to link to the nested Nuvigator instance that is being rendered by this RouteNuvigatorState.presenterRoute that will link to the Parent Route that is rendering this Nested NuvigatorNuvigatorPageRoute.of(context) to retrieve the closest NuvigatorPageRoute in the Context[ENHANCEMENT] Improvements to all *Named method in Nuvigator
*Named method in NuvigatorNuRoute.withPath to be used as a RoutePredicate matcherreplaceNamed, removeByPredicate and popAndPushinheritableObservers, debug, observers, shouldPopRoot arguments to the Nuvigator.routes factoryNuvigator.open method[FIX] Revert support for List Query Arguments in the legacy API, and preserve previous typings
[FIX] Make Nuvigator.open propagate all options to parent when the route is not found at the current level
Nuvigator.open propagate all options to parent when the route is not found at the current levelImprove error message when a NuRoute is registered twice
lazyRouteRegister option in NuRouterNuRouter.onError to handle any thrown object (including Exception)
NuRouter.onError function changed from Exception to ObjectBump dependencies versions and make code adjustments to support non nullable
Add the ScreenTypeBuilder class to allow the definition and creation of ScreenTypes in an ad-hoc manner
ScreenTypeBuilder class to allow the definition and creation of ScreenTypes in an ad-hoc mannerscreenType parameter to the NuvigatorState.open method, allowing to override the ScreenType of a defined Route to be openedFirst stable release with NEXT API (check past beta changelog entries for details)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Add option in NuRouter to retry the initialization of the Router when it fails
Add option in NuRouter to provide an error handling function when the Router initialization fails
Fix extra arguments passing on the [NuvigatorState.open] method
Fix open method in order to transport params through actions
Fix the NuRouteSettings copy and fallback methods that were not considering the settings property
Fix the NuRouterLoader to re-instantiate the nuvigator only if the router change
NuRouterLoader to re-instantiate the nuvigator only if the router changeFix to use the screenType when the fallback one is not provided
Improvements on next API typings
Add awaitForInit option in the NuRouter to configure if it should support async initialization
awaitForInit option in the NuRouter to configure if it should support async initializationNuRouteloadingWidget a getter methodAdd support from Navigation coming from Native side on Next API
INuRouter.getRoute now accepts an optional isFromNative optionNuvigatorState.open now accepts an optional isFromNative optionAdd improved error message when a ScreenRoute is rendered without a ScreenType specified
Old API can be considered deprecated from now on. Prefer using the next API on new projects.
next), more info can be found at it's own documentation
initialDeepLink and initialRoute have better error reporting and a more precise behavior.
INuRouter instead of a concrete specific implementationonScreenNotFound method was removedNuvigatorState.open in favor of .openDeepLink. This new method supports nested deepLink navigation.next API on new projects.Fix conflict between Nuvigator and NuvigatorInner key
Nuvigator and NuvigatorInner keyFix problems caused by bump in analyzer dependency
analyzer dependencyUpdate pubspec.yaml to support analyzer up to version 0.41.0
0.41.0[BREAKING] Rename classes to avoid conflicts with Flutter 1.22 Router Widget
Router was renamed to NuRouterNuRouter annotation was renamed to nuRouter const or customNuRouter functionFix NPE exception when a old instance of router tries calling some methods on it's nuvigator
Fix a NavigationObserver error when the nuvigator is updated. Now we are reloading the inheritableObservers and StateTracker when has an update.
NavigationObserver error when the nuvigator is updated. Now we are reloading the inheritableObservers and StateTracker when has an update.Add support for typed screen arguments on deep links. In addition to String, we now support int, double, bool, and DateTime.
String, we now support int, double, bool, and DateTime.Update ReCase version support to '>= 2.0.0 <3.1.0'
Updates the codebase to flutter 1.17 (stable) version
Support query parameters with dashes by converting them to camelCase
Downgrade the analyzer dependency to '>=0.38.5 <0.40.0'
Nothing published for this version
Fix the Nuvigator.of(context) to start the search at the last state instead of root
Nuvigator.of(context) to start the search at the last state instead of rootMake initialDeepLink work passing arguments to destination route
initialDeepLink work passing arguments to destination routeAllow to pass an initialDeepLink
initialDeepLink[BUMP] Updates to Flutter 1.12.1, resolves some deprecation warnings.
ScreenWidget and related generated classes.FlowRoute, now you can use the default ScreenRoute and pass the Nuvigator to the builder function.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.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.FlowRouters.ExampleNavigation.of(context).toRoute()
use Router.of<ExampleRouter>(context).toExampleRoute().screensMap and routers generator. Instead of passing this to the function, just call
the private getter _$screensMap and _$routers in the Router class.Router and BaseRouter, instead of extending BaseRouter you should extend Router directly.getDeepLinkPrefix to deepLinkPrefix.initialRoute is now a required argument to Nuvigator.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.toMap getter was added to Args* classes to serialize them into Map<String, Object>.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).Your coding agent can read these notes before it upgrades. Set up the MCP server →