Migration from RxSwift 1.9 to RxSwift 2.0
The migration should be pretty straightforward. Changes are mostly cosmetic, so all features are still there.
- Find replace all
>-
to.
- Find replace all
variable
toshareReplay(1)
- Find replace all
catch
tocatchErrorJustReturn
- Find replace all
returnElement
toObservable.just
- Find replace all
failWith
toObservable.error
- Find replace all
never
toObservable.never
- Find replace all
empty
toObservable.empty
- Since we’ve moved from
>-
to.
, free functions are now methods, so use.switchLatest()
,.distinctUntilChanged()
, … instead of>- switchLatest
,>- distinctUntilChanged
- We’ve moved from free functions to extensions so it’s now
[a, b, c].concat()
,.merge()
, … instead ofconcat([a, b, c])
,merge(sequences)
- Similarly, it’s now
subscribe { n in ... }.addDisposableTo(disposeBag)
instead of>- disposeBag.addDisposable
- The method
next
onVariable
is nowvalue
setter - If you want to use
UITableView
and/orUICollectionView
, this is the basic use case now:
viewModel.rows
.bindTo(resultsTableView.rx_itemsWithCellIdentifier("WikipediaSearchCell", cellType: WikipediaSearchCell.self)) { (_, viewModel, cell) in
cell.viewModel = viewModel
}
.addDisposableTo(disposeBag)
If you have any doubts about how some concept in RxSwift 2.0 works, check out the Example app or playgrounds.