Communitygithub.com

モバイルパフォーマンスと信頼性

Flutterモバイルアプリの起動、フレームレンダリング、スクロール、アニメーション、メモリ、バッテリー、ネットワークパフォーマンス、サービス信頼性を計測・改善します。スローまたはジャンキーなアプリ、パフォーマンス予算、プロファイリング、本番信頼性に使用します。

モバイルパフォーマンスと信頼性 とは?

このスキルは、Flutterモバイルアプリケーションのパフォーマンスと信頼性を体系的に評価・改善するためのものです。具体的には、アプリの起動時間、フレームレンダリング(UI/ラスター)、スクロール、アニメーション、メモリ使用量、バッテリー消費、ネットワークパフォーマンス、およびクラッシュやANR率などのサービス信頼性を対象とします。 このスキルが重要な理由は、ユーザー体験に直結するパフォーマンス問題を、再現可能な証拠に基づいて特定・改善できるからです。開発者は、物理デバイス上でのプロファイリング(プロファイルモード・リリースモード)、P50/P95パーセンタイルを含む詳細な計測プロトコル、そしてUIとラスターのフレームタイミングの分離分析を活用できます。最適化は、問題の再現→ベースライン計測→ボトルネック特定→最小限の変更→回帰テスト→効果検証という段階的なプロセスに従います。 対応プラットフォームは主にFlutterですが、計測原理と最適化シーケンスは汎用的で、他のモバイルフレームワークにも応用可能です。このスキルは、パフォーマンス予算の設定、プロファイリング計画の立案、回帰チェック、証拠に基づく改善アドバイスを担当し、ビジュアルデザインや証拠のない大規模リファクタリングは扱いません。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ParkersYourDad/flutter-engineering-skills/tree/HEAD/skills/mobile-performance-reliability

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

モバイルパフォーマンスと信頼性 は何をしますか?

共通基準

以下のリポジトリレベルのドキュメントを唯一の情報源として使用します。これらのチェックリストをこのスキルにコピーしたり、競合するローカルバリアントを作成したりしないでください:

ミッション

計測されたボトルネックを特定し、時期尚早な最適化や不要なアーキテクチャ変更を行わずに、ユーザーに見える結果を改善します。

担当

パフォーマンス予算、プロファイリング計画、起動/フレーム/メモリ/ネットワーク測定、ボトルネック診断、信頼性指標、パフォーマンス回帰チェック、証拠に基づく改善アドバイス。

担当外

ビジュアル方向性、製品要件の変更、証拠のない大規模リファクタリング、デバッグ/エミュレータ測定からの結果主張。

測定プロトコル

  • Flutterプロファイルモードの物理デバイスでプロファイリングします。リリーススモークと起動動作にはリリースビルドを使用します。デバッグおよびエミュレータの結果はリリースパフォーマンスの証拠にはなりません。
  • 最も低スペックのサポートデバイスから開始し、該当する場合は高リフレッシュレートデバイスも含めます。
  • デバイス、OS、リフレッシュレート、Flutter/Dartバージョン、ビルドモード、シナリオ、データセットサイズ、ネットワーク状態、繰り返し回数、使用ツールを記録します。
  • UIとラスターフレームタイミングを別々に検査します。フレーム予算はディスプレイのリフレッシュレートから導出されます。すべてのデバイスに60Hzのしきい値を一律に課さないでください。
  • サンプルサイズが許せばP50/P95を報告します。コールドスタートとウォームスタート、初回使用とウォームアップ済みアニメーション、ローカルレンダリングとネットワーク待機を分離します。
  • ユーザージャーニー(初回インタラクション、主要ナビゲーション、スクロール、検索/タイピング、メディア、シート、高負荷トランジション)を測定します。
  • ウォームアップ後および繰り返しジャーニー後のメモリを測定します。一時的な割り当てや通常のガベージコレクションと、保持されたオブジェクトリークを区別します。
  • ペイロードサイズ、リクエスト数、レイテンシ、リトライ、キャンセル、キャッシュヒット/ミス、低速ネットワーク動作を測定します。
  • アプリがポーリング、位置情報、メディア、頻繁な同期、またはリアルタイムストリームを使用している場合にのみ、エネルギー/バックグラウンド作業を監視します。

最適化シーケンス

  1. 制御されたシナリオで問題を再現します。
  2. ベースラインを取得し、ボトルネックがビルド/レイアウト、ラスター/GPU、Dart CPU、ネイティブ/プラグイン、画像デコード、メモリプレッシャー、I/O、またはネットワークのいずれかを特定します。
  3. 測定された原因に対処する最小限の変更を選択します。
  4. 回帰測定/テストを追加または更新します。
  5. 同じ条件下で改善前と改善後を比較します。
  6. 正確性、アクセシビリティ、メモリ、バッテリーのトレードオフを確認します。

避けるべきこと

時期尚早なIsolate、過剰なRepaintBoundary、無制限なキャッシュ、データセット全体の読み込み、不要なポーリング、高負荷な不透明度/クリッピング/saveLayerエフェクト、広範囲な再ビルド、ビルド内の同期的な処理、証拠のないレンダラーフラグの使用。プロファイリングがデバイス固有の問題を示し、その決定が文書化されていない限り、Flutterレンダラーのデフォルトを維持します。

信頼性

本番環境で重要なジャーニーについては、運用チームと協力して完了、レイテンシ、可用性、鮮度に関するSLI/SLOを定義します。クラッシュ/ANR率、起動回帰、バックエンド依存関係、タイムアウト、リトライストーム、アプリの一時停止/再開後や接続状態変化後の回復を調査します。

受け入れ条件

すべての重要なパフォーマンス要件には、再現可能なシナリオ、環境、メトリック、パーセンタイル、しきい値、ベースラインがあります。調査結果は原因を特定し、主張された最適化には改善前後の証拠が含まれます。測定されていないハードウェア/プラットフォームの動作は「未検証」とします。

関連スキル