目的
RxSwiftは難解だと思う。
新規プロジェクトを制作の場合でも、指示されない限りは絶対に使わない。
後述する参考ページの項目で
RxSwiftのまとめのリンクを記載しているが、4ページと結構なボリューム数がある。
RxSwiftはスッキリした書き方ができ、拡張もしやすいイメージがあるが、
処理の解読をする場合は長ったらしい部分が多く、やっていることが分かりにくい。
分かりにくいというのは、
「だったらRxSwiftを使わないなら、分かりやすくなるか」
というと、そうでもない。変わらない。
ただ、自分がRxSwiftに慣れていないので、ちょっと難しく感じるという意味で分かりにくい
ということ。
環境
- Xcode Version 12.1
- Swift 5
参照サイト
RxSwiftについてようやく理解できてきたのでまとめることにした(1)
RxSwiftの機能カタログ
超簡易メモ
RxSwiftの案件は殆どないので、忘れがちたが、以下を見れば少しは思い出すという程度の簡易メモ
しっかり学習したい方は参照サイトへどうぞ!
PublishSubject
PublishSubjectはイベント発火とイベント受け取りができるクラスSubjectの一種
let xxxx = PublishSubject<aaaa>()
BehaviorSubject
BehaviorSubjectもPublishSubjectと同じ種類で、Subjectの一種
違いは初期値を設定できるのと、発火時の状況を取得できるところ
let yyyy = BehaviorSubject<bbbb>(value: cccc)
Observable
Observableは上記2つのSubjectを外部へ公開するようにするための設定
var zzzz: Observable<aaaa> { return xxxx }
イベント発火方法
self.xxxx.onNext(aaaa形式の変数)
イベント受け取り方法
処理の中で、case文で分岐してることが多く、そのためコード長ったらしくなり結果して見づらくなることが多い
xxxx.subscribe(onNext: { (aaaa形式の変数) in
//処理
}).disposed(by: disposeBag)
map,filter
RxSwiftにもmapやfilterがある。配列のmapやfilterと同じ効果。
配列の代わりにイベントになる。