Dart Flutter Patterns

作者 affaan-mef648e01899b无许可证275K 个星标收录于 2026年10月8日更新于 2026年10月8日仓库3天前更新

本番環境対応のDartおよびFlutterパターンは、null安全性、不変状態、非同期構成、ウィジェットアーキテクチャ、人気のある状態管理フレームワーク(BLoC、Riverpod、Provider)、GoRouterナビゲーション、Dioネットワーキング、Freezedコード生成、クリーンアーキテクチャをカバー。

AI 生成的概览

提供可用于生产环境的 Dart 与 Flutter 代码模式,涵盖状态管理、导航、网络与测试。

功能
按关注点组织,提供可直接复制使用的 Dart 与 Flutter 模式,涵盖空安全、不可变状态、异步组合、Widget 架构、状态管理(BLoC、Riverpod、Provider)、GoRouter 导航、Dio 网络、错误处理与测试。其中包含示例代码片段,例如密封的异步状态类以及带响应式认证重定向的 GoRouter。它仅为说明性参考,不含脚本。
适用场景
适用于开始新的 Flutter 功能开发、需要状态管理、导航或数据访问的惯用模式时。也适合审查或编写 Dart 代码、搭建 Flutter 项目、实现 HTTP 客户端或本地存储、编写 Widget 或 Cubit 测试,以及为 GoRouter 接入认证守卫。
运行要求
除智能体外无需任何工具、软件包或凭据;不附带脚本,仅提供指导与代码模式。

Dart/Flutterパターン

使用時期

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

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

動作方法

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

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

例

dart
// シール状態 — 不可能な状態を防止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); }
// 反応型認証リダイレクト付きGoRouterfinal 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: [...],);

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

来源与署名

来源:affaan-m/ecc位于docs/ja-JP/skills/dart-flutter-patterns提交ef648e0

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架