๐ฑ| Android/๐ | Jetpack18 [Android, Kotlin] ์๋ก์์ง Navigation Compose์ safe args ์ ์ฉํ๊ธฐ ์๋ก ์ด๋ฒ์ compose ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ํ๋ฉด ์ด๋ ์ ์ธ์๋ฅผ ์ ๋ฌํ๋ safe args๋ฅผ ๋ค์ ์ฌ์ฉํ๊ฒ ๋์๋๋ฐ, safe args๊ฐ ์ด๋ฒ compose ์ต์ ์ ๋ฐ์ดํธ๋ก ๋ ํธ๋ฆฌํ๊ฒ ๊ตฌํํ ์ ์๋๋ก ๋ณ๊ฒฝ๋ ๊ฒ ๊ฐ์์ ์ด๋ฒ ๊ธฐํ์ ์ด๋ป๊ฒ ๊ตฌํํ๋์ง ์ ๋ฆฌํด ๋ณด๋ ค ํ๋ค. Navigation 2.8.0์ safe args ๋ณ๊ฒฝ ์ฌํญ์ด๋ฒ์ Navigation์ ๋ฒ์ ์ด 2.8.0-alpha08 ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋๋๋ฉด์ kotlin์ Serializable์ ํตํด ์ธ์๋ฅผ ๋๊ธธ ์ ์๊ฒ ๋ณ๊ฒฝ๋์๋ค. Serializable์ ํตํด data class๋ก ํ๋ฉด์ ์ ์ํ๊ณ data class์ ํ๋๋ก ๊ฐ์ ์ ๋ฌํ ์ ์๋ค.๊ทธ๋ฌ๋ฉด ๋ฐ๋ก ์ด๋ป๊ฒ ๊ตฌํํ๋์ง ์์๋ณด์. Serializable, Navigation ์ถ๊ฐlib.. 2025. 1. 23. [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. [Android Kotlin] navigation component์ bottom navigation ์ฐ๊ฒฐ ํ์๋, bottom navigation์ด ์๋๋์ง ์์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ค๋์ ๊ธฐ๋ก์ navigation component๋ฅผ ์ฌ์ฉํ๋ฉด์ bottom navigaion์ ์ฌ์ฉํ ๋, bottom navigaion์ด์๋๋์ง ์์๋ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์๋ค. ๋ฌธ์ ์ํฉ ํด๋ฆญ๋ง ๋๊ณ ํ๋ฉด์ด ๋ฐ๋์ง ์์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ menu xml์ ์ด๋ฆ์ ์ ํ์ธํด์ผ ํ๋ค. ๋ฌธ์ ์ฝ๋ naviagtion ํ๋ฉด๊ณผ ๋ฌธ์ ์ฝ๋์ ์์ด๋๊ฐ ๋ค๋ฅด๋ค๋ ๊ฒ์ ์ ์ ์๋ค. freeBoardFragment - FreeBoardFragment menu ์ฝ๋์ ๋๋ฌธ์๊ฐ ๋ฌ๋ผ์ bottom navigation์ด ์๋๋์ง ์์๋ค.์ด๊ฒ์ ๊ณ ์ณ์ ์์ ํ ํด๊ฒฐํ๋ค. 2022. 4. 22. [Android] Room ์ฌ์ฉ๋ฒ๊ณผ RecyclerView๋ฅผ ํ์ฉํ ์์ ์ด๋ฒ ์์ ๋ ์๋๋ก์ด๋์ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ room์ ํ์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ๊ทธ๊ฒ์ recyclerview์ ๋ณด์ด๊ฒ ํ๋ ์์ ๋ฅผ ํด๋ณด๊ฒ ๋ค. room ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋จผ์ gradle์ ์ถ๊ฐ๋ฅผ ํด์ค์ผ ํ๋ค. build.gradle(app) plugins { id 'kotlin-kapt' ... } android { ... } dependencies { implementation "androidx.room:room-runtime:2.4.2" kapt "androidx.room:room-compiler:2.4.2" } ์ถ๊ฐ๋ฅผ ํ๊ณ ๋์, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ค์ด๊ฐ ๋ฐ์ดํฐ๋ค์ ๋ง๋ค์ค์ผ ํ๋ค. 1. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด ํด๋์ค ์์ฑ @Entity(tableName = "chat_table") class Chat.. 2022. 4. 12. ์ด์ 1 ๋ค์ 728x90 ๋ฐ์ํ