flutter-navigation · git:20260822.e519e06 · 2026-08-22 · sha256 c2c9bf63d11c6453
flutter-navigation git:20260822.e519e06A
Immutable. This exact content is served forever at /api/v1/blob/c2c9bf63d11c6453.
--- name: flutter-navigation description: Implement or review Flutter routing, deep links, nested navigation, restoration, redirects, and URL synchronization. Use for Navigator, Router, or an existing routing package; do not introduce a package when simple Navigator behavior is sufficient. --- # Flutter Navigation Model navigation as application state when URLs, deep links, restoration, or multiple navigators require it; use simpler imperative navigation for genuinely local flows. ## Inspect first Identify the current router, route ownership, authentication flow, tab/shell structure, supported platforms, URL requirements, and state restoration expectations. Preserve the existing routing package unless migration is requested. ## Rules - Keep route names, path parameters, and argument decoding typed or centrally validated. - Make redirect logic deterministic and free of redirect loops. - Preserve intended back behavior across Android system back, browser history, iOS gestures, nested navigators, and modals. - Use nested navigation only for independent histories such as tab shells. - Parse deep links into domain-safe state and define behavior for unknown or unauthorized destinations. - Keep navigation side effects outside widget `build`. - Do not place large domain objects directly in URLs or restoration state. ## Verification Test cold deep links, warm links, back/forward behavior, authentication redirects, invalid parameters, restoration where required, and each supported shell/tab history. ## Sources - [Flutter navigation and routing](https://docs.flutter.dev/ui/navigation) - [Deep linking](https://docs.flutter.dev/ui/navigation/deep-linking)