Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
JetpackCompose移行、はじめました
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
chicken Jr.
August 20, 2024
Programming
620
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.9k
はじめてのKotlin Multiplatform
chickenjr_mi
0
770
AndroidエンジニアがDroidKaigiに初参加した話
chickenjr_mi
0
270
Spring Boot × Kotlinを試してみた
chickenjr_mi
0
390
Javaユーザに知ってほしいProcessing入門
chickenjr_mi
0
130
ぬいぐるみと対話するために 音声認識APIを試してみた
chickenjr_mi
3
750
Other Decks in Programming
See All in Programming
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.1k
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
290
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.4k
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
430
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
130
Rでドレミ/Do-Re-Mi_with_R
florets1
0
110
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
260
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
330
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
190
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
5.3k
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
530
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
4
520
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Claude Code のすすめ
schroneko
67
230k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8k
Building AI with AI
inesmontani
PRO
1
1.3k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
300
KATA
mclloyd
PRO
35
16k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Become a Pro
speakerdeck
PRO
31
6.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の話はなんでも嬉しいです)
おわり アプリエンジニア募集してます!