1操作で数万回の再描画処理を数回にするまでの話 (SwiftUI) by 小林直人

iOSDC Japan 2025
レギュラートーク(20分)

1操作で数万回の再描画処理を数回にするまでの話 (SwiftUI)

小林直人

1つ何かをするだけで膨大な再描画処理が行われ、画面が固まってしまうアプリ

ミニプロジェクトを立ち上げて改善しよう!
ここから始まったプロジェクトがまっっったくミニじゃなくなった
・どうして再描画がこんなにも発生しているのか? → トリガーがわからない
・永遠に引きずり回されてるデータがあるから不要なのはなくそう → 数が多すぎて本当にわからない
・テキストを入力してから表示されるまでの流れを見てみよう → Viewファイル内で迷子になる
・ちょいちょい意味がわからないコメントが書いてある、伝わるように書いてよ.. → (数ヶ月後に)最後の気力で残してくれた先人のダイイングメッセージと気づく

→ 仮に再描画抑えれたとしても、保守できない。もう作り直すしかないね

こんな感じで大きく流れが変わったプロジェクトの

  1. 正しい仕様書がない
  2. 既存コードでの問題点/原因(結局把握はしきれなかった)
  3. 対策/改善方法
  4. 壮絶なリアーキテクチャ
  5. こんなところまで良くなったね!本当に頑張った! ダイイングメッセージもありがとう!

みたいな話