OkHttp3+Retrofit2+...
by
Yoshihisa
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
OkHttp3+Retrofit2+...
Slide 2
Slide 2 text
● Yoshihisa Takeda ● @bomneko_attack ● 株式会社Diverse(ミクシィグループ) ● YYCというマッチングアプリの開発をしています ● Android開発をはじめてもうすぐ1年
Slide 3
Slide 3 text
APIを叩くAndroidアプリをつくるとき 通信部分を作り込むときにつかうライブラリ
Slide 4
Slide 4 text
OkHttp http://square.github.io/okhttp/
Slide 5
Slide 5 text
Retorofit http://square.github.io/retrofit/
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
コールバック地獄…!
Slide 10
Slide 10 text
ReactiveX(Rx)
Slide 11
Slide 11 text
Observable系(Single,Flowableなど)を返すように書く
Slide 12
Slide 12 text
CallをRxJava2のObservable系に変換するCall Adapterを指定する
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
コールバック地獄からの解放…!
Slide 15
Slide 15 text
完
Slide 16
Slide 16 text
完?
Slide 17
Slide 17 text
できることならこう書きたくないですか?
Slide 18
Slide 18 text
Coroutine
Slide 19
Slide 19 text
OkHttp3+Retrofit2+Coroutine
Slide 20
Slide 20 text
Coroutine ● 「中断・再開が可能な関数」 ○ とりあえずの理解としては「軽量スレッド」的なもの ● Kotlin1.1から実験的に導入された ● Coroutinesをゼロから説明すると本1冊書けるぐらいになるので 本発表では導入とRetrofitでの使い方についてのみ
Slide 21
Slide 21 text
警告 ● Kotlin CoroutineはKotlin1.2の時点ではExperimentalで提供 プロダクションへの導入はまだ控えたほうが安全 ○ 1.3でExperimentalが外れる予定なので勉強をはじめるには良いタイミング ○ 本資料の組み合わせは Kotlin 1.2 + kotlinx.coroutine 0.21.1
Slide 22
Slide 22 text
導入 ● build.gradleに2つライブラリを追加 ○ kotlin.coroutines=enable はいらない
Slide 23
Slide 23 text
Call Adapter ● Jake神のCall Adapter ○ 他にもう1つ見つけたけど今回はこれ ○ CallをCoroutineのDeferredに変換する
Slide 24
Slide 24 text
Deferredを返すように書く
Slide 25
Slide 25 text
CallをCoroutineのDeferredに変換するAdapterを指定
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
レスポンスが返ってくるまで中断 (UIスレッドはブロックされない )
Slide 28
Slide 28 text
Rxはいらない子になるのか? ● No ● RxがPromise代わり使われてきたという歴史 ● コルーチンもPromiseを同期的に書く手法(async/await)を提供しているので勘違い しやすい ● Rxは「リアクティブプログラミングのためのフレームワーク」なのでそもそも比較対象 にならない
Slide 29
Slide 29 text
まとめ ● もうすぐくるかもしれないコルーチン時代に備えて勉強はしておこう ● Jakeのライブラリを使えばOkHttpとRetrofitの組み合わせにおいてコルーチンを簡 単に導入でき使える! ○ もう1つはこれ。どっちを使うかはお好みで … https://github.com/gildor/kotlin-coroutines-retrofit
Slide 30
Slide 30 text
宣伝 DiverseはDroidKaigi2018のPLATINUMスポンサーとして参加します 当日ブースで同人誌を無料配布します