0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RxSwift まとめ

Last updated at Posted at 2021-02-10

はじめに

RxSwiftについてまとめた内容をアップします。(ま今後も随時編集していきます)

目次

  1. RxSwiftが受け入れられる理由は?
  2. Driver
  3. Trait
  4. Hot-Cold
  5. 参考文献

RxSwiftが受け入れられる理由は?

  • メソッドチェインを使いつなげた関数型プログラミング
  • 時間の概念を取り入れたリアクションをコードにできる( ex: debounceメソッド)
  • MVVMによる処理の分離テストと書きやすさ

DriverとSignal

###Driver の効力

subscribe +
  • メインスレッドで通知
  • shareReplayLatestWhileConnected を使った Hot変換
  • エラーを伝達しないことを前提とする

参考: Rxcocoaが提供するDriverって何?

###Signal
replayされないDriver
⇨ replayされない = 過去のイベントを保持せず、なおかつ値を保持しないこと。
UIButtonのタップイベントなどに向いている。

Trait

メリット
Observableの生成 + read-only
ex) Single, Completable, Maybe

参考: RxSwift Traitについて

Hot-Cold

  • HotなObservableはsubscribeされなくても動作する。
  • HotはObservableは前のColdを動作させる。
  • HotなObservableは分岐できる。
  • HotなObservableはObserverを複数持てる。
  • HotなObservableのイベントは各Observerで共有される。
  • 各Observerに対して同じイベントが送出される。つまりそこまでのColdは何度も呼ばれない(分岐の性質)。
  • すでに流れたイベント(Next)は送出されない。つまり途中からsubcribeすると途中からしか受け取れない。
  • ColdなObservableはsubscribeするまで動作しない
  • ColdなObservableは分岐できない
  • ColdなObservableはObserverを1つしか持てない。2つ持とうとするとストリームが2つになる。

参考: 今日こそ理解するHot / Cold @社内RxSwift勉強会

Hot変換

  • Hot変換するには
    • ConnectableObservableに変換後、connect()を呼ぶ
    • RefCountに対して1つ以上subscribeを行う。(RefCountはsubscribeすることによって内部でconnect()を呼び出す)

参考: 今日こそ理解するHot変換

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?