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とApolloを利用したマルチプラットフォーム開発
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
HAMADA
May 29, 2024
110
0
Share
KMPとApolloを利用したマルチプラットフォーム開発
HAMADA
May 29, 2024
More Decks by HAMADA
See All by HAMADA
Unity as a Library で 3Dモデルを表示してみた話
hamashle
0
46
AndroidのWidget作ってみた
hamashle
0
31
Hiltのありがたさを知る
hamashle
0
19
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Believing is Seeing
oripsolob
1
110
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.3k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
310
Measuring & Analyzing Core Web Vitals
bluesmoon
9
810
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
190
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Transcript
KMPとApolloを利用した マルチプラットフォーム開発 2024年5月11日Zli大LT HAMADA
自己紹介 名前 濵田翔真 学年 会津大学 4回生 (22歳) -> 院進予定 出身 京都 ハンドルネーム HAMADA 趣味 龍角散
ソフトテニス 阪神タイガース 音楽(合唱,カ ラオケ,ウクレレ, オカリナ等々) 技術 Android バックエンド etc 情報発信 Twitter AHMOS_HMD はてなブログ hahahamada.hatenablog.com 特技 人の名前を覚えること
agenda KMPについて 経緯 アプリのMVP Apolloについて UI実装
経緯
経緯 最終的に、WEB, iOS, Androidでアプリケーションを作成 KMPとGraphQLについて学びたかった 所属しているサークルのギャラリーアプリを作ることに 以上のような理由から、今回の仕様でアプリ開発をすることに
None
アプリのMVP 制作作品の画像とその他情報が記載されたページの作成 ページをリスト表示する 画像表示 作品の情報を表示する 登録画面(サークルメンバーのみが使える)の作成
使用技術
使用技術 Kotlin Jetpack Compose Kotlin MultiPlatform Apollo GraphQL Coil Go
graphql-go DynamoDB Swift SwiftUI
さまざまなプラットフォーム向けのアプリケーションを作成し、 ネイティブプログラミングのメリットを維持しながらプラットフ ォーム間でコードを再利用可能することのできる技術 Kotlin Mutiplatform iOS、Android、デスクトップ、ウェブなどのプラットフォー ムに対応しています
KMPのプロジェクト 今回作成したプロジェクト以下には Shared TegeiGallery-Android TegeiGallery-iOS 大きく三つのディレクトリがある
KMPのプロジェクト 今回作成したプロジェクト以下には Shared ← iOSとAndroidで共有するコード TegeiGallery-Android TegeiGallery-iOS 大きく三つのディレクトリがある
KMPのプロジェクト 今回作成したプロジェクト以下には Shared TegeiGallery-Android ← Androidで利用するコード UI TegeiGallery-iOS 大きく三つのディレクトリがある
KMPのプロジェクト 今回作成したプロジェクト以下には Shared TegeiGallery-Android TegeiGallery-iOS ← iOSで利用するコード UI 大きく三つのディレクトリがある
Apollo Android GraphQLクエリからKotlin、Javaのモデルを生成するGraphQL クライアント
を追加する Apolloを使う sharedのbuild.gradle.ktsに以下を追加 pluginsに, soucesets commonMain.dependenciesに,
shared/commonMain/graphql に schema.graphqlsをおく Apolloを使う
schemaの定義をもとにqueryを作成 buildすると shared/build/generated/source/apollo/ commonMain/service/AllItemQuery が生成されます Apolloを使う
Repositoryでこんな感じで定義する Flowで実装しているので、Swift側では ObservableObjectにする必要がある Apolloを使う
UI実装
昨日、モックのUIが渡されました
AndroidのUIを実装してみた
iOSは...?
iOS経験が無さすぎて 間に合いませんでした....
共通化する部分と共通化しない部分の解釈が難しかった ObservableObjectへの変更が,できていないのでそこの部分 を実装する。 XCodeと少し仲良くなれた GraphQLへの理解が深まった KMPと言いつつ、commonMainが抽象化されていないので 改善する 展望と感想
HAMADAの 次回作にご期待ください
ご清聴ありがとう ありがとうございました
今回のリポジトリ