๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ฑ| Android/๐Ÿš€ | Jetpack17

[Android, Kotlin] Compose์—์„œ glance๋ฅผ ์ด์šฉํ•ด ์œ„์ ฏ ๋งŒ๋“ค๊ธฐ ์ด๋ฒˆ์— ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์€ compose๋กœ ์œ„์ ฏ์„ ๋งŒ๋“œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ glance์ด๋‹ค. glance์˜ ์กด์žฌ(?)๋Š” ์ด์ „์— ๋“ค์œผ๋Ÿฌ ๊ฐ”๋˜ ์ปจํผ๋Ÿฐ์Šค ๊ฐ•์—ฐ์—์„œ glance์— ๊ด€๋ จ๋œ ๊ฐ•์—ฐ์„ ๋“ค๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ๊ทธ๋•Œ๋ถ€ํ„ฐ ๊ธฐํšŒ๊ฐ€ ๋˜๋ฉด ๊ณต๋ถ€ํ•ด ๋ณด์ž ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๊ฒŒ ์ง€๊ธˆ์ด๋‹ค. glance๋Š” compose์—์„œ ์œ„์ ฏ์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ณ  2023๋…„ 8~9์›”์— 1.0.0์„ ์ถœ์‹œํ•œ ๋”ฐ๋ˆ๋”ฐ๋ˆํ•œ ์‹ ์ƒ(?) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ์•„๋ฌดํŠผ ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์— compose glance๋ฅผ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๋ธ”๋กœ๊ทธ์— ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค. ๊ทธ๋Ÿผ ๋ฐ”๋กœ glance ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž. 1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋จผ์ € glance ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ค€๋‹ค. // glance implementation("androidx.glance:gla.. 2023. 10. 6.
[Android, Kotlin] jetpack navigation์—์„œ safe args๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌํ•˜๊ธฐ ์ตœ๊ทผ ํฌ์ŠคํŒ…์—์„œ compose์—์„œ jetpack navigation์„ ์ด์šฉํ•  ๋•Œ, data class type์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ธฐ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ดค์—ˆ๋‹ค. ์ € ๊ธฐ์ˆ ์„ ์ตœ๊ทผ์— xml์—์„œ ํ•œ ๋ฒˆ ๋” ์‚ฌ์šฉํ•  ์ผ์ด ์žˆ์—ˆ๋Š”๋ฐ, ์ด๋ฆ„์ด safe args๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ์•„๋งˆ compose์—์„œ ์‚ฌ์šฉํ•œ ๊ธฐ์ˆ ๋„ safe args๋กœ ๋ถˆ๋ฆฌ๋Š” ๋“ฏํ•œ๋‹ค. https://rkdrkd-history.tistory.com/57 [Android, Kotlin] compose navigation์—์„œ data class tpye ๋„˜๊ธฐ๊ธฐ compose์—์„œ navigation์„ ์‚ฌ์šฉํ•  ๋•Œ, ํ™”๋ฉด ์ „ํ™˜ ์‹œ ๋ณ€ํ™˜๋  ํ™”๋ฉด์— ๊ธฐ์กด์˜ ํ™”๋ฉด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿด ๋•Œ์—๋Š” Navcontroller.navigate()์—๋‹ค๊ฐ€ ๋„˜๊ธธ.. 2023. 9. 26.
[Android, Kotlin] compose custom theme ๋งŒ๋“ค๊ธฐ ์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ์ง€๋‚œ ํฌ์ŠคํŒ…์—์„œ ๋งํ–ˆ๋‹ค์‹œํ”ผ ์ปค์Šคํ…€ ํ…Œ๋งˆ์— ๋Œ€ํ•œ ๊ฐ„๋‹จ ์„ค๋ช…๊ณผ ์ฝ”๋“œ๋ฅผ ์•Œ๋ ค์ฃผ๋„๋ก ํ•˜๊ฒ ๋‹ค. ์ปค์Šคํ…€ ํ…Œ๋งˆ๋ฅผ ์™œ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•œ ์‚ฌ๋žŒ๋“ค์ด ์žˆ์„ ๊ฒƒ ๊ฐ™์•„ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜์ž๋ฉด ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค ๋ณด๋ฉด color๊ฐ€ ๋‹ค์–‘ํ•ด์งˆ ์ˆ˜ ์žˆ๊ธฐ์— ๊ธฐ๋ณธ์ ์œผ๋กœ android studio์—์„œ ์ œ๊ณตํ•˜๋Š” color palette๊ฐ€ ๋ถ€์กฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋””์ž์ด๋„ˆ๊ฐ€ ์ •ํ•œ color๋ช…์„ ๊ทธ๋Œ€๋กœ ์ ์šฉํ•˜๊ธฐ ํž˜๋“ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋Ÿด ๋•Œ์—๋Š” custom theme๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•„์ž๋Š” ์ด๋ฒˆ ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ์— ๋Œ€๋น„ํ•ด ์ปค์Šคํ…€ ํ…Œ๋งˆ๋ฅผ ์ œ์ž‘ํ•ด ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ž ๊ทธ๋Ÿผ ์ด์ œ ์ฝ”๋“œ๋กœ ํ•„์ž๊ฐ€ custom theme๋ฅผ ๋งŒ๋“ค์—ˆ๋˜ ๊ณผ์ •์„ ํ™•์ธํ•ด ๋ณด์ž. ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—! ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” theme ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” en.. 2023. 8. 18.
[Android, Kotlin] compose๋กœ custom checkbox ๋งŒ๋“ค๊ธฐ ์ด๋ฒˆ์— design system์„ ๋งŒ๋“œ๋Š” ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ checkbox๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•  ์ผ์ด ์žˆ์—ˆ๋‹ค. ์ด๋ฒˆ์— ํ•„์ž ๊ฐ™์€ ๊ฒฝ์šฐ ๋ง๊ณ ๋„ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ์—๋„ checkbox๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ผ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ checkbox์˜ ๋ชจ์–‘์œผ๋กœ๋Š” ๋งŒ์กฑ์Šค๋Ÿฝ์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์— ํ•„์ž๋Š” custom checkbox๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์•˜๋‹ค. ํ•„์ž๊ฐ€ checkbox๋ฅผ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์—ˆ๋Š”์ง€ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด ๋ณด์ž. 1. custom checkbox๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ค€๋น„๋ฌผ(?) ์ผ๋‹จ ์ฒ˜์Œ ๋งŒ๋“ค ๋•Œ ํ•„์ž๋Š” custom dialog๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋ฌด์—‡์ด ํ•„์š”ํ•œ์ง€ ์ƒ๊ฐํ•ด ๋ณด์•˜๋‹ค. ๊ทธ๋ž˜์„œ ํ•˜๋‚˜์˜ ๊ฒฐ๋ก ์— ๋„๋‹ฌํ–ˆ๋‹ค! check ๋˜์—ˆ์„ ๋•Œ์˜ checkbox layout, check ๋˜์ง€ ์•Š์•˜์„ ๋•Œ์˜ chec.. 2023. 8. 18.
[Android, Kotlin] compose๋กœ tablayout ๊ตฌํ˜„ํ•˜๊ธฐ ์ด๋ฒˆ์— youtube open api๋ฅผ ๋‹ค๋ฃจ๋ฉด์„œ xml์—์„œ ์‚ฌ์šฉํ–ˆ๋˜ tablayout์„ ์ ์šฉํ•˜๊ณ  ์‹ถ์–ด์„œ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” compose tablayout ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. compose์—์„œ tablayout ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” composable function์€ tabRow์ด๋‹ค. tabrow๋Š” list๋ฅผ ์ด์šฉํ•ด ํ™”๋ฉด(tab) ๊ฐ„์˜ ์ด๋™์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์œผ๋กœ bottom navigation๊ณผ ๋น„์Šทํ•˜๋‹ค. ์ด๋ฒˆ์— tabrow๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋Š”๋ฐ ๊ธฐ์กด์— xml์—์„œ๋Š” screen๋งˆ๋‹ค fragment๋ฅผ ํ•„์ˆ˜์ ์œผ๋กœ ์ƒ์„ฑํ•ด์„œ ์—ฐ๊ฒฐํ•ด์•ผ ํ–ˆ์—ˆ๋Š”๋ฐ, compose์—์„œ๋Š” ๋”ฐ๋กœ screen์„ ๋งŒ๋“ค์ง€ ๋ง์ง€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ •ํ•  ์ˆ˜ ์žˆ์–ด์„œ ํŽธํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ด๋ฒˆ ๊ธฐํšŒ์— ํ•„์ž๋Š” screen์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์€ ta.. 2023. 8. 15.
[Android, Kotlin] compose navigation์—์„œ data class tpye ๋„˜๊ธฐ๊ธฐ compose์—์„œ navigation์„ ์‚ฌ์šฉํ•  ๋•Œ, ํ™”๋ฉด ์ „ํ™˜ ์‹œ ๋ณ€ํ™˜๋  ํ™”๋ฉด์— ๊ธฐ์กด์˜ ํ™”๋ฉด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿด ๋•Œ์—๋Š” Navcontroller.navigate()์—๋‹ค๊ฐ€ ๋„˜๊ธธ ๋ฐ์ดํ„ฐ๋ฅผ param์œผ๋กœ ๋„ฃ์€ ๋‹ค์Œ์— NavHost์—์„œ composable()๋กœ navigate logic์„ ์ž‘์„ฑํ•˜๋ฉด ๋์—ˆ๋‹ค. navigation ์ค‘ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์— ๊ด€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„ ๋“ฏํ•˜๋‹ค. https://rkdrkd-history.tistory.com/51 [Android, Kotlin] Compose UI ์ •๋ฆฌ(7) ์ด์ „ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/50 [Android, Kotlin] Compose UI ์ •๋ฆฌ(6) ์ด๋ฒˆ ํฌ์ŠคํŒ….. 2023. 8. 11.
[Android, Kotlin] compose์—์„œ api ํ†ต์‹ ํ•˜๊ธฐ ์ด์ „ ํฌ์ŠคํŒ…์˜ ์—ฐ์žฅ์„ ์ž…๋‹ˆ๋‹ค. https://rkdrkd-history.tistory.com/55 [Android, Kotlin] Android clean architecture ํ”„๋กœ์ ํŠธ์—์„œ api ์—๋Ÿฌ ํ•ธ๋“ค๋งํ•˜๊ธฐ clean architecture ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ƒํ•˜๊ณ  ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋ฉด api error ์ฒ˜๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•˜๊ณ  ์žˆ๋Š”๊ฐ€? ์˜ˆ์ „์˜ ํ•„์ž๋Š” ๊ทธ๋ƒฅ ๋ฌด์ง€์„ฑ์œผ๋กœ(?) presentation layer์— try catch๋ฅผ ์ด์šฉํ•ด ์ฒ˜๋ฆฌ๋ฅผ ํ–ˆ์—ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ๋ฐฉ๋ฒ•์„ rkdrkd-history.tistory.com ์ด์ „ ํฌ์ŠคํŒ…์—์„œ clean architecture ๊ด€์ ์—์„œ api error handling ๋ฐฉ๋ฒ•์„ ๊ณต๋ถ€ํ•ด ๋ดค๋Š”๋ฐ, ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ง€๋‚œ ๊ธ€์˜ ์—ฐ์žฅ์„ ์ธ clean architecture ๊ด€์ ์—์„œ compo.. 2023. 8. 3.
[Android, Kotlin] Compose UI ์ •๋ฆฌ(7) ์ด์ „ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/50 [Android, Kotlin] Compose UI ์ •๋ฆฌ(6) ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” compose ui๋กœ bottom navigation์„ ๋งŒ๋“œ๋Š” ์˜ˆ์ œ๋ฅผ ์ •๋ฆฌํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค. ์ด์ „ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/46 [Android, Kotlin] Compose UI ๊ธฐ๋ก(5) ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” compose UI ๊ณต๋ถ€ํ–ˆ๋˜ ๋‚ด์šฉ rkdrkd-history.tistory.com ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ํ•„์ž๊ฐ€ compose๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ์•Œ๊ฒŒ ๋œ ์ •๋ณด๋ฅผ ๋„์ ์—ฌ๋ณด๊ฒ ๋‹ค. ์ด๋ฒˆ์— ์•Œ๊ฒŒ ๋œ ์ •๋ณด๋Š” ์ œ๋ชฉ ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ํ™”๋ฉด์ „ํ™˜(navigate) ๋„์ค‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. (compo.. 2023. 4. 16.
[Android, Kotlin] Compose UI ์ •๋ฆฌ(6) ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” compose ui๋กœ bottom navigation์„ ๋งŒ๋“œ๋Š” ์˜ˆ์ œ๋ฅผ ์ •๋ฆฌํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค. ์ด์ „ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/46 [Android, Kotlin] Compose UI ๊ธฐ๋ก(5) ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” compose UI ๊ณต๋ถ€ํ–ˆ๋˜ ๋‚ด์šฉ์„ ๋„์ ์—ฌ๋ณด๊ฒ ๋‹ค. ์ด์ „ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/44 [Android, Kotlin] Compose UI ์ •๋ฆฌ(4) ์ง€๋‚œ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/43 [Android, Kotlin] Compose U rkdrkd-history.tistory.com compose๋กœ bottom navigation์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€.. 2023. 4. 7.
[Android, Kotlin] Android Activity์˜ lifeCycle ์ •๋ฆฌ ์•ˆ๋“œ๋กœ์ด๋“œ๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด activity, fragment์˜ ์ƒํƒœ์— ๋”ฐ๋ฅธ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด life cycle ํ•จ์ˆ˜๋“ค์ธ๋ฐ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ทธ๊ฒƒ๋“ค์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž. life cycle์ด๋ž€? activity, fragment๊ฐ€ ํƒœ์–ด๋‚˜์„œ(์‹œ์ž‘๋˜๋‹ค) ์ฃฝ๋Š”(์ข…๋ฃŒ๋˜๋‹ค) ์ˆœ๊ฐ„๊นŒ์ง€์˜ ์ฃผ๊ธฐ๋ฅผ ๋œปํ•œ๋‹ค. 1. Activity์˜ ์ƒ๋ช…์ฃผ๊ธฐ(lifeCycle) ๋จผ์ € activity์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ํ• ์•„๋ณผ ๊ฑด๋ฐ, activity์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋กœ๋Š” onCreate() onStart() onResume() onPause() onStop() onDestroy() onRestart() ์ด 7๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ, ๊ฐ ํ•จ์ˆ˜๋“ค์€ activity์˜ ์ƒํƒœ์— ๋”ฐ๋ผ ํ˜ธ์ถœ์ด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ๊ผญ ๋‹ค ๊ตฌํ˜„ํ• .. 2023. 3. 17.
[Android, Kotlin] Compose UI ์ •๋ฆฌ(5) ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” compose UI ๊ณต๋ถ€ํ–ˆ๋˜ ๋‚ด์šฉ์„ ๋„์ ์—ฌ๋ณด๊ฒ ๋‹ค. ์ด์ „ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/44 [Android, Kotlin] Compose UI ์ •๋ฆฌ(4) ์ง€๋‚œ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/43 [Android, Kotlin] Compose UI ์ •๋ฆฌ(3) ์ด์ „ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/42 [Android, Kotlin] Compose UI ์ •๋ฆฌ(2) ์ง€๋‚œ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/41 [Android, Kot rkdrkd-history.tistory.com ์ด๋ฒˆ์— ์ •๋ฆฌํ•  ๋‚ด์šฉ์€ compose์—์„œ glide ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ.. 2023. 3. 13.
[Android, Kotlin] Compose UI ์ •๋ฆฌ(4) ์ง€๋‚œ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/43 [Android, Kotlin] Compose UI ์ •๋ฆฌ(3) ์ด์ „ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/42 [Android, Kotlin] Compose UI ์ •๋ฆฌ(2) ์ง€๋‚œ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/41 [Android, Kotlin] Compose UI ์ •๋ฆฌ(1) 1. layout 1. Column ํ•˜์œ„์˜ ๋ทฐ๋“ค์„ ์ˆ˜์ง ์ •๋ ฌํ•ด์ค€๋‹ค(verti rkdrkd-history.tistory.com ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ง€๋‚œ ํฌ์ŠคํŒ…์—์„œ ๋‹ค๋ค˜๋˜ compose recyclerview๋ฅผ ์ด์šฉํ•ด ์‹ค์Šต์„ ํ•ด๋ณด๊ฒ ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค ์ƒ์„ฑ data c.. 2022. 12. 5.
[Android, Kotlin] Compose UI ์ •๋ฆฌ(3) ์ด์ „ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/42 [Android, Kotlin] Compose UI ์ •๋ฆฌ(2) ์ง€๋‚œ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/41 [Android, Kotlin] Compose UI ์ •๋ฆฌ(1) 1. layout 1. Column ํ•˜์œ„์˜ ๋ทฐ๋“ค์„ ์ˆ˜์ง ์ •๋ ฌํ•ด์ค€๋‹ค(vertical). // ํ…์ŠคํŠธ ๋ทฐ @Composable fun Greeting(name: String) { Text(text = name) } // ๋ทฐ๋ฅผ rkdrkd-history.tistory.com ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์Šคํฌ๋กค ๊ฐ€๋Šฅํ•œ ๋ทฐ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ๋‹ค. 3. Scrollable View 1. ScrollView scrollView์— ์‚ฌ์šฉํ•  ์•„์ดํ…œ ์ƒ์„ฑ @.. 2022. 12. 4.
[Android, Kotlin] Compose UI ์ •๋ฆฌ(2) ์ง€๋‚œ ํฌ์ŠคํŒ… https://rkdrkd-history.tistory.com/41 [Android, Kotlin] Compose UI ์ •๋ฆฌ(1) 1. layout 1. Column ํ•˜์œ„์˜ ๋ทฐ๋“ค์„ ์ˆ˜์ง ์ •๋ ฌํ•ด์ค€๋‹ค(vertical). // ํ…์ŠคํŠธ ๋ทฐ @Composable fun Greeting(name: String) { Text(text = name) } // ๋ทฐ๋ฅผ ๊ทธ๋ฆฌ๋Š” ๊ณณ(๋ฏธ๋ฆฌ๋ณด๊ธฐ) @Preview(showBackground = true) @Composable fun DefaultPreview() { rkdrkd-history.tistory.com ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ํ•„์ž๊ฐ€ xml์„ ์‚ฌ์šฉํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ทฐ๋“ค์„ compose๋กœ ์ž‘์„ฑํ•ด๋ณด๊ฒ ๋‹ค. 2. ๋‹ค์–‘ํ•œ ๋ทฐ ์ž‘์„ฑ 1. edit text TextField.. 2022. 12. 3.
[Android, Kotlin] Compose UI ์ •๋ฆฌ(1) ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” jetpack compose 1. layout 1. Column ํ•˜์œ„์˜ ๋ทฐ๋“ค์„ ์ˆ˜์ง ์ •๋ ฌํ•ด์ค€๋‹ค(vertical). // ํ…์ŠคํŠธ ๋ทฐ @Composable fun Greeting(name: String) { Text(text = name) } // ๋ทฐ๋ฅผ ๊ทธ๋ฆฌ๋Š” ๊ณณ(๋ฏธ๋ฆฌ๋ณด๊ธฐ) @Preview(showBackground = true) @Composable fun DefaultPreview() { ComposeUITheme { // ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ํ…Œ๋งˆ Column() { Greeting("Hello") Greeting("Android") } } } 2. Row ํ•˜์œ„์˜ ๋ทฐ๋“ค์„ ์ˆ˜ํ‰ ์ •๋ ฌํ•ด์ค€๋‹ค(horizontal). @Preview(showBackground = true) @Comp.. 2022. 12. 1.
728x90