flutter-networking について
Flutter 開発者向けのネットワーキングスキルです。通信処理をサービス境界に閉じ込め、アプリの他の部分にはドメインに沿った結果を提供する方法を扱います。
主な機能
- 01HTTP クライアントと設定の方針
- 02防御的なデコードと障害分類
- 03境界でのドメインモデル変換
- 04安全なリトライと認証情報の更新
- 05ページネーションとキャッシュの定義
- 06モック通信によるネットワーク検証
活用シーン
- 01Flutter アプリへの HTTP API の組み込み
- 02デコード、認証、タイムアウトの調査
- 03ページネーション、リトライ、オフライン動作の検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ thienqo/ flutter-skills --skill flutter-networkingインストール後、Claude Code で/flutter-networkingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/cases.jsonreferences/graphql.mdhttp-response-evidence.mdrealtime-transports.md詳細
Flutter Networking
トランスポートに関する処理はサービス境界に置き、アプリの他の部分にはドメイン上の意味が明確な結果を公開します。
モードを選択する
- 一般的なHTTPのリクエストとレスポンスの処理には、以下のルールを適用します。
- GraphQL操作、生成モデル、正規化キャッシュ、楽観的書き込み、サブスクリプションについては、GraphQLクライアントを参照してください。
- WebSocket、SSE、Socket.IO、接続の復旧、ライブイベントの配信については、リアルタイムトランスポートを参照してください。
- RESTまたはHTTPレスポンスのデバッグ、未文書化のフィールド、デコードのずれ、Swagger/OpenAPIとデプロイ済みの動作の比較については、HTTPレスポンスの証拠を参照してください。
- GraphQLサブスクリプションでは、両方のリファレンスを参照してください。ストリームの競合やサブスクリプションのリークは
dart-concurrencyに、永続的なオフラインキューはflutter-persistenceに、アプリ終了中のアラートはflutter-notificationsに振り分けてください。
調査する
現在のクライアント、生成されたAPIコード、インターセプター、モデル生成、認証、環境設定、テストを確認します。要件を満たしている場合は、既存のhttp、Dio、生成済みクライアント、またはその他の確立された選択を維持します。
ルール
- シークレットをコミットせずに、ベースURL、ヘッダー、タイムアウト、環境の選択を一元管理します。
- 信頼できないレスポンスやメッセージを慎重にデコードし、トランスポート、プロトコル、デコード、認証、ドメインの各エラーを区別します。
- 明示的な境界で、ワイヤーモデルをドメインモデルにマッピングします。
- 操作とプロトコルに照らして復旧が安全な場合に限り、再試行または再接続します。バックオフ、キュー、キャンセルには上限を設けます。
- リクエストの集中を避けるため、認証情報の更新経路を一本化します。
- ページネーションの識別、順序、重複処理、終了条件、更新時の動作を定義します。
- キャッシュポリシーを意図的に適用し、古いデータを新しいデータとして暗黙的に返さないようにします。
- トークン、個人データ、機密性の高いペイロード全体をログに記録しないようにします。
- 文書化されたスキーマ、ドキュメントの例、管理されたフィクスチャ、観測されたサーバーレスポンスを、それぞれ別の証拠として扱います。観測された1つのペイロードを完全な契約として示したり、モックをデプロイ済みの動作の証明として示したりしないでください。
検証
決定論的なフェイクサーバーまたはモックトランスポートを使い、成功、不正なデータ、タイムアウト、キャンセル、未認証時の更新、再試行の上限到達、ページネーションの境界、再接続と再開の動作、オフライン時の動作を網羅します。認証情報と環境が明示的に対象範囲に含まれる場合に限り、実サービスに対して統合テストを実行します。実行環境とデータソースは分けて報告します。
参考資料
コメント
Markdown 対応