🛤️
GoRouter宣言的ルーティング
Flutter公式推奨ルーティングパッケージ
go_routerはFlutterチームが公式メンテナンスする宣言的ルーティングパッケージです。
GoRouteオブジェクトでルートを定義し、GoRouterインスタンスに登録します。context.go('/home')でナビゲーションし、URLパスと1:1マッピングされます。
認証リダイレクト(未ログイン時/loginへ)、ShellRoute(ボトムタブバー維持)、ネストルートなど、実務で必要な機能をすべてサポートします。
実装ステップ
1
go_routerパッケージ追加(pubspec.yaml)
2
GoRouterインスタンス生成 + GoRouteでルート定義
3
MaterialApp.router()でルーター接続
4
redirectコールバックで認証ガード実装
メリット
- ✓ URLベースでWeb/ディープリンク完全対応
- ✓ Flutterチーム公式メンテナンスで安定性保証
デメリット
- ✗ 基本Navigatorより初期設定が複雑
- ✗ バージョンアップデート時にマイグレーションコスト発生の可能性
ユースケース
Web + モバイル兼用アプリ(URLベースルーティング必須)
認証フローがあるアプリ