The missing navigation library for Flutter’s Navigator 2
NavigationUtils makes it easy to implement Navigator 2 in your Flutter app. It reimplements the familiar Navigator 1 API withpush(), pop(), and pushReplacement() while giving you the full power and flexibility of Navigator 2.
Navigator 1 API
Familiar methods like
push(), pop(), pushReplacement() work exactly as expectedFull backstack control
Complete control over the navigation stack through
set(), setBackstack(), and advanced methodsNamed routes
Navigator 2 doesn’t support named routes - NavigationUtils brings them back with
pushNamed()URL routing
Path-based routing with query parameters, path parameters, and deeplink support
Why NavigationUtils?
Flutter’s Navigator 2 is powerful but complex. NavigationUtils bridges the gap between the simplicity of Navigator 1 and the capabilities of Navigator 2.Key features
Simplified Navigator 2Navigator 2 requires extensive boilerplate code and understanding of
RouterDelegate and RouteInformationParser. NavigationUtils provides default implementations so you can get started in minutes.
Query and path parametersNavigator 2 doesn’t support query or path parameters out of the box. NavigationUtils adds first-class support:
Define all your deeplinks in a single list with support for backstack customization, authentication guards, and custom redirect logic. Performance optimized
Intelligent page caching prevents unnecessary rebuilds. Unlike other Navigator 2 libraries, NavigationUtils doesn’t rebuild all pages on every navigation event.
Use cases
NavigationUtils is used in production by apps with 10,000+ users, including Codelessly - a Flutter app and website builder. Perfect for:- Apps migrating from Navigator 1 to Navigator 2
- Web apps that need proper URL routing
- Apps with complex authentication flows
- Apps requiring deeplink handling
- Multi-platform apps (mobile, web, desktop)
Getting started
Ready to add NavigationUtils to your app?Installation
Add NavigationUtils to your Flutter project
Quickstart
Get up and running in 5 lines of code
Community and support
NavigationUtils is open source and actively maintained.- GitHub: rayliverified/NavigationUtils
- Issues: Report bugs and request features on GitHub Issues
- License: BSD 0-Clause (public domain equivalent)