メモ書き
ObserverとObserable
世界観として、観察者と観察対象がある。ObserableからObserverに対して複数回状態を送信する。UILabelとかUITableViewはObserberとなり、Obserableの値を観察を行って変更があった場合にそれに合わせて表示を変更を行う。ObserableはDBの値やサーバーで取ってくる値、UITextFieldやUIButtonなどがある。
Hot/Cool
obserableは基本的にHotなobservableでないと複数から観察できない。 * Subject * multicast, publish/replay/replayAll, share
少し古いが、このスライドがわかりやすかった。shareが便利
今日こそ理解するHot / Cold @社内RxSwift勉強会
Sink
内部的に使われているもの。ObserverでありObservableでもある。FilterとかMapで返ってくる
46pあたりから説明がありわかりやすかった。 RxSwift コードリーディングの勘所@社内RxSwift勉強会
deferred/Deferred
まだよくわからない
amb/Amb
buffer/BufferTimeCount, debounce
入力される最後の通知からtimeinterval の時間の後にcount分だけ通知を一気に流す。 検索をするコストがそこそこある場合に、入力されるたびではなくUISearchBarからの最後の入力から0.5秒後に検索を行いたい時に用いるのが良い。 debounceはcountを1にしたもの
throttle
連続して大量に繰り返される処理を一定間隔で間引くものです。 よく使われるのはscrollイベントです。スクロールイベントをすべてハンドリングすると処理回数が多くなり、場合によってはスクロールがもっさりしてしまいますよね。それを防ぎます。
materialize, dematerialize
Eventに変換と元に戻す
【RxSwift】materialize, dematealizeを使ってみた
concat/Concat , combineLatest/ CombineLatestN
複数のObservableをまとめて、一つのObservableとして扱うもの
distinctUntilChanged/DistinctUntilChanged
通知の内容が前回と変更があった場合に通知を次に流す
concat , merge
複数のストリームを混ぜ合わせられる
【RxSwift】concatとmergeの違いをサンプルを元に整理してみる – su- tech blog
ObservableType
RxSwiftのObertvableな物についている
Obserable
最もシンプルなObservableType。ObservableType に実装されているところ以外はほとんど能力はない
SharedSequence
ConnectableObservableType
subscribeを完了させた後にconnect()を行って、接続を完了させる。