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
JetpackCompose移行、はじめました
Search
chicken Jr.
August 20, 2024
Programming
610
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JetpackCompose移行、はじめました
DroidKaigi.collect { #11@Sapporo }で発表した資料です。
chicken Jr.
August 20, 2024
More Decks by chicken Jr.
See All by chicken Jr.
Android15のためのEdge-to-edge対応
chickenjr_mi
2
1.8k
はじめてのKotlin Multiplatform
chickenjr_mi
0
750
AndroidエンジニアがDroidKaigiに初参加した話
chickenjr_mi
0
270
Spring Boot × Kotlinを試してみた
chickenjr_mi
0
390
Javaユーザに知ってほしいProcessing入門
chickenjr_mi
0
130
ぬいぐるみと対話するために 音声認識APIを試してみた
chickenjr_mi
3
730
Other Decks in Programming
See All in Programming
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
390
My Marp Sample
sinoue0108
0
130
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
250
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
400
FastAPI の並行処理モデルを完全に理解する
hoto17296
8
3.1k
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
5
1.8k
Loosening the Reins: Go Generics Get More Flexible
kuro_kurorrr
0
350
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
270
私のClaude Code活用法 (個人開発編) - PHPerKaigi mini #4(2026/08/24)
panda_program
1
190
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
110
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
130
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
120
Featured
See All Featured
Building Adaptive Systems
keathley
44
3.2k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
350
Music & Morning Musume
bryan
47
7.3k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
390
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Transcript
JetpackCompose移⾏、 はじめました 2024/08/18 DroidKaigi.collect { #11@Sapporo } トリ(chicken05)
トリ(chicken05) ⿃モチーフのものが好きです(焼き⿃も好きです) • note株式会社 / Androidエンジニア • Javaユーザーグループ北海道(JavaDo) スタッフ
会社で JetpackCompose 移⾏、はじめました • 進め⽅はずっと⼿探り • 今⽇はこんな流れで進めています!という⼀例を 話します
JetpackCompose移⾏の流れ
2023年11-12⽉にやったこと 移⾏⽅針の検討 - 各メンバーでシンプルな画⾯を試しに移⾏ - 相互レビュー ↔ 調整の繰り返しでブラッシュアップ - MVP
から公式アーキテクチャ(MVVM etc..)への移⾏
2023年11-12⽉にやったこと カスタムテーマ実装 - プロダクトのシステムカラーとMaterial3が相性悪いので Colorはフルカスタムで - Typography や Shapes は拡張関数を増やす⽅針
2024年1-2⽉にやったこと ⼀覧画⾯の⼀部移⾏ - もう少し複雑な画⾯(アクセス少なめ)で移⾏してみる - Tab + Pager + LazyColumn構成の画⾯など
2024年1-2⽉にやったこと Composableカスタマイズ - Composableを組み合わせてUIを作る - カスタムDialog、リンク‧画像付きテキストなど
2024年3⽉にやったこと 画⾯単位から、コンポーネント単位で作成する ⽅針にシフト - マージコンフリクトを避ける - 無⽤なdiffを増やさない - メンバー参⼊時に共有しやすいように
2024年4-5⽉にやったこと 新規画⾯をJetpackComposeで実装 - ⼀部タブ切り替えの新規FragmentをJetpackComposeで - 完全新規画⾯ではAndroidViewでの実装を試した
2024年4-5⽉にやったこと コンポーネント単位の実装が70%完了 - スプレッドシートで進捗管理 - PRではできる限りコメントを書いてメンバーに知⾒共有
2024年6-7⽉にやったこと NavigationComposeの⼀部導⼊ - 公式の実装を参考に試した(拡張関数を作る) - TypeSafe対応はStable版への反映待ち
2024年6-7⽉にやったこと 画像ライブラリCoilの導⼊ - KotlinファーストでJetpackComposeでも使いやすい - glideからの移⾏は簡単だった
2024年8⽉にやっていること アクセスが多い画⾯の移⾏ - 現⾏の実装だと悩みのある画⾯の改善
2024年8⽉にやっていること パフォーマンス計測の準備 - Macrobenchmarkの導⼊とテスト作成
2024年8⽉にやっていること コンポーネント、もうすぐ90%実装完了 - ⼀覧のRowコンポーネントが数件残っている
ふりかえり:やってよかったこと Good!! コンポーネント単位で実装のほうが楽だった - コンポーネントごとにファイルを分けたので管理が楽 - フルカスタムのカラーシステムなので修正が楽 - UIパーツのComposeMultiplatform化を試しやすかった
ふりかえり:やれたらよかったこと Bad... パフォーマンス計測できていない - 元々⽂化がなさそうなので整備が必要 - 移⾏前後での計測、実装のチューニングなど
皆さんはどんな進め⽅をした or していますか? 移⾏の話に限らず、 JetpackComposeの話ができたら嬉しいです (Androidの話はなんでも嬉しいです)
おわり アプリエンジニア募集してます!