Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
KMPでもRetrofitっぽくAPI通信がしたい!
Search
Hina Nakahira
July 05, 2024
0
150
KMPでもRetrofitっぽくAPI通信がしたい!
Hina Nakahira
July 05, 2024
Tweet
Share
More Decks by Hina Nakahira
See All by Hina Nakahira
【Otegami】「月経期間のパートナーとのすれ違いを軽減する」
hinalin
0
1.4k
【metimo】「『似合う』を楽しもう。」
hinalin
0
1.3k
【KC3 Shinkan Fes 2024】モバイルアプリ開発 - ひなりん
hinalin
0
59
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
Being A Developer After 40
akosma
87
590k
Optimizing for Happiness
mojombo
376
70k
Scaling GitHub
holman
459
140k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Typedesign – Prime Four
hannesfritz
40
2.4k
Documentation Writing (for coders)
carmenintech
67
4.5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Transcript
KMPでもRetrofitっぽく API通信がしたい! ひなりん (@soleil_colza_)
ひなりん (@soleil_colza_) STORES株式会社ブランドアプリグループ Androidエンジニアインターン 🐣 趣味は車とTrending Repositories の徘徊 学生・社会人混合 Androidエンジニアコミュニティ
NID.kt 運営
もくじ KMPのうまみ、つらみ 1 KMPにおけるAPI通信 2 Ktorfitの紹介 3
None
ドメイン層まで、あるいはView未満全ての共通化 → ネイティブの使用感を残しつつ、開発を高速化できる KMPのうまみ サーバーとフロントエンドでコードを共有できる → OSS としても, 単一のコードベースで 様々な環境に対応できるのは非常に魅力的。
KMPのつらみ Objective-Cで出てくる(今年Swift対応するよ!) 💊 touchlab/SKIE ドキュメントがまだまだ未熟 iOSエンジニアを宥める必要がある
ライブラリが....!ないっっっっ....!!!! KMPのつらみ あったと思ったら特定の実行環境は対応していなかったり androidx Retrofit これはチャンス。 黎明期の今、自作ライブラリで次のスタンダードを作ろう。
KMP対応ライブラリを まとめたリポジトリがあります 🙆♀️
AAkira/Kotlin-Multiplatform-Libraries
AAkira/Kotlin-Multiplatform-Libraries
Retrofit はKMP をサポートしていない。 Ktorの出番!!
Ktor/Retrofitの記法のちがい 1. 初期化と設定 HttpClientを直接初期化し、 必要なプラグイン (e.g. ContentNegotiation)を インストールして設定。
Ktor/Retrofitの記法のちがい 1. 初期化と設定 Retrofit.Builderを使用してインスタンスを作成し、 ベースURLとコンバーター(e.g. GsonConverterFactory)を設定。
2. APIインターフェースの定義 Ktor/Retrofitの記法のちがい APIインターフェースの定義は必要なく、直接HTTPリクエストを作成
2. APIインターフェースの定義 Ktor/Retrofitの記法のちがい インターフェースを使用してリクエストメソッドを定義
3. リクエストの実行 Ktor/Retrofitの記法のちがい コルーチンを使用して非同期リクエストを実行(いいね! 🙆♀️)
3. リクエストの実行 Ktor/Retrofitの記法のちがい enqueueメソッドを使用して非同期リクエストを実行
Ktorfitの何が嬉しい?
Retrofit風のInterface定義 1. Ktor/Retrofitのいいとこどりができる アノテーションベースのインターフェースを使用してAPIを定義できる。 Retrofitに慣れた開発者にとっては直感的で嬉しい。
非同期処理がより簡潔に記述できる。 Ktorのエコシステムに統合されているため、 Retrofitらしさを出しながら Ktorのうまみを活かしている。 2. Kotlinのコルーチンを ネイティブにサポート
果たして実用に値するのか?
本日のコードスニペットはこちらに置いてあります 📦