[RxSwift] 1.9에서 2.0으로 마이그레이션 하는 방법
2018.05.04
by RxSwift, translated by pilgwon
GitHub 레포지토리를 포크해서 번역한 내용을 옮겼습니다.
마이그레이션은 쉬워야 합니다. 겉모습만 변경되었기 때문에 모든 기능들이 다 그대로 존재합니다.
- 모든
>-를.로 변경하세요. - 모든
variable을shareReplay(1)로 변경하세요. - 모든
catch를catchErrorJustReturn으로 변경하세요. - 모든
returnElement를Observable.just로 변경하세요. - 모든
failWith를Observable.error로 변경하세요. - 모든
never를Observable.never로 변경하세요. - 모든
empty를Observable.empty로 변경하세요. >-가.로 바뀌었기 때문에, free function들이 메소드가 되었고, 이제>- switchLatest,>- distinctUntilChanged대신에.switchLatest(),.distinctUntilChanged()를 사용하시면 됩니다.- free function에서 익스텐션으로 옮긴 경우엔
concat([a, b, c]),merge(sequences)대신에[a, b, c].concat(),.merge()를 사용하시면 됩니다. - 비슷하게,
>- disposeBag.addDisposable대신에subscribe { n in ... }.disposed(by: disposeBag)라고 써야합니다. Variable의next가value세터가 되었습니다.UITableView나UICollectionView를 사용하고 싶으시면, 다음과 같이 작성하면 됩니다.
viewModel.rows
.bindTo(resultsTableView.rx_itemsWithCellIdentifier("WikipediaSearchCell", cellType: WikipediaSearchCell.self)) { (_, viewModel, cell) in
cell.viewModel = viewModel
}
.disposed(by: disposeBag)
RxSwift 2.0의 컨셉에 대해 궁금한 점이 있다면, 예제 앱이나 플레이그라운드를 확인하세요.