開発
RxSwift
Shoma Saito
みなさんこんにちはー
今回はRxSwiftについて簡単にまとめていきます
RxSwiftってなに
ReactiveX(Reactive Extensions)という関数指向のライブラリをSwiftで実装したものになります
ReactiveXってなに
ReactiveX is a library for composing asynchronous and event-based programs by using observable sequences.
- ReactiveXは、observableなシーケンスを使用して非同期およびイベントベースのプログラムを構成するためのライブラリです。
なるほど。
RxSwiftのGithubはこちらです RxSwift
Eyes, JAPANはiOS開発する時にはなるべくPodではなくCarthageを推奨する文化があるのでCarthageを使って入れてみましょう、是非入れてみましょう
RxSwiftで出来ること
ReactiveXのSwift版なのでfilterやskip, combineLatestなど便利なオペレーションはもちろん使えます
でもiOS開発ですからUIKitをいろいろいじりたいですよね
実はRxSwift単体ではUIKitをいじれないのでRxCocoaというライブラリが必要になります
RxCocoaって
こんな感じでボタンのTouchUpInsideを取得することが出来ます
button.rx_controlEvent(UIControlEvents.TouchUpInside)
.subscribeNext { [unowned self] in
// 何らかの処理
}
.addDisposableTo(button.rx_disposeBag)
もしくは、
button.rx_tap
.subscribeNext { [unowned self] in
// 何らかの処理
}
.addDisposableTo(button.rx_disposeBag)
慣れればすごく便利ですね
普通に書くならば
button.addTarget(self, action: #selector(ViewController.onButton), forControlEvents: .TouchUpInside)
と書いてonButton関数に処理を書くのですが、やっぱり綺麗に書けますね、素敵。
まとめ
今更ですがRxという思考が好きになってしまったのでこれからどんどん布教していきたいですね