どっこと備忘録群

アウトプットしないとインプットできない私が Androidアプリ開発をメインとした備忘録を載せています。

DroidKaigi 2022 - 実例から学ぶJetpack Composeのパフォーマンス改善 | Mori Atsushi [JA]を視聴した

視聴元

ゴール

  • JetpackComposeで陥りやすいパフォーマンス低下を実例と共に理解・改善する

パフォーマンス改善をするにあたり意識していること

早すぎる最適化を避ける

  • コードの見通しが悪くなる
  • 無駄なコストになりやすい
  • 問題が発生したときに必要な対応を行う

ボトルネックを探していく

  • やみくもに直しても改善する可能性は低い
  • ボトルネックを探して解消することが重要

解析手順

1. リリースビルドで確認する

  • JetpackComposeではDebug/Releaseでパフォーマンスが大きく異なる
  • 不要なコードを削除するR8コンパイラを利用する

2. 不要なRecomposeがないか確認する

  • 値変化により不要な再描画処理が走っていないかを確認
  • ログを出力すると確認しやすい

3. Profilerで詳細を確認する

  • CallStackSampleRecording:何にどれだけ時間がかかっているか視覚的にわかる
  • SystemTrackRecording:UIジャンクが発生しているか
  • CompositionTracing

解決手順

  • derivedStateOf :計算結果が変わるときだけ再描画処理が走る
  • skippable
    • 入力がなければスキップする
    • すべての入力が安定しているか(条件がある)
    • 最初から意識しすぎるのは早すぎる
  • stateの監視場所を変える

最終更新: 2025.6.17