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

レガシーアプリ再生計画

gurensouen Odagiri133 gurensouen
3

私たちのiPadアプリはリリースから約15年が経過し、長年の機能開発の結果、技術的負債を抱えるに至りました。
具体的には、

  • 肥大化した "Fat ViewController" が多数存在し、改修時の影響範囲の特定を困難にしています。
    • シングルトンやAppDelegateへの過度な依存が、クラス間の密結合を生み出しています。
    • 上記の結果として、ユニットテストを書くことが極めて難しい、あるいは不可能なコードベースとなっています。

また、コードの大部分は歴史的経緯からObjective-Cで書かれており、今後の採用観点からSwift化への置き換えとこれらの負債を解消しながらが大きな課題です。
本セッションでは、これらの技術的負債に対し、日々の機能開発を止めることなく、いかにして立ち向かっているか、そのアプローチを共有します。

主にお話しする内容:
Fat ViewControllerの分割戦略: 巨大なViewControllerの責務を、Presenter/ViewModel//UseCaseといった単位へ安全に分割していくか、具体的なリファクタリング手法をコードと共に解説します。
依存関係の解消プロセス: DI(依存性注入)の考え方を導入し、AppDelegateやシングルトンへの直接参照をどのように剥がしていくか、その段階的なプロセスを共有します。
テスト可能なコードへの改善: 既存のコードにユニットテストを追加するための、インターフェース導入や副作用の分離といった具体的な手法を紹介します。

このセッションを通じて、同様の課題を抱える開発者の皆さんが、明日から自身のプロダクトで試せる具体的な一歩を踏み出すための、現実的な選択肢と知見を持ち帰っていただくことを目指します。