๋ฐ์ดํฐ๋ฅผ ํ ๋ฐฉํฅ์ผ๋ก ํ๋ฅด๊ฒ ํ๊ณ ์๋๊ด ์ญํ ์ ํ๋ ์ธํ๋ผ๋ฅผ ๊ตฌํํด์ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๊ฒฐํฉํ๊ณ ๋ณํํ๋ ๊ฒ์ด ์ข๋ค. ์ด๋ ๊ฒ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๊ฒฐํฉํ๊ณ ๋ณํํ๋ ค๋ฉด ์ ๊ตํ ๋ฌด์ธ๊ฐ๊ฐ ํ์ํ๋ฐ, ๊ทธ๊ฒ ์ค๋ ์ ๋ฆฌํด๋ณผ **Flow**์ด๋ค!
REST REST(REpresentational State Transfer)๋ ์์์ ํํ์ ์ํ ์ํ ์ ๋ฌ์ ์๋ฏธํจ. REST๋ ๋คํธ์ํฌ ์์์ client์ server ์ฌ์ด์ ํต์ ๋ฐฉ์ ์ค ํ๋๋ก ํ๋กํ ์ฝ์ด๋ ํ์ค์ด ์๋ ์ํคํ ์ฒ ์คํ์ผ์.
์๋๊ฐ ๋ณํ๋ฉด์ ๊ธฐ๊ธฐ ์ฑ๋ฅ์ ํฅ์๊ณผ ๋๋ถ์ด ์ฑ์ ๋ํ ๊ธฐ๋๊ฐ ๋์์ง๋ฉด์ ์ต์ ์ํคํ ์ณ์ ๊ธฐ๋ฐ์ผ๋ก ์ฝํ๋ฆฐ์ ํ์ฉํ๋ ์ ์ธ์ UI๋๊ตฌ ํคํธ์ธ Jetpack Compose๊ฐ ๋์ค๊ฒ ๋์๋ค.
๊ธฐ์กด์ notifyDataSetChanged()๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ฉด 1๊ฐ๋ง ๋ฐ๋์ด๋ ๋๋จธ์ง ๋ฐ์ดํฐ๋ ๋ชจ๋ ์ ๋ฐ์ดํธ๋๋ ๋ถํ์ํจ์ด ์์๋๋ฐ ListAdapter๋ฅผ ์ฌ์ฉํ๊ฒ๋๋ฉด ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋์์ DiffUtil๋ฅผ ํตํด ๋ถํ์ํ ๊ต์ฒด ๋น์ฉ์ ์ค์ผ ์ ์๋ค. Re
Room์ ๋ก์ปฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ฌ์ฉํ๋ค. ๊ธฐ๊ธฐ๊ฐ ๋คํธ์ํฌ์ ์ก์ธ์คํ ์ ์์๋ ์คํ๋ผ์ธ ์ํ์ผ๋๋ ์ฌ์ฉ์๊ฐ ์ฌ์ ํ ์ฝํ ์ธ ๋ฅผ ํ์ํ ์ ์์ผ๋ฉฐ ๊ธฐ๊ธฐ๊ฐ ๋ค์ ์จ๋ผ์ธ ์ํ๊ฐ ๋๋ฉด ์ฝํ ์ธ ๋ณ๊ฒฝ์ฌํญ์ด ์๋ฒ์ ๋๊ธฐํ๋๋ค. Room์ ์์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ์๋์ผ๋ก ์ฒ
๋ฅ ๋งํฌ๋ ํํ์ด์ง๊ฐ ์๋ ํํ์ด์ง ๋ด์ ํน์ ํ๋ฉด์ ํ ๋ฒ์ ๋๋ฌํ ์ ์๋ ๋งํฌ๋ฅผ ๋งํ๋ค. ๋งํฌ๋ ๋ชจ๋ฐ์ผ๊ณผ ์น์์ ๋ชจ๋ ์ฌ์ฉ๋๋ ๊ฐ๋ ์ด๋ค. ์์๋ฅผ ๋ค์๋ฉด https://velog.io/ ๋ฒจ๋ก๊ทธ ์์ฒด ๋งํฌ๊ฐ ์๋ ๋์ ๋ฒจ๋ก๊ทธ(ํน์ ํ๋ฉด)์ผ๋ก ์ด๋ํ๊ธฐ ์ํ ๋ง
ViewModel Event ์ฒ๋ฆฌ์ ๋ํ ์ข์ ๊ธ์ด ์์ด์ ๋์ค์ ๋ณด๋ ค๊ณ ์ ๋ฆฌํ์ต๋๋ค!!!LiveData -> SingleLiveData -> SharedFlow -> EventFlowLiveData + EventViewModel์์ LiveData๋ฅผ ์ฌ์ฉํด์ ์ด๋ฒคํธ๋ฅผ
ํ๋ก์ธ์ค : ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ ex) ์คํ์ค์ธ ์ธ์คํ๊ทธ๋จํ๋ก์ธ์ค๋ (๋ค์์) ์์ ๋จ์ ์งํฉ์ค๋ ๋(Thread) : ํ๋์ ํ๋ก์ธ์ค ์์ ๋ ๋ฆฝ์ ์ธ ์คํ ํ๋ฆ ex) ์ข์์ ๊ธฐ๋ฅ, ์คํ ๋ฆฌ ๊ณต์ ๊ธฐ๋ฅ ๋ฑํ๋์ ํ๋ก์ธ์ค์๋ ๋ฉ์ธ์ค๋ ๋๋ง ์๊ฑฐ๋ ๋ฉ์ธ์ค๋ ๋ + ์๋ธ์ค๋ ๋๋ก
LiveData๋? > LiveData๋ ๊ด์ฐฐ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ํ๋ ํด๋์ค์ ๋๋ค. ๊ด์ฐฐ ๊ฐ๋ฅํ ์ผ๋ฐ ํด๋์ค์ ๋ฌ๋ฆฌ LiveData๋ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ธ์ํ๋ค. ์ฆ, ํ๋, ํ๋๊ทธ๋จผํธ, ์๋น์ค ๋ฑ ๋ค๋ฅธ ์ฑ ๊ตฌ์ฑ์์์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ณ ๋ คํ๋ค. ์๋ช ์ฃผ๊ธฐ ์ธ์์ ํตํด LiveDat
๐์ฝ๋ฃจํด(Coroutine)์ด๋? > ์ฝ๋ฃจํด์ ์ฝ๋ฃจํด์ด ์์๋ ์ค๋ ๋๋ฅผ ์ค๋จํ์ง ์์ผ๋ฉด์ ๋น๋๊ธฐ์ ์ผ๋ก ์คํ๋๋ ์ฝ๋ 1. ํ๋ ฅํ ๋ฉํฐํ์คํน co(ํจ๊ป, ๋์์)+Routine(ํน์ ํ ์ผ์ ์คํํ๊ธฐ ์ํ ์ผ๋ จ์ ๋ช ๋ น) ์ฝ๋ฃจํด ํจ์๋ ์ธ์ ๋ ์ง ์ค๊ฐ์ ๋๊ฐ
๐Gradle Scripts๋? > _์๋๋ก์ด๋ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด Gradle Scripts ์์ build.gradle, settings.gradle ๋ฑ์ ํ์ผ์ด ์๋์ผ๋ก ๋ง๋ค์ด์ง๋ค. ์ด ํ์ผ๋ค์ ํตํด ์๋๋ก์ด๋ ํ๋ก์ ํธ์ ๋น๋ ์ ๋ณด, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ ๊ด๋ฆฌํ๋ค._
โTabLayout, Filterable ์ฌ์ฉ๋ฒ >Tablayout์ ์ฌ์ฉํด์ ์ํ๋ ํค์๋๊ฐ ํฌํจ๋ ๋ฆฌ์คํธ๋ง ๋ณผ ์ ์๋๋ก ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ๋ฅผ ํํฐ๋ง ํค๋ณด์!! TabLayout ๊ตฌ์ฑ **1. TabLayout์์ ์ํ๋ tabItem์ ๋ฐฐ์นํ๋ค(ex: All, L
RecyclerView ๋ฌดํ ์คํฌ๋กค ๋ฌดํ ์คํฌ๋กค์ด๋? ๋ฆฌ์คํธ๋ฅผ ๋ฐ์ผ๋ก ์คํฌ๋กค ํ์ ๋ progressBar๊ฐ ๋ณด์๋ค๊ฐ, ์๋ก์ด ๋ฆฌ์คํธ๊ฐ ์ถ๊ฐ๋๋ ๊ฒ์ ๋งํจ. ** ๐๊ตฌํ๋ฐฉ๋ฒ RecyclerView ์์ฑ Scroll์ด ๋์ ๋ฟ๋ ๊ฒ์ ๊ฐ์งํ์ฌ ๋ฟ์์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ์
์ฐธ๊ณ ์ฌ์ดํธ
๋งค๋ํ์คํธ ํ์ผ์ Android ๋น๋ ๋๊ตฌ, Android ์ด์์ฒด์ ๋ฐ Google Play์ ์ฑ์ ๊ดํ ํ์ ์ ๋ณด๋ฅผ ์ค๋ช ํ๋ค. ๊ฐ์ฅ ์์ ํด๋์ AndroidManifest.xml์ด ์์ด์ผํ๋ฉฐ, ์ด ์ ๋ณด๋ ์ฑ์ด ์คํ๋๊ธฐ ์ ์ ์์คํ ์ด ์์์ผ ํ ๋ด์ฉ์ ์ ์ํ๊ณ ์๋ค.