Swiftにおけるホットリロードの仕組みと実践 by ばんじゅん🍓

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

Swiftにおけるホットリロードの仕組みと実践

banjun ばんじゅん🍓 banjun
10

ホットリロードは、アプリを実行したまま再起動せずに実行コードを差し替えるテクニックです。Swiftは初めから動的な振舞いが少ない言語でしたが、今ではホットリロードの実現に必要な一部の機能がSwiftでも提供されています。

このトークでは、Swiftの @_dynamicReplacement の仕組みを解説し、ホットリロードを実践するためのノウハウをお伝えします。
Xcode Previewsでも使われているこの機能は、アプリの中でも使えます。例えば、アプリを再起動せずにビューを変えたり、APIレスポンスを変えたり、カメラのセッションを切らずにフィルターの実装を変えたりもできます。

下記の内容を特に詳しく解説します。動作についてはiOS/macOS/visionOSのシミュレーターと実機で確認済みです。

  • ホットリロードできるバイナリのビルド
  • Swiftが関数置き換えをする仕組み
  • 実機向けのsandboxやコード署名

トークの対象は、提供されているツールを単に使うだけではなく、Swiftの機能を深く理解したうえで使いたい人や、ホットリロードを自分で実装してみたい人です。この機能を活用する予定が今は無かったとしても、このトークでSwiftの実行環境の理解を深める楽しみをお伝えできればと思います。