Mastering AsyncSequence - 使う・作る・他のデザインパターン(クロージャ、Delegate など)から移行する by treastrain / Tanaka Ryoga

iOSDC Japan 2024
採択
2024/08/24 13:00〜
Track A
レギュラートーク(40分)

Mastering AsyncSequence - 使う・作る・他のデザインパターン(クロージャ、Delegate など)から移行する

treastrain treastrain / Tanaka Ryoga treastrain

これまで、データが非同期かつ継続的に流れてくる処理や、いつ発生するか分からないイベントを受け取る処理には、クロージャや Delegate、オブザーバーなどが用いられてきました。また、Apple プラットフォームでは Combine、サードパーティの OSS では RxSwift などといった外部のフレームワークも使用されてきました。

これらのほとんどは、Swift 5.5 で追加された AsyncSequence を使用する方法へと移行できます。実際、Apple が提供するフレームワークでも、従来 Delegate が用いられてきたような非同期にイベントを伝える API について、最近新規に追加されたものは AsyncSequence を採用しています。他のデザインパターンから AsyncSequence に移行することで、Swift Concurrency が持つアクター分離などのさまざまなメリットを享受できます。一方で、非同期なシーケンスならではのメモリリークにも注意が必要です。

このトークでは AsyncSequence の基礎、他のデザインパターンからの移行方法、移行するメリット、注意点まで、UIKit・SwiftUI を用いたアプリの例を使いながら詳しく紹介します。

Delegate、今までありがとう。これからは AsyncSequence でやっていくよ。