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 をちょっと触ってみた / about jetpack comp...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
charcoJp
November 30, 2019
Programming
520
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
490
Other Decks in Programming
See All in Programming
The NotImplementedError Problem in Ruby
koic
1
710
CSC307 Lecture 17
javiergs
PRO
0
320
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
230
Swiftのレキシカルスコープ管理
kntkymt
0
220
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
530
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.6k
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2k
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
750
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.4k
New "Type" system on PicoRuby
pocke
1
830
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
240
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
150
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
250
Embracing the Ebb and Flow
colly
88
5.1k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
200
Thoughts on Productivity
jonyablonski
76
5.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Designing for humans not robots
tammielis
254
26k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
140
RailsConf 2023
tenderlove
30
1.5k
Design in an AI World
tapps
1
240
The untapped power of vector embeddings
frankvandijk
2
1.8k
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Λ৮ͬͯΈͯ ͍͔͕Ͱ͠ΐ͏͔ʂ
͓ΘΓ