- Clean Architecture, Hilt, StateFlow, Flow
- Room DataBase, Coroutine
- Room DB๋ฅผ ํ์ฉํ์ฌ ๋จ์ด๋ฅผ ์ ์ฅ, ์ญ์ , ์์ ํ๋ ๊ธฐ๋ฅ ๊ตฌํ
- StateFlow์ ViewModel์ ํ์ฉํ StatePattern์ ํ์ฉํ์ฌ ํ์ฌ์ ์ํ ๊ฐ์ ์ ์ธํ๋ ๋ฐฉ์์ ๊ตฌ์กฐ ๊ตฌํ
- ๋ชจ๋ ๋ฆฌ์คํธ๋ฅผ ์๋น(UI์์ ์ฌ์ฉ)ํ ๋ Flow๋ฅผ ํ์ฉํ์ฌ ๋น๋๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ
Room DB
์Hilt, StateFlow
๋ฅผ ์ฌ์ฉํ์ฌClean Architecture
๊ธฐ๋ฐ์ ์ฑ์ ๊ตฌ์ถํ๋ ๊ฒฝํ์ด ๋์๋ค.- Flow๋ ๋น๋๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ฉด์ ๋น ๋ฅธ ์์ฐ์์ ๋๋ฆฐ ์๋น์ ๊ฐ์ ๋ฐ์ดํฐ ์ ๋ฌ์์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฐฑํ๋ ์
(
backpressure
)๋ฅผ ์ง์ ํ๋ค๋ ๊ฒ์ ๋ฐฐ์ - Kotlin์ ์ฝ๋ฃจํด ํ๋ก์ฐ๋ ํซ ์คํธ๋ฆผ(
Hot Stream
)๊ณผ ์ฝ๋ ์คํธ๋ฆผ(Cold Stream
) ๋ ๊ฐ์ง ์ ํ ๊ตฌ๋ถ๋๋ค๋ ๊ฒ์ ํ์ต- ์ฐจ์ด์ ์ ํซ ์คํธ๋ฆผ(
Hot Stream
)์ ๋ฐ์ดํฐ ์์ฑ๊ณผ ํจ๊ป ํญ์ ํ์ฑํ๋์ด ์๋ค. (StateFlow) - ๋ฐ๋ฉด์ ์ฝ๋ ์คํธ๋ฆผ(
Cold Stream
)์ ๋ฐ์ดํฐ ์์ฑ๊ณผ ํจ๊ป ํ์ฑํ๋์ง ์์ผ๋ฉฐ, ๊ตฌ๋ ์๊ฐ ์์ ๋๋ง ํ์ฑํ๋๋ค. (Flow)
- ์ฐจ์ด์ ์ ํซ ์คํธ๋ฆผ(
- StateFlow์ LiveData ์ ์ฐจ์ด์ ์ ๋ํด ํ์ต
- ์๋๋ก์ด๋ ํ๋ซํผ์ ์ข
์์ ์ด์๋
LiveData
์๋ ๋ฌ๋ฆฌ,StateFlow
๋ ์์ kotlin ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๊ธฐ ๋๋ฌธ์Domain Layer
์์ ์ฌ์ฉํ ์ ์๋ค. - StateFlow์ ๊ฒฝ์ฐ ์ด๊ธฐ ์ํ๋ฅผ ์์ฑ์์ ์ ๋ฌํ๊ณ , ์ฝํ๋ฆฐ ์ธ์ด์ ๋ ์์ ์ฑ(null-safety) ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ค.
โ ์ฆ NullSafeํ ์ฝ๋๋ฅผ ๊ตฌ์ถํ ์ ์๋ค.
- ์๋๋ก์ด๋ ํ๋ซํผ์ ์ข
์์ ์ด์๋
- ํ์ต์ ์ํด ์ฑ์ ๊ตฌ์ถํ์ฌ ๊ธฐ๋ฅ์ ์ธ ๋ถ๋ถ๋ค์ธ ๋ง์ด ๋ฏธํก โ ์ถ๊ฐ์ ์ผ๋ก ๋จ์ด์ฅ API๋ฑ์ ๋ฐ์์์ ์ง์ ์ ๋ ฅ ๋ฟ ์๋๋ผ ๋จ์ด๋ฅผ ์์ ์์ฌ๋ก ์ธ์ธ ์ ์๋ ๊ธฐ๋ฅ ์ถ๊ฐ ์์ โ ๊ฐ ํ์ฌ๋ง๋ค, ์ํ๋ฒณ ์์๋ง๋ค ๋ณผ ์ ์๋ ๋จ์ด์ ์ ๋ ฌ์ ๊ตฌํํ ์์
- ๋์์ธ ๋ถ์กฑ โ ํด๋ฐ, ๋ฐํ
๋ค๋น๊ฒ์ด์
๋ฑ์ ํตํด์ UI/UX ์ ์ผ๋ก ์กฐ๊ธ ๋ ๋์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ ํจ