
์ด ๊ธ์ ์ต๊ทผ ์ ํํ๋ MVI (Model-View-Intent) ํจํด๊ณผ๋ ๋ค๋ฅธ, ๋ฆฌ์กํธ์ Reducer, UiState, Effect, Action ๊ฐ๋ ์ ํฌํจํ๋ T Composable Architecture๋ฅผ ์๊ฐํ๋ ๊ธ์ ์ฒซ ๋ฒ์งธ ํธ์ ๋๋ค. TComposableArchitecture - ๋งํฌ 2๋ถ ์๊ณ : Alert/Snackbar(Toast)์ ๋ก์ง
์ด์ ๊ธ์์ Composable Architecutre๋ฅผ ์๊ฐํ๋ ๋ด์ฉ์ ๋ด์๋ณด์๋๋ฐ, ๋ช ๊ฐ์ง ๋ฌธ์ ์ ์ ๋ฐ๊ฒฌํ์ฌ ์ด๋ฅผ ๊ฐ์ ํ ๋ด์ฉ์ ๋ค์ ์ ๋ฆฌํ๋ ๊ธ์ด๋ค. ํฌ๊ฒ 2๊ฐ์ง ๋ฌธ์ ์ ์ ํ์ธํ์๋ค. ViewModel ๋ด Reducer ์ฒ๋ฆฌ ํ ์๋ next Action ์คํธ๋ฆผ ์ฒ๋ฆฌ๋ฅผ ์ํ ์ฑ๊ธํด ํ์ฉ ์ Lifecycle ๋ฌธ์ ์ด 2๊ฐ์ง ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ฝ
์ด ๊ธ์์๋ Composable Architecture์์ Alert(Dialog)/Toast(Snackbar) ํ์ฉ๋ฒ์ ์๊ฐํ๋ค. ๊ธฐ๋ณธ ํํ๋ 1๋ถ/2๋ถ์์ ์๊ฐํ Action์ ํ์ฉํ๋ ์์คํ ์ ์ ์ฉํ๋ค. ์ด ๊ธ์ ๋์์ธ ์์คํ ์ด ์์ ๊ฒฝ์ฐ Dialog/Toast๋ฅผ ๊ณตํตํ์ํค๋ ๋ฐฉ์์ ๋ค๋ฃจ๊ณ ์๋ค. ์ด ๊ธ์์๋ Alert/Toast(Snackbar)๋ฅผ
Composable Architecture์ ๋ํ ์ธ ํธ์ ๊ธ์ ์ด์ด ์ด๋ฒ ๊ธ์ ์์ฑํ๊ฒ ๋์๋ค. ์ด๋ฒ์๋ ์ ๋ฐ์ ์ธ ์ค๊ณ๊ฐ ๋ณ๊ฒฝ๋์ด ์ฌ์ค์ ์๋ก์ด ์ํคํ ์ฒ๋ผ๊ณ ๋ณผ ์ ์๋ค. ๊ฐ์ฅ ํฐ ๋ณํ๋ ๋ฌด์์ธ๊ฐ? ์ฑ๊ธํด์ผ๋ก ํ์ฉํ๋ Action์ ViewModel์ ํ์ ํ์ฌ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝํ๋ค. Router๋ฅผ ์๋ก ์ถ๊ฐํ์ผ๋ฉฐ, Action๊ณผ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํ๋๋ก ๊ฐ์ ํ
์๋๋ Action ์์คํ ์ ํ์ฉํด์ Router๋ฅผ ์ฐ๋ ค๊ณ ์ค๊ณํ์ง๋ง, ํ์๊ฐ ๊ธฐ์กด์ ์ฌ์ฉํ๋ ๋ฐฉ์ ์ค ํ๋๋ก ๋์๊ฐ ๊ฑฐ๊ธฐ์๋ถํฐ ๋ค์ ์ค๊ณ๋์๋ค. ์ด ๋ผ์ฐํฐ๋ ํฌ๊ฒ ๋ ๊ฐ์ง ์ํฉ์ ํ์ฉ ๊ฐ๋ฅํ๋ค. Activity ๊ฐ ํ๋ฉด ์ด๋ Compose Navigation ๊ฐ ํ๋ฉด ์ด๋ ๋ง์ฝ ์ฑ๊ธ ์กํฐ๋นํฐ(Single Activity) ๊ตฌ์กฐ๋ฅผ ์ด๋ค๋ฉด Compose Na
์ง๋ ๊ธ์์๋ AI์ ํจ๊ป ๊ฐ๋ฐํ ์๋ก ์ฝ๋์ ์์น์ ์์กด ๋ฐฉํฅ์ ๋ถ๋ช ํ ์ ํด์ผ ํ๋ค๊ณ ์ผ๋ค. ์ด๋ฒ์๋ ๊ทธ ๊ธฐ์ค์ Activity๊ฐ ํ์ํ feature์ ์ ์ฉํ๋ค. ๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด Activity๊ฐ ํ์ํ ๋ impl์ ์ถ๊ฐํ๋ค. impl์ feature ํ๋ฉด ์ ์ฒด๋ฅผ ๋ฃ๋ ๊ธฐ๋ณธ ๋ชจ๋์ด ์๋๋ค. Android๊ฐ feature์ ๋ค์ด์ค๋ ๋ฐฉ๋ฒ์ ๊ตฌํํ๋ ๋ชจ๋์ด
์ง๋ ๊ธ์์๋ Activity๊ฐ ํ์ํ ๋ impl์ ์ถ๊ฐํ๊ณ , Activity์ Compose host๊ฐ ๊ฐ์ ํ๋ฉด์ ์ธ ๋ ui๋ฅผ ๋ถ๋ฆฌํ๋ค๊ณ ์ ๋ฆฌํ๋ค. ์ฌ๊ธฐ์ ui๋ฅผ stateless composable๋ง ๋ชจ์ ๋ ๋ชจ๋๋ก ์๊ฐํ๋ฉด ๋ฌธ์ ๊ฐ ์๊ธด๋ค. ViewModel๊ณผ navigation ์ฐ๊ฒฐ์ impl์ ๋จ๊ธฐ๋ฉด Compose host๊ฐ ํ๋ฉด์ ์ด ๋ ๊ฒฐ๊ตญ
์ด์ ์ ์๊ฐํ Router๋ Activity ๊ฐ ์ด๋๊ณผ Compose Navigation ์์ ์ด๋์ ํจ๊ป ์ฒ๋ฆฌํ๋ค. ํ๋ฉด์์๋ Navigator๋ก ์ด๋์ ์์ฒญํ๊ณ , ์์ฒญ์ ๋ฐ์ ์ชฝ์์ Activity๋ฅผ ์ด๊ฑฐ๋ Navigation์ ํ๋ฉด์ ๋ฐ๊พผ๋ค. Navigation์ ์ด๋ค๊ณ ์ฑ์ Activity๊ฐ ํ๋์ผ ํ์๋ ์๋ค. Activity๊ฐ ์๋ feature