RxSwiftわからん

メモ書き

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イベントです。スクロールイベントをすべてハンドリングすると処理回数が多くなり、場合によってはスクロールがもっさりしてしまいますよね。それを防ぎます。

throttleとdebounce

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()を行って、接続を完了させる。