← Browse

@hoangnguyen0403/flutter-navigation

A

Implement route configuration, go_router/deep linking, and named routes in Flutter. Use for route declarations, route guards, and URL-to-screen mapping; defer transition-only animation, state-transfer/BLoC questions, auto_route-specific setup, and generic app-bar controls.

skillclaude

Install

agr install @hoangnguyen0403/flutter-navigation --target claude

Writes 1 file into .claude/skills/, pinned to git-6f583f73.

  • .claude/skills/flutter-navigation/SKILL.md

Document


name: flutter-navigation description: Implement route configuration, go_router/deep linking, and named routes in Flutter. Use for route declarations, route guards, and URL-to-screen mapping; defer transition-only animation, state-transfer/BLoC questions, auto_route-specific setup, and generic app-bar controls. metadata: triggers: files: - '/*_route.dart' - '/*_router.dart' - '**/main.dart' keywords: - Navigator - GoRouter - routes - deep link - go_router - AutoRoute

Flutter Navigation

Priority: P1 (HIGH)

Implementation Workflow

  1. Choose router — Use go_router for modern, declarative routing.
  2. Define routes — Use constants or code generation for route paths; never hardcode strings.
  3. Configure deep links — Set up AndroidManifest.xml and the iOS URL-type settings for app URL schemes.
  4. Validate parameters — Check parameters in redirect logic before navigation.
  5. Preserve tab state — Use StatefulShellRoute or IndexedStack for bottom navigation.

Route Configuration Example

See implementation examples for GoRouter configuration with parameter validation and redirects.

Routing Patterns & Examples

Anti-Patterns

  • No Manual URL Parsing: Use go_router built-in parsing instead of Uri.parse(url)
  • No Manual Tab State Management: Use IndexedStack or StatefulShellRoute to preserve state
  • No Unvalidated Deep Link IDs: Always check existence in redirect
  • No Hardcoded Route Strings: Use constants (e.g., Routes.orders) or code-gen instead of '/orders'

Related Topics

flutter-design-system | flutter-notifications | mobile-ux-core

Canonical response anchors

When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:

  • Android
  • iOS URL-type

Trustgrade A

  • passBody integrity

    Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.

  • passType matchnot applicable to this artifact type

    Whether the artifact is really the kind of thing its metadata claims it is.

  • passFreshness

    How long since the source repository was last pushed to.

  • passPrompt injection

    Scans the artifact's own text for instructions aimed at your agent rather than at you.

  • passLicense

    Whether the source repository declares an SPDX license permissive enough to redistribute.

How the grade is calculated

Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:

  • Aevery check passed
  • Bone warning
  • Ctwo warnings
  • Dprompt injection or body integrity failed, or three warnings
  • Fone of those failed, and something else is wrong

These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.

Versions

  • git-6f583f7333952026-07-31