27
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RxSwiftAdvent Calendar 2015

Day 1

RxSwift2.0.0がリリースされた

Last updated at Posted at 2016-01-02
この記事は 「RxSwift Advent Calendar 2015」1日目の記事です。

長らく開発の続いていたRxSwiftの2系がついにリリースされたようです。

今回もまあまあ変わっている部分があるようなので、beta4, 2.0.0-rc0, 2.0.0 あたりでの特に気になった変更点をまとめます。2.0.0もリリースされことですし、そろそろインターフェースも落ち着いてくることを期待しています。

Observable生成メソッド関連の変更

グローバルに定義されていた justfailWith などが削除され、Observablestatic ファクトリメソッドになっています。また後者については、error(ErrorType) に変更されています。おもな変更を一応コードで書いておくと以下のような具合です。

just の変更点

// before
just(value)  
//after
Observable.just(value)

find replace all just( to Observable.just( すればOK

failWith の変更

// before
failWith(/* ErrorType */)
//after
Observable.error(/* ErrorType */)

find replace all failWith( to Observable.error( すればOK

同様な変更

of(sequenceOfに変更), empty, create, zip, debounce, range, generate, interval など詳しくは この辺り をみると色々のってます。あとソースコードの diff も見ましょう。

Variable の変更

以前 VariableObseravble のインターフェースを持っていましたが、現在は asObservable() をかましてあげる必要がああります。Variable に対して、Observableの高階関数が直接使えなくなっているので注意が必要です。

var variable = Variable<Int> = Variable(1)
// variable.filter(function) => これはできなくなっている
variable.asObservable().filter(function)

MainScheduler.sharedInstance がいなくなった

MainScheduler.instance に変更

rx_controlEventsrx_controlEvent に変更された

RxCocoa のほうの変更。find replace All で頑張ろう

その他

テスト向けの便利なライブラリ RxTests が増えたらしい。これについてはまた後ほど。あと VirtualTimeScheduler というものと HistoricalScheduler というものが増えたらしい。今後調べます。

おわりに

今年もRxSwiftを積極的に用いて、できればライブラリの開発にもContributeできれば良いかなぁと思っています。みなさんも便利で快適なライブラリ、RxSwiftを使って、胸がらんらん歌う開発をenjoyしましょう。

27
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?