Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ざっくり Jetpack Compose / Cookpad.apk #3
Search
star_zero
July 23, 2019
Programming
2
1.1k
ざっくり Jetpack Compose / Cookpad.apk #3
star_zero
July 23, 2019
Tweet
Share
More Decks by star_zero
See All by star_zero
今からはじめるAndroidアプリ開発 2024 / DevFest 2024
star_zero
0
1.5k
Jetpack Compose の Side-effect を使いこなす / DroidKaigi 2023
star_zero
5
6.6k
Android 14 新機能 / Android 14 Meetup Nagoya
star_zero
1
630
Android 14 と Predictive back gesture / Shibuya.apk #42
star_zero
0
430
Coroutines Test 入門 / Android Test Night #8
star_zero
2
1.2k
What's new in Jetpack / I/O Extended Japan 2022
star_zero
1
680
Kotlin 2021 Recap / DevFest 2021
star_zero
3
1.3k
Kotlin Symbol Processing (KSP) を使ったコード生成 / DroidKaigi 2021
star_zero
2
5.2k
What's new Android 12
star_zero
0
590
Other Decks in Programming
See All in Programming
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
110
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
630
Cap'n Webについて
yusukebe
0
150
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
210
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
260
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
280
マスタデータ問題、マイクロサービスでどう解くか
kts
0
120
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
130
SwiftUIで本格音ゲー実装してみた
hypebeans
0
490
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
370
開発に寄りそう自動テストの実現
goyoki
2
1.4k
TestingOsaka6_Ozono
o3
0
170
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
286
14k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
75
Reality Check: Gamification 10 Years Later
codingconduct
0
1.9k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Accessibility Awareness
sabderemane
0
24
Claude Code のすすめ
schroneko
65
200k
Skip the Path - Find Your Career Trail
mkilby
0
27
Highjacked: Video Game Concept Design
rkendrick25
PRO
0
250
Transcript
ざっくり Jetpack Compose Cookpad.apk #3 2019/07/23
About me •Kenji Abe •メディアプロダクト開発部 •cookpadLive, storeTV •Twitter: @STAR_ZERO
⚠注意⚠ まだAlphaにもなってないので、 今後変更されると思います。 2019/07/20のコードでやっています。
Jetpack Compose
Jetpack Compose •Google I/O 2019で発表 •UIを宣言的に書いてく •Kotlinを使う •React, Litho, Vue.js,
Flutterみたいな感じ
Jetpack Composeで アプリを作ってみた https://github.com/STAR-ZERO/GithubCompose
Hello World
Hello World override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent {
MaterialTheme { Text(text = "Hello World") } } }
レイアウト
レイアウト MaterialTheme { Container( padding = EdgeInsets(16.dp), alignment = Alignment.TopLeft,
width = 240.dp, height = 120.dp ) { Text(text = "Hello World") } }
レイアウト MaterialTheme { Column { Row { Text(text = "123")
Text(text = "456") } Row { Text(text = "abc") Text(text = "def") } } }
レイアウト MaterialTheme { Table { for (i in 0 until
20) { tableRow { for (j in 0 until 2) { Padding(16.dp) { Text(text = "Cell $i - $j") } } } } } }
ステート
ステート Column { val counter = +state { 0 }
Text(text = "count = ${counter.value}") Button( text = "Button", onClick = { counter.value++ } ) }
ステート Column { val flag = +state { false }
if (flag.value) { Text(text = "Jepack") } else { Text(text = "Compose") } Button( text = "Button", onClick = { flag.value = !flag.value } ) }
Commit Scope? (Lifecycle?)
Commit Scope Column { +onActive { } // 最初の1回 +onCommit
{ // 描画されるたび onDispose { } // 破棄されるとき } val flag = +state { false } if (flag.value) { Container { +onCommit { onDispose { } } } } else { // ... } }
まとめ
まとめ •直感的でよさそう ‣ でも、すべてJetpack Composeはツライかも? •ステートやライフサイクルは今までと異なるので注意 ‣ 設計どうしよう
まとめ •ただし、今やるべきではない ‣ Alphaにもなってないので当然 ‣ 正式リリースまではだいぶ時間かかりそうな印象
ありがとうございました