mcpField
F
flutter-background-execution

flutter-background-execution

github.com/thienqo開発1792 回インストール今日更新
リポジトリ

flutter-background-execution について

Flutter のバックグラウンド処理を計画し、OS のスケジューラー上で検証するためのガイダンススキルです。ジョブの要件に応じた実行方式の選択と、プラットフォームのライフサイクル確認を支援します。

主な機能

  1. 01ジョブ要件の評価
  2. 02スケジューラー選択の指針
  3. 03必要に応じたプラットフォーム資料
  4. 04ライフサイクルと失敗の検証

活用シーン

  1. 01遅延可能な処理のスケジューラー選定
  2. 02プロセス終了や再起動後の動作確認
  3. 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.md
apple-background-tasks.md
headless-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 のスケジューリングが機能する証明にはなりません。

参考資料

コメント