์ด๋ฒ์ฃผ๋ ์ค ์ดํ ํํ๋ก์ ํธ ๋ฐํ๋ ํ๊ณ , ๋ฐฐํฌ์ง์ ์ฑ ๊ณ ๋ํ ์์ ๋ ํ๋ค๋ณด๋ ์๊ฐ์ด ์ ๋ง ๋นจ๋ฆฌ ํ๋ ๋ค.
์ต์ข ํ๋ก์ ํธ ์ง์ , ์์ผ๋ก์ ํ์ต ๋ฐฉํฅ์ ๋ค์ ์ก๊ณ ๊ฐ๊ณ ์ถ๋ค.
๋ญ๊ฐ ์ด์ง์ด์งํ๋ค.
ํด๋ฆฐ ์ํคํ
์ฒ๋ฅผ ํ์ตํ๋ฉฐ, ์์กด์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋ํด ๊น์ ๊ณ ๋ฏผ์ ํ๋ค.
compose์์๋ MVVM์ผ๋ก๋ง ์์ฑํ๋ ์ฝ๋๋ค์ ์ข ๋ ๋ฒ์ฉ์ฑ ์๊ฒ ์ฌ์ฉํ๋ ค๋ค ๋ณด๋ ๊นจ์ง๊ณ ํ๋ ๋ถ๋ถ์ด ํ๋์ด ์๋์๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ํํธ์จ์ด ๊ธฐ๋ฒ์ "์ฌ์ฌ์ฉ์ฑ"๊ณผ "์ญํ ๋ถ๋ฆฌ"๊ฐ ์ต์ข
๋ชฉ์ ์ง์ธ๊ฒ ๊ฐ๋ค.
์์ผ๋ก clean architecture๋ฅผ ์ธ ์ผ์ด ์๊ฒ ๋๋๋ง, ์
์ฌํด์ ์ฐ๊ฒ ๋๋ค๋ฉด ์ ์ ์ํ ์ ์์ ๊ฒ ๊ฐ๋ค.
ํด๋ฆฐ ์ํคํ
์ฒ์ ์ฃผ์ ํฌ์ธํธ๋ ์ธ๋ถ์ ๋ด๋ถ, ์ฆ ์ฌ๊ธฐ์๋ ์ญํ ๋ถ๋ฆฌ์ด๋ค.
ํ์๋ค๊ณผ ์ํต์ด ์ ๋์ง ์์ usecase์์ ์๋นํ ๋ณต์กํจ์ ๋๋ผ๊ณ ์์ง๋ง ๋ก์ง์ ํ๋ฆ์ ์ ํด์ฃผ๋ ๊ตฌ๊ฐ์ด๋ผ๊ณ ์๊ฐํ๊ณ ๋์ด๊ฐ์ผ๊ฒ ๋ค.
์ฌ์ค MVVM์ด ๊ทธ๋ฆฝ๋ค.
๋จ์ํ 3๊ฐ์ Layer๋ก ๋ถ๋ฆฌํด ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ทธ ์์ ์ด...
Entity์ ๋ํด์๋ ๊น์ ๊ณ ๋ฏผ์ ํ๋ค.
์ด ๋์ ํ์ด์ง๋ณ๋ก ์๊ฒ ์ชผ๊ฐ์ด๋ณด๋ ๋ฐฉ๋ฒ๋, Entity ์์ฒด๋ฅผ DTO์ ๋์ผํ๊ฒ ์ฌ์ฉํ ๊ฑฐ๋ฉด ๊ทธ๋ฅ Entity๋ง ์ ์ํ๋ฉด ๋๋ ๊ฒ ์๋๊ฐ ๋ฑ๋ฑ..
๊ฒฐ๋ก ์ ๋๋ค์ ์ฌ์ฌ์ฉ์ฑ๊ณผ ์ธ๋ถ์์ ์ญํ ๋ถ๋ฆฌ๋ก ์ ํด์ง๋ค.
๋ง์ฝ, DB๊ฐ ๋ฐ๋๊ฒ ๋๋๋ผ๋ Entity๋ ์์ Dart ์ฝ๋๋ก๋ง ์ด๋ฃจ์ด์ง๊ธฐ์ repo์ ๊ฐ๋จํ ๋ณํ ์ดํ ์ฝ๋ ๋ณ๊ฒฝ ์์ด ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๋ค.
ViewModel, View ์ ์ฉ Model์ ์๋ฏธํ๋ค.
๋จ์ํ ๋ก์ง์ ๋ด๊ณ ์์ ๋ฟ ์๋๋ผ View์์ ๊ด๋ฆฌ๋๋ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋๋ค.
์ด๋ฅผ state๋ผ๊ณ ์ ์ํ๋๋ฐ state๋ฅผ ํตํด ๋ชจ๋ ์ํ๊ฐ์ ๊ด๋ฆฌํ ์ ์๋ค.
Global Notifier๋ ์ ์ญ์ ์ผ๋ก ๊ด๋ฆฌ๋๋ ์ํ๊ฐ์ด ์์๋, ์ด๋ฅผ Provider๋ฅผ ํตํด ๊ด๋ฆฌํ๊ฒ ๋๋ค.
riverpod ์ธ์์์๋ ๋ด๋ถ์ ์ธ๋ถ์ ๊ฒฝ๊ณ๊ฐ ์๊ฒฉํ๋ฐ, ์ด๋ฅผ ํตํด ์์ธ๊ณผ ๊ฐ์ ์ญํ ์ ํ ์ ์๋ค.
๋ค๋ฅธ ๋ฐฉ๋ฒ๋ค๋ ์ฌ๋ฟ ์๋ค๊ณ ๋ฃ๊ธฐ๋ง ํ๋๋ฐ, ์ฐจ๊ทผ์ฐจ๊ทผ ํ์ตํด๋ด์ผ๊ฒ ๋ค.