← ClaudeAtlas

flutter-implementing-navigation-and-routinglisted

Handles routing, navigation, and deep linking in a Flutter application. Use when moving between screens or setting up URL-based navigation.
openplaybooks-dev/converge · ★ 3 · AI & Automation · score 74
Install: claude install-skill openplaybooks-dev/converge
# Implementing Navigation and Routing in Flutter ## Contents - [Core Concepts](#core-concepts) - [Implementing Imperative Navigation](#implementing-imperative-navigation) - [Implementing Declarative Navigation](#implementing-declarative-navigation) - [Implementing Nested Navigation](#implementing-nested-navigation) - [Workflows](#workflows) - [Examples](#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 `Activity` in Android or a `ViewController` in iOS. - **Navigator vs. Router:** - Use `Navigator` (Imperative) for small applications without complex deep linking requirements. It manages a stack of `Route` objects. - Use `Router` (Declarative) for applications with advanced navigation, web URL synchronization, and specific deep linking requirements. - **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.routes` and `Navigator.pushNamed`) for most applications. They have rigid deep linking behavior and do not support the browser forward button. Use a routing package like `go_router` instead. ## Implementing Imperative Navigation Use the `Navigator` widget to push and pop routes using platform-specific transition animations (`MaterialPageRoute` or `CupertinoPageRoute`). ### Pushing and Popping - Navigate t