自作して理解するリアクティブプログラミングフレームワーク by y.imajo

iOSDC Japan 2019
採択
2019/09/07 14:20〜
Track A
レギュラートーク(30分)

自作して理解するリアクティブプログラミングフレームワーク

yimajo y.imajo yimajo

WWDC19で発表されたCombine.frameworkはリアクティブプログラミングという言葉では発表されなかったものの、複雑になりがちなイベント処理をデータの流れとして統一的に扱い、イベントへ反応する処理を組み合わせる宣言的なコーディングを実現します。
このことによりCombine.frameworkは最近のリアクティブプログラミングのパラダイムに沿ったフレームワークと言えるでしょう。これに備え、我々はリアクティブプログラミングのパラダイムを仕組みから理解する時がやってきたのです。

このトークでは、現状のリアクティブプログラミングフレームワークであり広く普及しているRxSwiftを構成するソースコードを解説し、それを参考にテストコードを交えながら最小限の「偽・リアクティブプログラミングフレームワーク」をトークの中で作成していきます。

もちろん最小限の構成で理解を促進するものなので、非同期プログラミングのためのフレームワークとして本来は必須であるスレッドセーフ、メモリ管理、スケジューラの概念は捨てます。トキメかないので。

説明のため必須なものまで捨てられた「偽・リアクティブプログラミングフレームワーク」によって、今まで雰囲気で知っていた次のルールが心で理解できるはずです。

  • Coldなストリームはなぜsubscribeされないと動作しないのか
  • SubjectがObservable/Observerの性質を持つというのはどういう意味か
  • ColdをHotなストリームに変換する具体的な方法
  • Hotなストリームがsubscribeされても1回しかイベントを発生しないとはどういう原理か

本セッションの進行とともに、皆さんには「理解したわー。リアクティブプログラミング完全に理解したわー」という感想を持っていただければ幸いです。