Combineベースの実装をSwift Concurrencyへ少しずつ置き換えていく際のアイデアとヒントのご紹介 by 酒井文也

iOSDC Japan 2024
採択
パンフ記事(8ページ)

Combineベースの実装をSwift Concurrencyへ少しずつ置き換えていく際のアイデアとヒントのご紹介

fumiyasac 酒井文也 fumiyasac

アプリ開発において、UIイベント・Network通信に関連する非同期イベントなどを取り扱う場面等では、Combineを利用した実装や処理に触れる機会はまだまだあると思いますし、上手に活用する事で処理の見通しをより良い物にしたり、内部処理の統制をうまく取る役割を担う事もできます。

昨今のSwift Concurrencyの登場により、既存のCombineベースで記載した処理をよりシンプルかつ見通し良くする事が可能な余地も増えた様に感じます。補う必要がある部分はCombineで補いながらも、アーキテクチャ内部の処理を徐々に置換する際には、段階的に処理を置換可能にするためのちょっとした工夫や考え方の方針があると心強いと思います。

本稿では、

  • Combineでの処理をasync/awaitへ置換する際の基本方針
  • CombinePublisherが中心の構成から少しずつ置換するアプローチとアイデア
  • 独自に変換するExtensionの活用やAsyncStream等の活用事例との比較
  • async/awaitを利用する事で処理をシンプル化できた事例紹介

等のトピックに関連する考察や、async/awaitベースの処理への置換でよりシンプル化ができる事例をご紹介致します。