Skills Development Flutter Dart Architectural Patterns

Flutter Dart Architectural Patterns

v20260517
dart-flutter-patterns
A comprehensive guide to idiomatic and robust Dart/Flutter patterns. Covers essential topics including null safety, immutable state management (Freezed), advanced state solutions (BLoC, Riverpod, Provider), reactive routing with GoRouter, secure networking using Dio, and implementing Clean Architecture principles. Ideal for setting up new, scalable Flutter projects.
Get Skill
145 downloads
Overview

Dart/Flutterパターン

使用時期

次の場合にこのスキルを使用:

  • 新しいFlutter機能を開始し、状態管理、ナビゲーション、またはデータアクセスのイディオマティックパターンが必要
  • Dartコードのレビューまたは作成とnull安全性、シール型、非同期構成のガイダンスが必要
  • 新しいFlutterプロジェクトをセットアップしBLoC、Riverpod、またはProviderのうち選択
  • 安全なHTTPクライアント、WebView統合、ローカルストレージを実装
  • FlutterウィジェットEt、Cubit、またはRiverpodプロバイダーのテストを作成
  • GoRouterを認証ガードでワイヤリング

動作方法

このスキルは、懸念事項で整理されたコピーペーストの準備ができたDart/Flutterコードパターンを提供:

  1. Null安全性!を避ける、?./??/パターンマッチングを好む
  2. 不変状態 — シール型、freezedcopyWith
  3. 非同期構成 — 並行Future.waitawait後の安全なBuildContext
  4. ウィジェットアーキテクチャ — クラスに抽出(メソッドではなく)、const伝播、スコープ付きリビルド
  5. 状態管理 — BLoC/Cubityベント、Riverpodノーティファイアおよび派生プロバイダー
  6. ナビゲーションrefreshListenable経由の反応型認証ガード付きGoRouter
  7. ネットワーキング — インターセプタ付きDio、ワンタイム再試行ガード付きトークンリフレッシュ
  8. エラーハンドリング — グローバルキャプチャ、ErrorWidget.builder、crashlyticsワイヤリング
  9. テスト — ユニット(BLoC test)、ウィジェット(ProviderScopeオーバーライド)、モック上のフェイク

// シール状態 — 不可能な状態を防止
sealed class AsyncState<T> {}
final class Loading<T> extends AsyncState<T> {}
final class Success<T> extends AsyncState<T> { final T data; const Success(this.data); }
final class Failure<T> extends AsyncState<T> { final Object error; const Failure(this.error); }

// 反応型認証リダイレクト付きGoRouter
final router = GoRouter(
  refreshListenable: GoRouterRefreshStream(authCubit.stream),
  redirect: (context, state) {
    final authed = context.read<AuthCubit>().state is AuthAuthenticated;
    if (!authed && !state.matchedLocation.startsWith('/login')) return '/login';
    return null;
  },
  routes: [...],
);

詳細については、ドキュメントを参照してください。

Info
Category Development
Name dart-flutter-patterns
Version v20260517
Size 3.01KB
Updated At 2026-05-18
Language