Coroutine+Retrofit2+Moshiを使ってAPI叩いてみよう!もちろんKotlinを添えて〜〜2019
どうもこんにちはミニマリストエンジニアbatchです.
最近は,ミニマリストに関することばかりブログに書いていましたが日常的にAndroid開発は続けていて日々進化しております.
最近は自分が作りたいと思うアプリが見つかり,それを実装していたり先日JP HACKSというハッカソンに参加していたりで,色々な知見が溜まってきていました.
batch.hatenablog.com
ようやく,世の中のAndroidエンジニアのためにもOUTPUTできる体制が整ってきたので今回はタイトルどおり,CoroutineとRetrofit2とMoshiを使ってAPI叩くやり方を世の中のAndroidエンジニア(想定としては自分と同じくらいのレベルの最近Android始めたよという人)に共有したいと思います.
やり方については動画に撮ってNanaTechDojoチャンネルに投稿いたしました.
そのリンクも下に貼ります.
作ったものとしては,ボタンを押してGETリクエストを送り,返ってきたJSONを画面に表示するというものです.
叩いてるAPIが何かは,動画を見てからのお楽しみ.
GitHubとかQiitaとかみんなが使ってるAPIでやっても面白くないと思ったのでかなり面白いAPI叩いてます.
僕は今まで外部のAPI叩いて情報を取得するということをやったことはあったのですが,最近流行っているCoroutineを使った実装はやったことがありませんでした.
色々調べながらやっていたのですが,なんだかんだ3週間ほど悩んでいました.
やっぱり,一発でエラー解決したりやり方わかる記事ってそうそうないですよね.情報古かったりしますし.
僕みたいな時間を無駄にしてしまう経験は他のAndroidエンジニアの方にしてほしくないので,一発でわかる記事を目指して今回OUTPUTしました.こういうのやり方知りたかったという方にはぜひ見てもらいたいです.
動画では話し忘れましたが,返ってくるJSONをKotlinでパースするためのdata classを作るとき,Android Studio側で用意されているJSON To Kotlin Classというpluginを使うと一瞬で複雑なJSONの構造もdata classに変換することができます.オヌヌメです.
ちなみに動画で開発しているものはただいまAvgleClientとしてオープンソースで絶賛開発中です.
github.com
何かわからないことや,僕もまだまだ未熟Androidエンジニアなので教えてくださると嬉しいです.
baaaakkrad@gmail.com までお待ちましております.
また次もAndroidに関して溜まっている知見を記事にしたいと思います.
お楽しみに.
参考にしたサイト
- https://avgle.github.io/doc/?php#video-categories
- https://qiita.com/superman9387/items/d311b3720c9ada54ed15
- https://qiita.com/soranakk/items/bc7b5b58f44c3255b34b
- https://okuzawats.com/snakecase-to-camelcase-with-moshi/
- https://qiita.com/kani_presso/items/2893ea248f850333d9d3
- https://github.com/JakeWharton/retrofit2-kotlin-coroutines-adapter
- https://proandroiddev.com/retrofit-met-coroutines-7bbe7e86825a
- https://proandroiddev.com/suspend-what-youre-doing-retrofit-has-now-coroutines-support-c65bd09ba067
- https://android.jlelse.eu/android-networking-in-2019-retrofit-with-kotlins-coroutines-aefe82c4d777