大規模コードベースのSwift 6.0 対応への歩み by nade

iOSDC Japan 2024
レギュラートーク(40分)

大規模コードベースのSwift 6.0 対応への歩み

7

皆さん、Swift 6.0のリリースに向けた対応は順調ですか?
年数が経ち肥大化していったプロジェクトや、開発速度の要求が高いプロジェクトほど、対応が難しい課題だと思います。

私たちのプロジェクトであるタップルは、3000以上のファイルと24万行以上のコードからなる11年目の大規模サービスです。
完全に対応が完了したわけではありませんが、日々の対応を進めることで、Strict Concurrency Checkingを

  • 新規の機能に関してはほぼ100%
  • 既存の機能に関しても約半数

まで前進させることができました。

本トークでは、大規模なコードベースでどのように段階的に取り組んでいくかについて以下の事例をお話しします。

  • Fluxベースの旧アーキテクチャからSwift Concurrencyベースの新アーキテクチャへの段階的移行の方法
  • Module単位での段階的なStrict Concurrency Checking対応の事例とロードマップ

また、下記の組織としての取り組み方についても触れ、皆さんのプロジェクトでどのように推進していけば良いかについての知見を提供します。

  • チームでのSwift Concurrencyの知識の学習方法
  • 移行時の組織とのコミュニケーション
    • どのように工数を確保するか
    • どのように便益を説明するか