Eyes, JAPAN Blog > RxSwift

RxSwift

Shoma Saito

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

みなさんこんにちはー
今回は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という思考が好きになってしまったのでこれからどんどん布教していきたいですね

Comments are closed.