flutter-background-execution について
Flutter のバックグラウンド処理を計画し、OS のスケジューラー上で検証するためのガイダンススキルです。ジョブの要件に応じた実行方式の選択と、プラットフォームのライフサイクル確認を支援します。
主な機能
- 01ジョブ要件の評価
- 02スケジューラー選択の指針
- 03必要に応じたプラットフォーム資料
- 04ライフサイクルと失敗の検証
活用シーン
- 01遅延可能な処理のスケジューラー選定
- 02プロセス終了や再起動後の動作確認
- 03再試行、キャンセル、重複実行のテスト
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ thienqo/ flutter-skills --skill flutter-background-executionインストール後、Claude Code で/flutter-background-executionを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/android-scheduling-and-services.mdapple-background-tasks.mdheadless-execution-and-reliability.md詳細
Flutter バックグラウンド実行
バックグラウンド実行は、確実に動き続けることが保証された Dart タイマーではなく、オペレーティングシステムとの契約として扱ってください。プロジェクトのスケジューラーやプラグインが要件を満たす場合は、そのまま使用してください。変更する前に、pubspec.yaml、SDK の制約、対象プラットフォーム、ネイティブ機能、既存の登録を確認してください。
ジョブを定義する
トリガー、許容できる遅延、最大実行時間、プロセスの終了や再起動後も実行が維持される必要があるか、ネットワークや電源に関する制約、ユーザーへの表示、キャンセル、サインアウトやデータ削除後の処理を記録してください。「最終的に実行されればよい」場合と「指定した時刻に正確に実行する必要がある」場合を区別してください。モバイルのスケジューラーは、一般に実行タイミングが状況に左右されます。
実行主体を選ぶ
- アプリのプロセスが動作している間だけ実行すればよい処理には、
dart-concurrencyを使用してください。 - 表示中のアプリを離れても実行を維持する必要がある、延期可能な処理には OS のスケジューラーを使用してください。
- プラットフォームでユースケースが許可され、開示要件、権限、制限が満たされる場合に限り、ユーザーに表示されるフォアグラウンドモードまたは継続処理モードを使用してください。
- 正確なユーザー向けリマインダーや通知配信は、
flutter-notificationsに委ねてください。 - カスタムのネイティブスケジューラーブリッジや再利用可能なプラグイン実装は、
flutter-platform-integrationに委ねてください。
デフォルトでスケジューリングパッケージを追加しないでください。まず、プラットフォームの対応状況、メンテナンス状況、対象 SDK のサポート、コールバックモデル、リポジトリに既存の依存関係があるかを確認してください。
必要に応じて詳細を確認する
- WorkManager、フォアグラウンドサービス、正確なアラーム、再起動時の動作、Android の権限については、Android のスケジューリングとサービスを読んでください。
- BGTaskScheduler、更新/処理タスク、有効期限、機能、iOS のスケジューリング要件については、Apple のバックグラウンドタスクを読んでください。
- コールバックディスパッチャー、アイソレート、プラグインへのアクセス、再試行、重複排除、永続的な進捗管理については、ヘッドレス実行と信頼性を読んでください。
検証
プラットフォームに依存しない境界の背後でジョブ本体をテストし、成功、再試行可能な失敗、恒久的な失敗、キャンセル、重複配信、古い ID を確認してください。その後、サポート対象のすべてのターゲットで、ネイティブ登録とライフサイクルを検証してください。バックグラウンドへの移行、プロセス終了、制約、有効期限やタイムアウト、再スケジュール、保証している場合は再起動、サインアウト時のクリーンアップを確認します。実機およびライフサイクルの実際の検証結果を報告してください。関数を直接呼び出して成功しても、OS のスケジューリングが機能する証明にはなりません。