Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

Hiroshi Hashimoto

August 25, 2017
Tweet

More Decks by Hiroshi Hashimoto

Other Decks in Technology

Transcript

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

    View full-size slide

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

    View full-size slide

  3. Souzoh confidential and proprietary 3

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  7. Souzoh confidential and proprietary
    まず先に
    7

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  10. 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さようなら。今までありがとう。

    View full-size slide

  11. Souzoh confidential and proprietary
    buildしてみる
    11

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  14. 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に置き換える

    View full-size slide

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

    View full-size slide

  16. 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()

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  22. Souzoh confidential and proprietary
    対応箇所
    22

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide