RxSwiftの基本を学ぶ
RxとはReactive Extensionsの略で非同期処理やイベント処理などを宣言的に記述することができる便利なライブラリです。 RxのSwift実装なのでRxSwiftと言います。
インストール方法
pod 'RxSwift'をPodfileに記述しpod installでインストールできます。
Observableで通知を受け取る
ObservableはRxSwiftの基本となる考え方でプロパティを監視するためのクラスです。通知するものは以下の3つ。
種類 | 説明 |
---|---|
onNext | 通常のイベントを送る。複数回可能。 |
onError | エラーの発生を通知する。発生後はイベントが発生しない。 |
onComplete | 完了を通知。発生後はイベントが発生しない。 |
これらのイベントは下記のようなMarble Diagramという図で表されます。
丸がonNext、縦棒がonComplete、バツがonErrorです。
Subjectでイベントを発行する
RxではPublishSubjectというものがあり、これはObservableと同じ機能を持っています。
その他のSubject
BehaviorSubject
BehaviorSubjectはsubscribe時に、一つ過去のevent(最初にsubscribeする場合は初期値)を受け取れるSubject。
ReplySubject
ReplaySubjectはオブザーバがいつサブスクライブするかに関わらずソースObservable(s)が送信した全てのアイテム(イベント)をオブザーバに送信する。
Variable
VariableはBehaviorSubjectをラップする。BehaviorSubjectに対しての利点は、Variableは明示的に complete または error になることがない。また、Variableはdeallocated時に自動的に完了する。
まとめ
まだまだ使いこなすと便利な機能がたくさんありますので、応用編も近いうちに書きたいと思います。
参考サイト
オブザーバーパターンから始めるRxSwift入門
【Swift】RxSwiftのPlaygroundを読む②
RxSwift 入門 その2 - タコさんブログ
【iOS Swift入門 #299】[RxSwift]バインドできるプロパティを作成する - Swift,Objective-Cプログラミング ~ iOS ~