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
Jetpack Compose
Search
HiroYUKI Seto
May 17, 2019
Programming
2
640
Jetpack Compose
19/05/17
Shibuya.apk #34 - Report from Google I/O 2019
HiroYUKI Seto
May 17, 2019
Tweet
Share
More Decks by HiroYUKI Seto
See All by HiroYUKI Seto
Androidアプリの 安全なリファクタリングを行うパターン集
seto_hi
2
4.8k
UI TestやVisual Regression Testを コスパ良くやる
seto_hi
3
1.7k
事業支援というお仕事
seto_hi
0
390
MDCの内部実装から学ぶ 表現力の高いViewの作り方
seto_hi
5
1.6k
CoordinatorLayoutのBehaviorを使い倒す
seto_hi
1
300
UI改善に繋がるエンジニアの立ち回り
seto_hi
2
4.4k
MDCのButtonのCorner Family
seto_hi
1
140
MDCのBottomAppBarのShadowの実現方法
seto_hi
0
860
Kyashは なぜ使いやすいのか
seto_hi
1
2.3k
Other Decks in Programming
See All in Programming
【KMC春合宿2024】実装視点で見るNeural Radiance Fields
runningoutrate
0
150
フロントエンドパフォーマンス 入門
shouta2
7
1.5k
PHP で読む楽しいコアダンプ
sji
0
240
[スクリプト] Swiftの型推論を学ぼう
omochi
0
110
両面どころかインフラもTSでできるよ ~ 全方位TypeScriptによるプロダクト開発 ~
myfinder
8
2.2k
Kotlinを用いたDSL的な設計手法と使用上の注意
kohii00
3
530
15分間でふんわり理解するDocker @ Matsuriba MAX
ukwhatn
PRO
1
340
Deno に Web 標準 API を実装する / Implementing Web Standard API to Deno
petamoriken
0
350
自動テスト実行結果の目的を整理する / Organizing objectives of automated test results
twada
PRO
10
2.1k
生成 AI の中身を覗いてみよう〜基礎から医療現場での応用まで〜
soh9834
2
760
品質とスピードを両立: TypeScriptの柔軟な型システムをバックエンドで活用する
kosui
4
850
WebComponentsで フレームワークを1ページに共存させる
webuilder240
0
150
Featured
See All Featured
Bash Introduction
62gerente
604
210k
What's in a price? How to price your products and services
michaelherold
236
11k
Designing for Performance
lara
601
67k
Clear Off the Table
cherdarchuk
82
310k
Optimizing for Happiness
mojombo
369
69k
Testing 201, or: Great Expectations
jmmastey
27
6.3k
Product Roadmaps are Hard
iamctodd
43
9.6k
Navigating Team Friction
lara
177
13k
Building Better People: How to give real-time feedback that sticks.
wjessup
350
18k
Build The Right Thing And Hit Your Dates
maggiecrowley
23
1.9k
Art, The Web, and Tiny UX
lynnandtonic
288
19k
Git: the NoSQL Database
bkeepers
PRO
421
63k
Transcript
+FUQBDL$PNQPTF גࣜձࣾϊϋφɹށ༏೭
ށ༏೭!TFUP@IJ גࣜձࣾϊϋφ ΞϓϦΤϯδχΞ
None
*FOKPZFE*0
8IBU`T+FUQBDL$PNQPTF
⚠&YQFSJNFOUBM"1*⚠ OPUSFBEZGPSQSPEVDUJPOVTF
8IBU`T+FUQBDL$PNQPTF w +FUQBDLϥΠϒϥϦͷͻͱͭͱͯ͠ఏڙ͞ΕΔ w એݴత6*ߏங w "OLP'MVUUFSͱࣅͨهड़ w YNMͰͷMBZPVUͷସ w
طଘͷ7JFXͷସ w ޓੑΛ࣋ͨͤΔ͜ͱ͕Ͱ͖Δ
8IZ+FUQBDL$PNQPTF
6OCVOEMFUIF6*5PPMLJU w $IFU)BBTFTBZTl"1*EFTJHOJTCVJMEJOHGVUVSFSFHSFUz w 7JFXKBWBສߦऑ w #VUUPOFYUFOET5FYU7JFX w ճస͠ͳ͍4QJOOFS w
7JFXΛ+FUQBDLԽ͍ͨ͠ w 04ΞοϓσʔτΛͭ͜ͱͳ͘όάΛमਖ਼Ͱ͖Δ
+FUQBDL$PNQPTFݪଇ w ,PUMJOͰ؆ܿʴࣗવʹॻ͚Δ w એݴత w ޓੑ͕͋Δ w ඒ͍͠ΞϓϦΛ࡞ΕΔ w
։ൃΛՃ͢Δ IUUQTEFWFMPQFSBOESPJEDPNKFUQBDLDPNQPTFDPSF@QSJODJQMFT
)PXUPVTF
)PXUPVTF w IUUQTBOESPJEHPPHMFTPVSDFDPNQMBUGPSNGSBNFXPSLT TVQQPSU BOESPJEYNBTUFSEFWVJ3&"%.&NEHFUUJOH TUBSUFE w ϥΠϒϥϦԽ͞Ε͍ͯͳ͍ w BOESPJE9ͷ։ൃڥߏங͕ඞཁ
)PXUPVTF override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent {
Text("hello") } } ˞setContent"DUJWJUZͷ֦ுؔ
)PXUPVTF @Composable fun Greeting(name: String) { Text(name) }
)PXUPVTF @Composable @GenerateView fun Greeting(name: String) { Text(name) }
!(FOFSBUF7JFX w YNMͰఆٛͰ͖Δ • <GreetingView /> w findViewById(R.id.greeting)
)PXUPVTF @Composable fun RallyBody() { Padding(padding = 16.dp) { Column
{ // TODO: scrolling container RallyAlertCard() HeightSpacer(height = 10.dp) RallyAccountsCard() HeightSpacer(height = 10.dp) RallyBillsCard() } } }
·ͱΊ
·ͱΊ w ⚠&YQFSJNFOUBM⚠ w એݴత6*ߏங w طଘͷ7JFXΛஔ͖͑Δͷ w BOOPUBUJPOͰޓੑ͕อͯΔ w
ઈࢍҙݟืूத
ࢀߟϦϯΫ w +FUQBDL$PNQPTF IUUQTEFWFMPQFSBOESPJEDPNKFUQBDLDPNQPTF w +FUQBDL$PNQPTF3&"%.&NE IUUQTBOESPJEHPPHMFTPVSDFDPNQMBUGPSNGSBNFXPSLT TVQQPSU BOESPJEYNBTUFSEFWVJ3&"%.&NE w
%FDMBSBUJWF6*1BUUFSOT (PPHMF*0` IUUQTZPVUVCF7T4UZR-[YP
None