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
뚝딱뚝딱 20분 UI
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Ji Sungbin
February 23, 2023
Programming
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
뚝딱뚝딱 20분 UI
매시업 세미나 발표 자료 (20분)
Ji Sungbin
February 23, 2023
More Decks by Ji Sungbin
See All by Ji Sungbin
2025 컴포즈 마법사
jisungbin
1
390
Kotlin Compiler Plugin 맛보기
jisungbin
0
180
2024 컴포즈 정원사
jisungbin
0
340
설레발 주도 개발
jisungbin
0
310
Deep Dive into Jetpack Compose State
jisungbin
0
580
[단축본] 컴포즈 내부로 이해하는 최적화 비법
jisungbin
0
170
Jetpack Compose: How it works?
jisungbin
0
380
우리가 기술 블로그를 시작해야 하는 이유
jisungbin
0
400
2023 SBLDC Welcome
jisungbin
0
1.3k
Other Decks in Programming
See All in Programming
dRuby over BLE
makicamel
2
320
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
340
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
170
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
17
6.2k
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
130
Claspは野良GASの夢をみるか
takter00
0
170
GitHub Copilot CLIのいいところ
htkym
2
1.3k
Swiftのレキシカルスコープ管理
kntkymt
0
220
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
440
The NotImplementedError Problem in Ruby
koic
1
650
JavaDoc 再入門
nagise
0
300
AIとRubyの静的型付け
ukin0k0
0
550
Featured
See All Featured
HDC tutorial
michielstock
2
690
Marketing to machines
jonoalderson
1
5.4k
Embracing the Ebb and Flow
colly
88
5.1k
Building AI with AI
inesmontani
PRO
1
1.1k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
290
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
300
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
430
My Coaching Mixtape
mlcsv
0
140
The browser strikes back
jonoalderson
0
1.2k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
530
Transcript
ڣٯڣٯ࠙6* ✨ࢿ࠼
👋ࢿ࠼ 🏠TVOHCJO 🏰TVOHCJOMBOETVOHCJOMBOEEBZ 🐙HJUIVCDPNKJTVOHCJO UI"OESPJE
ӝઓ6*ѐߊޙઁ 6*ѐߊ࢜۽ഄݺ ࢶഋ6*೧ೞӝ ӝୡஹನքӝ ݒएসজ6*ٮۄٜ݅ӝ
݃ޖܻ 📖ݾର
📝दೞӝী $PNQPTF.BMQIBӝળ ٘ࣁࠗࢎ೦ࢤۚ
6*ஹನքܳ݅٘חҗցޖࠂೞ ࢚కҙܻоࣻزۄपࣻೞӝऔ 😵💫ӝઓ6*ѐߊޙઁ
ஹನքࣘࢿ ஹನքݽন݃স ஹನք۽ࢿ ࣘࢿݽন݃সपઁ6*োѾ
None
None
ࢤࢿೞ
tݺ۸ഋ6*u
🔥ܳӓࠂೞӝਤೠ֢۱
🔥ܳӓࠂೞӝਤೠ֢۱
😭ೞ݅ ఋࢎࢲ࠺झ ୶о۽٘ਃ 6*ܻࠁӝࠛоמ ٘߸҃ࢎ೦द߈ࠛоמ IPUSFMPBE
🥳ݽ߄ੌ6*ѐߊഄݺ١
+FUQBDL$PNQPTF (PPHMF*0
4XJGU6* 88%$
ա݅6*ஹನքٜܳ݅ӝਤೠҗࢎۄ ࢚కҙܻоز 6*ܻࠁӝоਗػ ߸҃ࢎ೦द߈ਗػ 🧐ޖજਸө
ஹನք۽ࢿ ࣘࢿ ݽন݃সࠛਃ
None
ࢤࢿ߂ࢎਊࢿૐо
tࢶഋ6*u
ݺ۸ഋ6*⚔️ࢶഋ6* <ࢿ࠼ীࢲࢲоחߨ> ীࢲա৬ࢲࢲҕਊߡझఠօөLNѦযр ࢲҕਊߡझఠօীࢲࣃۡद౭ఠօഐթࢶ೯Ҋࣘߡझܳݒೠ ݒೠथରӂਸࢎਊೞৈҊࣘߡझীथೠ Ҋࣘߡझীदрزউঊইח ࣃۡद౭ఠօীبೞݶݽࣗ۽тࣻחೞ୍ਵ۽Ѧযр j 👉ਗೞחѾҗীب׳ೞӝਤೠݽٚҗਸݺदೠ
ݺ۸ഋ6*⚔️ࢶഋ6* <ࢿ࠼ীࢲࢲоחߨ> ݽࣗ۽р 👉ਗೞחѾҗ݅ݺदೠ
🤩ࢶഋ6*
📦+FUQBDL$PNQPTF-BZPVU 4DBGGPME 3PX $PMVNO
📦4DBGGPME ஹನքܳ.BUFSJBM٣ੋীݏѱߓ ݒएসজীࢶ5PQ#BS $POUFOU #PUUPN#BSࢎਊ
📦3PX ஹನքо۽ߓ
📦$PMVNO ஹನքࣁ۽ߓ
🏷️+FUQBDL$PNQPTF$PNQPOFOU 5FYU *NBHF *DPO
🏷️5FYU ޙद
🏷️*NBHF Ӓܿद
🏷️*DPO ইद *NBHF৬ର౯оӝࠄਵ۽ࢸظ
🎨+FUQBDL$PNQPTF.PEJGJFS GJMM.BY8JEUIGJMM.BY4J[F TJ[FXFJHIUIFJHIU QBEEJOH DMJQ
CBDLHSPVOE CPSEFS TIBEPX
GJMM.BY8JEUIஹನքо۽ܳ୭۽ݏ GJMM.BY4J[Fஹನքࢎૉ о۽ࣁ۽ ܳ୭۽ݏ 🎨GJMM.BY8JEUIGJMM.BY4J[F 3BX $PMVNOGJMM $PMVNOթ݅ఀGJMM
3BX
TJ[Fஹನքࢎૉ о۽ࣁ۽ XFJHIUஹನքࢎૉ о۽ࣁ۽ ࠺ਯ IFJHIUஹನքࣁ۽ӡ
🎨TJ[FXFJHIUIFJHIU EQ EQYEQ
QBEEJOHஹನք࢚ೞઝಁ٬୶о DMJQஹನքݽন CBDLHSPVOEஹನքߓ҃࢝ CPSEFSஹನքపفܻद TIBEPXஹನքӒܿद
🎨FUDj DMJQ CBDLHSPVOE CPSEFS TIBEPX QBEEJOH
⚒️+FUQBDL$PNQPTF"MJHO 4QBDF#FUXFFO TQBDFE#Z $FOUFS
4QBDF#FUXFFOஹನքܳۨইਓনীߓ TQBDFE#ZஹನքߓрѺ $FOUFSஹನքܳۨইਓबীߓ ⚒️+FUQBDL$PNQPTF"MJHO $FOUFS 4QBDF#FUXFFO TQBDFE#Z
Scaffold( topBar = { Row( modifier = Modifier .fillMaxWidth() .padding(top
= 30.dp, horizontal = 30.dp), horizontalArrangement = Arrangement.SpaceBetween ) { Text( text = "ੌ ળ࠺ ীਃ.\nઑӘ݅ ӝ۰ ࣁਃ!", fontSize = 20.sp, fontWeight = FontWeight.Bold ) Text( modifier = Modifier .clip(shape = RoundedCornerShape(size = 8.dp)) .border(width = 1.dp, color = Color.LightGray) .background(color = Color.White) .padding(all = 8.dp), text = "ੌ ࢜۽Ҋஜ", fontSize = 13.sp ) } }, content = {
Scaffold( topBar = { Row( modifier = Modifier .fillMaxWidth() .padding(top
= 30.dp, horizontal = 30.dp), horizontalArrangement = Arrangement.SpaceBetween ) { Text( text = "ੌ ળ࠺ ীਃ.\nઑӘ݅ ӝ۰ ࣁਃ!", fontSize = 20.sp, fontWeight = FontWeight.Bold ) Text( modifier = Modifier .clip(shape = RoundedCornerShape(size = 8.dp)) .border(width = 1.dp, color = Color.LightGray) .background(color = Color.White) .padding(all = 8.dp), text = "ੌ ࢜۽Ҋஜ", fontSize = 13.sp ) } }, content = {
Scaffold( topBar = { Row( modifier = Modifier .fillMaxWidth() .padding(top
= 30.dp, horizontal = 30.dp), horizontalArrangement = Arrangement.SpaceBetween ) { Text( text = "ੌ ળ࠺ ীਃ.\nઑӘ݅ ӝ۰ ࣁਃ!", fontSize = 20.sp, fontWeight = FontWeight.Bold ) Text( modifier = Modifier .clip(shape = RoundedCornerShape(size = 8.dp)) .border(width = 1.dp, color = Color.LightGray) .background(color = Color.White) .padding(all = 8.dp), text = "ੌ ࢜۽Ҋஜ", fontSize = 13.sp ) } }, content = {
Scaffold( topBar = { Row( modifier = Modifier .fillMaxWidth() .padding(top
= 30.dp, horizontal = 30.dp), horizontalArrangement = Arrangement.SpaceBetween ) { Text( text = "ੌ ળ࠺ ীਃ.\nઑӘ݅ ӝ۰ ࣁਃ!", fontSize = 20.sp, fontWeight = FontWeight.Bold ) Text( modifier = Modifier .clip(shape = RoundedCornerShape(size = 8.dp)) .border(width = 1.dp, color = Color.LightGray) .background(color = Color.White) .padding(all = 8.dp), text = "ੌ ࢜۽Ҋஜ", fontSize = 13.sp ) } }, content = {
content = { Column( modifier = Modifier .padding(all = 30.dp)
.fillMaxSize() .clip(shape = RoundedCornerShape(size = 20.dp)) .border(width = 0.5.dp, color = Color.LightGray) .background(color = Color.White) .padding(all = 20.dp), verticalArrangement = Arrangement.spacedBy(space = 16.dp) ) { Text( modifier = Modifier .clip(shape = RoundedCornerShape(size = 30.dp)) .background(color = Color.MashupGray) .padding(vertical = 4.dp, horizontal = 8.dp), text = "D-?", color = Color.DarkGray, fontSize = 13.sp ) Text( text = "١۾ػ ੌ হযਃ", color = Color.Gray, fontSize = 20.sp, fontWeight = FontWeight.Bold )
content = { Column( modifier = Modifier .padding(all = 30.dp)
.fillMaxSize() .clip(shape = RoundedCornerShape(size = 20.dp)) .border(width = 0.5.dp, color = Color.LightGray) .background(color = Color.White) .padding(all = 20.dp), verticalArrangement = Arrangement.spacedBy(space = 16.dp) ) { Text( modifier = Modifier .clip(shape = RoundedCornerShape(size = 30.dp)) .background(color = Color.MashupGray) .padding(vertical = 4.dp, horizontal = 8.dp), text = "D-?", color = Color.DarkGray, fontSize = 13.sp ) Text( text = "١۾ػ ੌ হযਃ", color = Color.Gray, fontSize = 20.sp, fontWeight = FontWeight.Bold )
content = { Column( modifier = Modifier .padding(all = 30.dp)
.fillMaxSize() .clip(shape = RoundedCornerShape(size = 20.dp)) .border(width = 0.5.dp, color = Color.LightGray) .background(color = Color.White) .padding(all = 20.dp), verticalArrangement = Arrangement.spacedBy(space = 16.dp) ) { Text( modifier = Modifier .clip(shape = RoundedCornerShape(size = 30.dp)) .background(color = Color.MashupGray) .padding(vertical = 4.dp, horizontal = 8.dp), text = "D-?", color = Color.DarkGray, fontSize = 13.sp ) Text( text = "١۾ػ ੌ হযਃ", color = Color.Gray, fontSize = 20.sp, fontWeight = FontWeight.Bold )
content = { Column( modifier = Modifier .padding(all = 30.dp)
.fillMaxSize() .clip(shape = RoundedCornerShape(size = 20.dp)) .border(width = 0.5.dp, color = Color.LightGray) .background(color = Color.White) .padding(all = 20.dp), verticalArrangement = Arrangement.spacedBy(space = 16.dp) ) { Text( modifier = Modifier .clip(shape = RoundedCornerShape(size = 30.dp)) .background(color = Color.MashupGray) .padding(vertical = 4.dp, horizontal = 8.dp), text = "D-?", color = Color.DarkGray, fontSize = 13.sp ) Text( text = "١۾ػ ੌ হযਃ", color = Color.Gray, fontSize = 20.sp, fontWeight = FontWeight.Bold )
fontWeight = FontWeight.Bold ) Column( modifier = Modifier .fillMaxSize() .clip(shape
= RoundedCornerShape(size = 20.dp)) .background(color = Color.MashupGray), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { Image( modifier = Modifier.size(size = 150.dp), image = Image.MashupSleeping ) Text( modifier = Modifier.padding(top = 4.dp), text = "ৌब ੌਸ ળ࠺ೞҊ যਃ\nઑӘ݅ ӝ۰ ࣁਃ!", color = Color.Gray, fontSize = 15.sp, textAlign = TextAlign.Center ) } } }, bottomBar = { Row(
fontWeight = FontWeight.Bold ) Column( modifier = Modifier .fillMaxSize() .clip(shape
= RoundedCornerShape(size = 20.dp)) .background(color = Color.MashupGray), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { Image( modifier = Modifier.size(size = 150.dp), image = Image.MashupSleeping ) Text( modifier = Modifier.padding(top = 4.dp), text = "ৌब ੌਸ ળ࠺ೞҊ যਃ\nઑӘ݅ ӝ۰ ࣁਃ!", color = Color.Gray, fontSize = 15.sp, textAlign = TextAlign.Center ) } } }, bottomBar = { Row(
fontWeight = FontWeight.Bold ) Column( modifier = Modifier .fillMaxSize() .clip(shape
= RoundedCornerShape(size = 20.dp)) .background(color = Color.MashupGray), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { Image( modifier = Modifier.size(size = 150.dp), image = Image.MashupSleeping ) Text( modifier = Modifier.padding(top = 4.dp), text = "ৌब ੌਸ ળ࠺ೞҊ যਃ\nઑӘ݅ ӝ۰ ࣁਃ!", color = Color.Gray, fontSize = 15.sp, textAlign = TextAlign.Center ) } } }, bottomBar = { Row(
fontWeight = FontWeight.Bold ) Column( modifier = Modifier .fillMaxSize() .clip(shape
= RoundedCornerShape(size = 20.dp)) .background(color = Color.MashupGray), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { Image( modifier = Modifier.size(size = 150.dp), image = Image.MashupSleeping ) Text( modifier = Modifier.padding(top = 4.dp), text = "ৌब ੌਸ ળ࠺ೞҊ যਃ\nઑӘ݅ ӝ۰ ࣁਃ!", color = Color.Gray, fontSize = 15.sp, textAlign = TextAlign.Center ) } } }, bottomBar = { Row(
}, bottomBar = { Row( modifier = Modifier .fillMaxWidth() .height(height
= 60.dp) .shadow(elevation = 10.dp) .background(color = Color.White), verticalAlignment = Alignment.CenterVertically ) { Icon( modifier = Modifier.weight(weight = 1f), icon = Icon.Tv ) Icon( modifier = Modifier.weight(weight = 1f), icon = Icon.QrCodeScanner ) Icon( modifier = Modifier.weight(weight = 1f), icon = Icon.EmojiPeople ) } } )
}, bottomBar = { Row( modifier = Modifier .fillMaxWidth() .height(height
= 60.dp) .shadow(elevation = 10.dp) .background(color = Color.White), verticalAlignment = Alignment.CenterVertically ) { Icon( modifier = Modifier.weight(weight = 1f), icon = Icon.Tv ) Icon( modifier = Modifier.weight(weight = 1f), icon = Icon.QrCodeScanner ) Icon( modifier = Modifier.weight(weight = 1f), icon = Icon.EmojiPeople ) } } )
}, bottomBar = { Row( modifier = Modifier .fillMaxWidth() .height(height
= 60.dp) .shadow(elevation = 10.dp) .background(color = Color.White), verticalAlignment = Alignment.CenterVertically ) { Icon( modifier = Modifier.weight(weight = 1f), icon = Icon.Tv ) Icon( modifier = Modifier.weight(weight = 1f), icon = Icon.QrCodeScanner ) Icon( modifier = Modifier.weight(weight = 1f), icon = Icon.EmojiPeople ) } } )
🤓৮ࢿ ٘חױ
🥺$PNQPTFী൜оࢤ҂ݶ ߊীաৡ٘ܳप೯೧ࠁҊर +FUQBDL$PNQPTF۽ա݅জਸٜ݅যࠁҊर +FUQBDL$PNQPTFনೠӝמਸ؊ঌইࠁҊर +FUQBDL$PNQPTFղࠗزҾӘೞ 👉%JTDPSEࢿ࠼
хࢎפ ۨઃప࣌IUUQTTVOHCJONBTIVQীࢲदࠅࣻणפ ۨઃప࣌ীחషझীࢲઁҕೠషझಕझоਊغযणפ QnA🙋