RxSwiftを2週間ほど触ってみて。
RxSwiftは学習コストが高いと言われている。 しかし2018年となった今は情報量が非常に多く日本語の記事もたくさんある。 すなわち学習難易度は低いのではないかと思う。
以下自分が2週間くらい手探りでわちゃわちゃやった結果、こんな感じで学んでいけばいいのかなと思ったことを整理してみた。
ざっくりと入門記事を眺めて見る。
オブザーバーパターンから始めるRxSwift入門 - Qiita
いきなり全部は無理。でもなんとなく読んで頭に入ってくる部分だけ吸収していけば多少は前提知識が生まれる。
適当にObservable作ってみる。
let observable = Observable<Int>.create { (observer) in observer.on(.next(0)) observer.on(.next(0)) observer.on(.next(0)) observer.on(.complete) } observable.subscribe { event in switch event { case .next(let element): print(element) case .error(let error): print(error) case .completed: print("complete") } }
UIイベントを試してみる
let label = UILabel() let textField = UITextField() textField.rx.text.bind(to: label.rx.text)
テキストの入力がラベルに反映される。簡単! button.rx.tapでaddTargetがいらない・・楽! ここら辺を少し試してみる。
あとは公式がすごい充実してる。
RxSwift/GettingStarted.md at master · ReactiveX/RxSwift · GitHub
Exampleの中にも初心者でも読めるような簡単なものがいくつもある。
RxSwift/SimpleValidationViewController.swift at master · ReactiveX/RxSwift · GitHub
似たような記事をぐるぐるぐるぐる何回も読めばだいたいわかってくる。
- subjectってなんだ
- hot, coldとは
- weakとunownedって(基本)
- Single Driverとは
気になったところを調べつつ、徐々に知識を広げて行く。
インクリメンタルサーチをやって見る。
これはREADMEに書いてあるやつ。私はオフィスにたまたま本があったのでこちらを使った。
最初怖いけどオペレータの使い方が徐々にわかってきた。
- distinctUntilChanged
- take
- startWith
- catchErrorJustReturn
RxMarbles: Interactive diagrams of Rx Observables
MVVMで実装して見る。
rxswift mvvm sample とか github search mvvmとかで調べればいっぱい出てくる。
私はさっきの養成読本の著者の方のを参考に作ってみて
- mearge
- zip
- withLatestFrom
などの合成を使えるようになった。何よりより実務に近付いた気がする。
これで入門は終わってなんとなく自分で動かせるようになった。 少し間違ってるかもしれないがMVVMの数字記憶アプリを作ってみたりした。
最低限はやったのであとはインターン行ったりして、できる人が近くにいる環境にいたい。
でもまだまだできることはたくさんあって。 公式のExampleとか
- QiitaでRx関連の記事網羅したり
- 勉強会の資料とか
- そもそもRxSwiftのソース読めるところ結構あるし
- RxSwift勉強すればRedux flux ReactorKitなども勉強できる。
やることなかったら
ここら辺もきになる・・