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
Jetpack compose をちょっと触ってみた / about jetpack comp...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
charcoJp
November 30, 2019
Programming
530
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Jetpack compose をちょっと触ってみた / about jetpack compose
charcoJp
November 30, 2019
More Decks by charcoJp
See All by charcoJp
Google Play ストアの アプリ平均評価を改善した話 / Improved average rating of play store
charcojp
1
500
Other Decks in Programming
See All in Programming
カツオ、ご期待ください
suneo3476
0
130
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.7k
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
800
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
130
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
230
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
3.1k
GitHubハンズオン講座 — 実務レベルのチーム開発のフローを身につけよう
junhat6
0
110
iOSDCのペンライトを自動制御したい!
akkeylab
0
320
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
190
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.3k
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
450
Java 27新機能 / Java 27 new features
kishida
2
190
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
950
sira's awesome portfolio website redesign presentation
elsirapls
0
430
Crafting Experiences
bethany
1
360
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
Prompt Engineering for Job Search
mfonobong
0
470
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
430
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
590
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Transcript
+FUQBDLDPNQPTF Λͪΐͬͱ৮ͬͯΈͨ "OESPJEݚڀൃදձ
ࣗݾհ w ຊେथ!DIBSDP@KQ w BLJQQBגࣜձࣾ w "OESPJEΞϓϦ։ൃ w 'MVUUFSΞϓϦ։ൃ ࢝Ί͔ͨΓɻ
None
λʔήοτ w +FUQBDL$PNQPTFΛΒͳ͍ਓ w +FUQBDL$PNQPTFͷ໊લ͚͍ͩͬͯΔਓ
͢͜ͱ w +FUQBDL$PNQPTFͱ w ಛ w +FUQBDL$PNQPTF͕ඞཁʹͳͬͨཧ༝ w ؆୯ͳ+FUQBDL$PNQPTFͷίʔυղઆ w
ιʔεΛݟͯΈΔʢ࣌ؒ༨ͬͨΒʣ w ॴײ
+FUQBDL$PNQPTFͱ w ωΠςΟϒ6*ॻͨ͘ΊͷπʔϧΩοτ w 4%,ະόϯυϧ w ,PUMJOલఏ w એݴత6* w
3FBDU -JUIP 7VFKT 'MVUUFSʹ৮ൃ͞Εͨ w JO%FWFMPQFS1SFWJFX
+FUQBDL$PNQPTFͱ w ωΠςΟϒ6*ॻͨ͘ΊͷπʔϧΩοτ w 4%,ະόϯυϧ w ,PUMJOલఏ w એݴత6* w
3FBDU -JUIP 7VFKT 'MVUUFSʹ৮ൃ͞Εͨ w JO%FWFMPQFS1SFWJFX
+FUQBDL$PNQPTFͱ w ωΠςΟϒ6*ॻͨ͘ΊͷπʔϧΩοτ w 4%,ະόϯυϧ w ,PUMJOલఏ w એݴత6* w
3FBDU -JUIP 7VFKT 'MVUUFSʹ৮ൃ͞Εͨ w JO%FWFMPQFS1SFWJFX
+FUQBDL$PNQPTFͱ w ωΠςΟϒ6*ॻͨ͘ΊͷπʔϧΩοτ w 4%,ະόϯυϧ w ,PUMJOલఏ w એݴత6* w
3FBDU -JUIP 7VFKT 'MVUUFSʹ৮ൃ͞Εͨ w JO%FWFMPQFS1SFWJFX
એݴత6*ʁ
ࡶʹݴ͏ͱ ॻ͍ͯ͋Δ௨Γʹ6*͕දࣔ͞ΕΔ ˞͕ࣝͳ͍ͷͰ৮Ε·ͤΜ
+FUQBDL$PNQPTFͱ w ωΠςΟϒ6*Λߏங͢ΔͨΊͷ࠷৽πʔϧΩοτ w 4%,ະόϯυϧ w ,PUMJOલఏ w એݴత6* w
3FBDU -JUIP 7VFKT 'MVUUFSʹ৮ൃ͞Εͨ w JO%FWFMPQFS1SFWJFX
// ఆٛ fun hoge(callback: () -> Unit) { print("Hoge!") callback()
} fun main() { hoge() { print("ऴΘͬͨΑ") } hoge({ print("ऴΘͬͨΑ") }) } Ҿͷ ͷ֎ʹDBMMCBDLͷ ॲཧΛهड़ Ҿͷதʹهड़ ҾͷؔΛ֎ͩ͠ग़དྷΔ
+FUQBDL$PNQPTFͱ w ωΠςΟϒ6*Λߏங͢ΔͨΊͷ࠷৽πʔϧΩοτ w 4%,ະόϯυϧ w ,PUMJOલఏ w એݴత6* w
3FBDU -JUIP 7VFKT 'MVUUFSʹ৮ൃ͞Εͨ w JO%FWFMPQFS1SFWJFX w "1*͕ະͰมߋ͕༧ఆ͞Ε͍ͯΔͨΊɺ൛Ͱ༻͠ ͳ͍͜ͱ w "OESPJE4UVEJP$BOBSZ
+FUQBDL$PNQPTF͕ඞཁʹͳͬͨཧ༝ w $PNQPOFOU"1*Λ͔Βߏங͍ͨ͠ w ྺ࢙తܦҢͰBOESPJEWJFXԼͷ࣮͕ෳࡶ w ΧελϜ6*ίϯϙʔωϯτ࡞Δͷ͕େม w 'SBHNFOU $VTUPN7JFX$VTUPN7JFX(SPVQ
w ͳͲͳͲɻ w Ҿ༻ݩ w IUUQTEFWFMPQFSBOESPJEDPNKFUQBDLDPNQPTF w IUUQTXXXZPVUVCFDPNXBUDI W7T4UZR-[YP
+FUQBDL$PNQPTF͕ඞཁʹͳͬͨཧ༝ w $PNQPOFOU"1*Λ͔Βߏங͍ͨ͠ w ྺ࢙తܦҢͰBOESPJEWJFXԼͷ࣮͕ෳࡶ w ΧελϜ6*ίϯϙʔωϯτ࡞Δͷ͕େม w 'SBHNFOU $VTUPN7JFX$VTUPN7JFX(SPVQ
w ͳͲͳͲɻ w Ҿ༻ݩ w IUUQTEFWFMPQFSBOESPJEDPNKFUQBDLDPNQPTF w IUUQTXXXZPVUVCFDPNXBUDI W7T4UZR-[YP
؆୯ͳ+FUQBDL$PNQPTFͷίʔυղઆ w "OESPJE4%,ͷ7JFX$PNQPTBCMF ߏՄೳͳ ؔ͠ɺͦͷؔͷπϦʔߏʹΑΓ6*͕ߏங͞ΕΔ w !$PNQPTBCMFBOOPUBUJPO w ؔʹ༩͢ΔߏՄೳͳؔͱͳΔ
w 5FYU #VUUPOͳͲͷΑ͘͏7JFXͱ'"#$BSEͳ Ͳͷ.BUFSJBM%FTJHOͰఆٛ͞Ε͍ͯΔ7JFXݱঢ়Ͱ ͋Δఔ༻ҙ͞Ε͍ͯΔ
5FYU @Composable fun Text( text: String, modifier: Modifier = Modifier.None,
style: TextStyle? = null, paragraphStyle: ParagraphStyle? = null, softWrap: Boolean = DefaultSoftWrap, overflow: TextOverflow = DefaultOverflow, // TODO(siyamed): remove suppress @SuppressLint("AutoBoxing") maxLines: Int? = DefaultMaxLines, selectionColor: Color = DefaultSelectionColor ) { Text( text = AnnotatedString(text), modifier = modifier, style = style, paragraphStyle = paragraphStyle, softWrap = softWrap, overflow = overflow, maxLines = maxLines, selectionColor = selectionColor ) }
5FYUར༻ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?)
{ super.onCreate(savedInstanceState) setContent { Text( text = "Hello World!", style = TextStyle( color = Color.Blue, fontSize = 24.sp ) ) } } }
-JTU7JFX w -JTU7JFX 3FDZDMFS7JFXʹ૬͢Δ$PNQPOFUͳ͍ w ݱঢ়ͰҎԼͷೋͭΛΈ߹Θ࣮ͤͯݱ͢Δ͜ͱʹͳΔ w 7FSUJDBM4DSPMMFS4DSPMM7JFX w $PMVNO-JOFBS-BZPVU
PSJFOUBUJPOWFSUJDBM
-JTUදࣔ @Composable fun MinimumListExampleScreen() { VerticalScroller { Column { (0..20).map
{ ListItem( text = it.toString(), onClick = { } ) Divider() } } } }
ιʔεΛݟͯΈΔ ʢ࣌ؒ༨ͬͨΒʣ
ॴײ w طଘͷ࣮ํ๏ΑΓΔ͔ʹָͰײతɻݸਓతʹTUBCMFʹͳͬͨΒΘͳ ͍ͱ͍͏બͳ͍ w ۪ʹॻ͍͍ͯ͘ͱωετ͕ਂͯ͘Մಡੑ͕Լ͕Γͦ͏ w ϝιουநग़ͯ͠!$PNQPTBCMFΛ͢ΕύʔπԽͰ͖ΔͷͰʹͳΒ ͳ͍ͱࢥ͏ɻͨͩTQBDFΠϯσϯτྲྀੴʹਏͦ͏ w
'MVUUFSͰͷܦݧ શͯΛ,PUMJOͰ͔͚Δ͚ͩͰՁ͕͋Δ w +BWB,PUMJOMBZPVUYNMTFUUJOHTYNMͳͲݴޠʗॻ͖ํ͕ҧ͏ ͨΊ಄ͷΓସ͕͑ൃੜ͢Δ͕ͦΕ͕ͳ͍ w એݴత6* w J04"OESPJEͱʹରԠ͢ΔϥΠϒϥϦΛ༻ҙͨ͠ϞόΠϧΞϓϦ։ൃ ऀͷඞमՊʹͳΔ w ৽͍͠ߟ͑ํͰ͋ΔͨΊɺҰ֮ͭ͑ͯ͠·͑ଞʹࣝΛྲྀ༻Ͱ͖Δ
͜ͷػձʹ+FUQBDL $PNQPTFΛ৮ͬͯΈͯ ͍͔͕Ͱ͠ΐ͏͔ʂ
͓ΘΓ