#RxSwiftとは
RxSwiftはReactive Extensions Swiftの略のこと。Reactive Extensionsは非同期処理をいい感じに時系列に沿って処理してくれるC#の最強ライブラリ。
つまり、RxSwiftはSwiftに従来備わっている非同期処理の書き方
- デリゲートデザインパターン
- Notificatin Centerを使ったオブザーバーパターン
- GCD(サクッとわかる用)(一番詳しい記事はこっち)
- クロージャー
- KVO
- PromiseKit(Promiseの概念はこちら)
- Combine
の仲間で、非同期処理をいい感じに行うための方法の一種です。
#RxSwiftの非同期処理方法
では、RxSwiftはどうやって非同期処理を行っているのか?
RxSwiftでは、様々なイベント/処理を、時間とともに流れてくる一連のデータ(データストリーミング)に対して実行します。(リアクティブプログラミングと呼ばれるもの)
上記の利点として、
- プログラム内で発生する全てのイベントを時間軸で捉えることができる
- コールバック地獄に陥らない
- MVVMを導入することで、FatViewControllerからの脱却/テストしやすいコードを書ける(具体例1,具体例2)
- 関数型プログラミングで書ける
というものがあります。