Skip to main content

dart-flutter-patterns

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

소스 정보

저장소
mturac/everything-openai-codex
최근 소스 활동
2026년 5월 18일 18:23
감지된 SKILL.md 언어
일본어
스타
86
포크
2

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
dart-flutter-patterns
description
本番環境対応のDartおよびFlutterパターンは、null安全性、不変状態、非同期構成、ウィジェットアーキテクチャ、人気のある状態管理フレームワーク(BLoC、Riverpod、Provider)、GoRouterナビゲーション、Dioネットワーキング、Freezedコード生成、クリーンアーキテクチャをカバー。
origin
ecc
# 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); } // 反応型認証リダイレクト付き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: [...], ); ``` 詳細については、ドキュメントを参照してください。
GitHub에서 보기