最近放置気味だった bergamio の更新を頑張っています. てっきり RxJava2 を使用していると思っていたのですが,1系のままだったみたいなので 2 に上げました. 変更された部分を抜き出してメモしておきます. 該当コミットは以下.
Update reactivex 2 · yuzumone/bergamio@1cdfd1d
close #67
build.gradle
implementation 'io.reactivex.rxjava2:rxkotlin:2.2.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxjava:2.1.14'
import 元が変更
rx から io.reacticex という感じに変更になったようですね.
1 系
import rx.Subscription
import rx.android.schedulers.AndroidSchedulers
import rx.schedulers.Schedulers
import rx.subscriptions.CompositeSubscription
2 系
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
Subscription から Disposable へ
Observable が Backpressure なしが Observable,ありが Flowable に分けられたみたいです. また,CompositeSubscription から CompositeDisposable へと変更されました.
Observable.zip
zip が Stream をまとめる際,BiFunction というのを使ってまとめるようになってました.
1 系
Observable.zip(client.getCoupon(developer, token),
client.getLog(developer, token),
{coupon, log -> createResponseData(coupon, log)})
.subscribeOn(Schedulers.newThread())
...
2 系
return Observable.zip(client.getCoupon(developer, token),
client.getLog(developer, token),
BiFunction { coupon: CouponResult, log: LogResult -> createResponseData(coupon, log) })
.subscribeOn(Schedulers.newThread())
...
retrofit2
RxJavaCallAdapterFactory から RxJava2CallAdapterFactory に変更. 1 系
implementation 'com.squareup.retrofit2:adapter-rxjava:2.3.0'
2 系
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
まとめ
- 移行はすごく大変
- 機能が少なく,使用している範囲が限られていたので助かった.