Slide 1

Slide 1 text

メルカリアッテをRxjava2に 載せ換えて。。 Souzoh Android Talk

Slide 2

Slide 2 text

Souzoh confidential and proprietary 自己紹介 2 橋本 泰(@hi6484) Android Developer メルカリ アッテ担当 Shibuya.apk運営

Slide 3

Slide 3 text

Souzoh confidential and proprietary 3

Slide 4

Slide 4 text

Souzoh confidential and proprietary Rxjava2に載せ替える 4

Slide 5

Slide 5 text

Souzoh confidential and proprietary なぜ載せ替えるのか? 5

Slide 6

Slide 6 text

Souzoh confidential and proprietary ってことで、登壇タイトルに設定して 対応することに。 6

Slide 7

Slide 7 text

Souzoh confidential and proprietary まず先に 7

Slide 8

Slide 8 text

Souzoh confidential and proprietary 全て終わりませんでした。 8

Slide 9

Slide 9 text

Souzoh confidential and proprietary アッテで大変そうなところ Subject.onNext(null);ってのが大量にある。。。 ComposoteSubcriptionもたくさん使っているなぁ 色々とあるんだろうな 9

Slide 10

Slide 10 text

Souzoh confidential and proprietary compile 'io.reactivex.rxjava2:rxjava:2.1.2' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile "com.jakewharton.rxbinding2:rxbinding:${rx_binding}" compile "com.squareup.retrofit2:adapter-rxjava2:${retrofit_version}" とりあえずapp/build.gradle 10 Rxjavaさようなら。今までありがとう。

Slide 11

Slide 11 text

Souzoh confidential and proprietary buildしてみる 11

Slide 12

Slide 12 text

Souzoh confidential and proprietary buildしてみる 12 ←101 errors(ファイル数)

Slide 13

Slide 13 text

Souzoh confidential and proprietary 対応箇所エラー 13

Slide 14

Slide 14 text

Souzoh confidential and proprietary 対応箇所 import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; import rx.subjects.PublishSubject; import rx.subscriptions.CompositeSubscription; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.subjects.PublishSubject; import io.reactivex.schedulers.Schedulers; 14 とりあえず、rx.xxxをio.reactivex.xxxに置き換える

Slide 15

Slide 15 text

Souzoh confidential and proprietary 対応箇所 private final CompositeSubscription compositeSubscription = new CompositeSubscription(); compositeSubscription.unsubscribe(); private final CompositeDisposable compositeDisposable = new CompositeDisposable(); compositeDisposable.dispose(); 15 CompositeSubscriptionをCompositeDisposable

Slide 16

Slide 16 text

Souzoh confidential and proprietary 対応箇所 loadingRequest.onNext(true); ApiCient apiClient = new ApiClient(); apiClient.responseFrom(new Offer(id)) .doOnTerminate(() -> loadingRequest.onNext(false)) .subscribe(); loadingRequest.onNext(true); ApiCient apiClient = new ApiClient(); apiClient.responseFrom(new Offer(id)) .doAfterTerminate(() -> loadingRequest.onNext(false)) .subscribe(); 16 doOnTerminate()をdoAfterTerminate()

Slide 17

Slide 17 text

Souzoh confidential and proprietary アッテで大変そうなところ Subject.onNext(null);ってのが大量にある。。。 ComposoteSubcriptionもたくさん使っているなぁ 色々とあるんだろうな 17

Slide 18

Slide 18 text

Souzoh confidential and proprietary アッテで大変そうなところ Subject.onNext(null);ってのが大量にある。。。 ComposoteSubcriptionもたくさん使っているなぁ 色々とあるんだろうな 18

Slide 19

Slide 19 text

Souzoh confidential and proprietary アッテで大変そうなところ Subject.onNext(null);ってのが大量にある。。。 →NullPointerException になるだけ。。。 19 http://qiita.com/kubode/items/aebef4593e42a3b367be

Slide 20

Slide 20 text

Souzoh confidential and proprietary 対応箇所 http://in.fablic.co.jp/entry/2017/04/27/110000 20

Slide 21

Slide 21 text

Souzoh confidential and proprietary 黒川さん神!! 21

Slide 22

Slide 22 text

Souzoh confidential and proprietary 対応箇所 22

Slide 23

Slide 23 text

Souzoh confidential and proprietary 対応箇所 23 ↑162 matches

Slide 24

Slide 24 text

Souzoh confidential and proprietary 地道に修正してく 24

Slide 25

Slide 25 text

Souzoh confidential and proprietary 大変だけど。。 25

Slide 26

Slide 26 text

Souzoh confidential and proprietary Rxjava2 これから宜しくお願い致します 26

Slide 27

Slide 27 text

Souzoh confidential and proprietary ご静聴ありがとうございました 27