flutter-persistence について
データ形状、検索、耐久性、セキュリティ、同期、移行の要件に応じて Flutter の保存方式を選ぶスキルです。Repository を介したモデルの分離と、復旧時の永続ユーザーデータ保護を重視します。
主な機能
- 01データ要件に応じた保存方式の選択
- 02Repository による保存モデルの分離
- 03キャッシュとオフライン動作の計画
- 04スキーマのバージョン管理と移行
- 05復旧とデータ安全性のテスト
活用シーン
- 01Flutter 機能の保存方式選定
- 02オフライン変更と競合処理の計画
- 03アプリ版間での永続データ移行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ thienqo/ flutter-skills --skill flutter-persistenceインストール後、Claude Code で/flutter-persistenceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/cases.jsonreferences/caching-policy.mdoffline-sync.mdschema-migrations-and-recovery.md詳細
Flutter の永続化
データの形状、クエリの要件、耐久性、機密性、同期、移行の要件に基づいてストレージを選択します。
API を選択する前に、pubspec.yaml、SDK の制約、解決済みの永続化パッケージとバージョン、生成スキーマの方針、既存のストレージの管理者、対応プラットフォーム、テストを確認します。明確な要件が既存パッケージの対応範囲を超えない限り、現在使用しているパッケージを維持してください。
適切な規模で選択する
- 小さな設定にはプリファレンスを使用し、リレーショナルデータや重要なドメインデータには使用しないでください。
- ドキュメントや Blob の管理には、アトミック性とクリーンアップを明示したうえでファイルを使用します。
- クエリ、リレーションシップ、トランザクション、インデックス、移行が必要な場合は、データベースを使用します。
- 小さなシークレットにはプラットフォームのセキュアストレージを使用し、通常のアプリデータベースをシークレット保管庫として扱わないでください。
- 具体的な要件を満たせない場合を除き、現在使用しているパッケージを維持してください。
データの管理を定義する
信頼できる唯一の情報源、キャッシュの鮮度、書き込み順序、競合時の動作、オフラインでの変更、削除の意味、破損データや互換性のないデータからの復旧を定義します。スキーマの詳細がウィジェットに漏れないよう、ストレージモデルをリポジトリの背後に置いてください。
必要に応じて参考資料を読む
- キャッシュキー、鮮度、無効化、削除、古いデータの開示、ユーザー分離を選択する際は、キャッシュポリシーを読んでください。
- ローカルデータとリモートデータが乖離する可能性がある場合、オフライン中に変更をキューに追加する場合、バックグラウンド処理を実行する場合、または競合や削除を調整する必要がある場合は、オフライン同期を読んでください。
- データベーススキーマ、シリアライズされた永続形式、移行コールバック、互換性のないデータの復旧方針を変更する前に、スキーマの移行と復旧を読んでください。
HTTP バリデーターと転送キャッシュについては flutter-networking を参照し、画像、ウィジェット、スクロール、メモリーキャッシュのパフォーマンスについては flutter-performance を参照してください。
移行と安全性
移行と復旧の動作を定義する前に、保存状態を永続的なユーザーデータ、永続的な操作、破棄可能なキャッシュ、再生成可能な派生データに分類します。スキーマにバージョンを付け、実際の以前のバージョンの成果物を使って、サポート対象のアップグレード経路をすべてテストしてください。移行の失敗に対する自動対応として、永続的なユーザーデータを破棄してはいけません。破棄可能なキャッシュの再構築が有効なのは、その管理者と再構築元が明確な場合に限ります。アクセストークン、パスワード、機密性の高い個人データをログや平文のプリファレンスに保存しないでください。
検証
機能に関連する初回起動、再起動、アップグレード、書き込み失敗、並行アクセス、データ破損、削除、オフライン/オンラインの切り替えをテストします。再現性のあるテストには、一時的なデータベースまたはディレクトリを使用してください。