flutter-implementing-navigation-and-routing
Originally fromflutter/skills
Installation
SKILL.md
Implementing Navigation and Routing in Flutter
Contents
- Core Concepts
- Implementing Imperative Navigation
- Implementing Declarative Navigation
- Implementing Nested Navigation
- Workflows
- Examples
Core Concepts
- Routes: In Flutter, screens and pages are referred to as routes. A route is simply a widget. This is equivalent to an
Activityin Android or aViewControllerin iOS. - Navigator vs. Router:
- Use
Navigator(Imperative) for small applications without complex deep linking requirements. It manages a stack ofRouteobjects. - Use
Router(Declarative) for applications with advanced navigation, web URL synchronization, and specific deep linking requirements.
- Use
- Deep Linking: Allows an app to open directly to a specific location based on a URL. Supported on iOS, Android, and Web. Web requires no additional setup.
- Named Routes: Avoid using named routes (
MaterialApp.routesandNavigator.pushNamed) for most applications. They have rigid deep linking behavior and do not support the browser forward button. Use a routing package likego_routerinstead.