既存アプリにおける Swift Concurrency への漸進的な移行戦略 by 栗山 徹

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

既存アプリにおける Swift Concurrency への漸進的な移行戦略

kotetu 栗山 徹 kotetu
1

Swift Concurrency が初めて発表されてから約3年が経過しました。特に非同期処理の実装においては Swift Concurrency を選択することが一般的になってきました。

Swift Concurrency 登場以前から開発されているアプリの場合、非同期処理や UI 更新のためのデータバインディング目的で RxSwift を使うケースが多く、歴史の長いコードベースほど RxSwift への依存が大きくなっています。このため、機能開発と並行して徐々に Swift Concurrency へ置き換えていく、といったケースも多いのではないでしょうか。

本トークでは、既存の RxSwift で実装された箇所との共存を図りながら Swift Concurrency へ置き換えていく過程で気をつけるべき点や苦労した点について私の経験を交えてご紹介します。来るべき Swift 6 に備えて今からできる対応についてもご紹介します。

本トークでご紹介する主な内容は次のとおりです。

  • RxSwift で実装された処理と Swift Concurrency で実装された処理との繋ぎこみ
  • テストコードの修正で遭遇した問題
  • 漸進的な移行を実現するために Protocol を活用する
  • Sendable チェックとの戦い