この記事はRxSwift初心者向けに書いています。
僕自身、似たフレームワークであるCombineは触っていたのですが、RxSwiftは全くの初心者です。
ですので、もし何か間違いがあったらコメントくださいませ。
この記事を読むことで、RxSwiftの根幹であるReactiveXの考え方についてサラッと触れることができます。
RxSwiftってなに?
ReactiveXというものをベースにしたSwiftライブラリです。
Swiftでコードを書いていると、delegateとかclosureでコールバックに陥ったりとかで処理が複雑になってしまうことってありますよね。
それらを一つのデータの流れ(ストリーム)として捉えて処理を行うのがリアクティブプログラミングという考え方になります。
それにとても近い考え方(正確には違う?)での実装を実現させたライブラリがReactiveXとのこと。
データの流れはよく「川」に例えられます。
ReactiveXってなに?
ReactiveXの公式サイトにはこのように記述されています。
ReactiveXは、監視可能なシーケンスを使用して非同期およびイベントベースのプログラムを作成するためのライブラリです。
オブザーバーパターンを拡張してデータやイベントのシーケンスをサポートし、低レベルのスレッド化、同期、スレッドセーフ、同時データ構造、非I / Oをブロックします。
ReactiveXは、オブザーバーパターンの拡張機能であるとのこと。
オブザーバーパターンとは?
ざっくり一言でいうと、デザインパターンの一種で、監視する側と監視される側で処理のやり取りするパターンのこと。
あるオブジェクトに対して常に監視し続けており、対象の状態が変化すると監視側に通知され、処理を行います。
Observer pattern - Wikipedia

ObserverとObservable
ReactiveXでは、監視される側がObserbableで監視する側がObserverとのこと。
名前が英語そのものなのでわかりやすいですね。
ちなみに、Combineフレームワークでは、監視される側はPublisher、監視する側はSubscriberと呼ばれています。(全く同じなのかは不明)
コメント