🛤️

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ベースルーティング必須) 認証フローがあるアプリ