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
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
KMPでもRetrofitっぽくAPI通信がしたい!
Hina Nakahira
July 05, 2024
More Decks by Hina Nakahira
See All by Hina Nakahira
【Otegami】「月経期間のパートナーとのすれ違いを軽減する」
hinalin
0
1.5k
【metimo】「『似合う』を楽しもう。」
hinalin
0
1.4k
【KC3 Shinkan Fes 2024】モバイルアプリ開発 - ひなりん
hinalin
0
120
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
340
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Discover your Explorer Soul
emna__ayadi
2
1.2k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
460
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
sira's awesome portfolio website redesign presentation
elsirapls
0
300
Navigating Weather and Climate Data
rabernat
0
280
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Bash Introduction
62gerente
615
220k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
760
Into the Great Unknown - MozCon
thekraken
41
2.6k
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のコルーチンを ネイティブにサポート
果たして実用に値するのか?
本日のコードスニペットはこちらに置いてあります 📦