Clean Architecture with MVVM C - boostcampwm-2021/iOS04-OwnMyWay GitHub Wiki
MVVM Clean Architecture
- Clean Architecture๋ Domain Layer๊ฐ ๋ค๋ฅธ Layer์ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ํ ์คํธํ๊ธฐ ์ฉ์ดํ๊ณ Domain Layer๋ฅผ ์ฌ์ฌ์ฉ ๋ฐ ๊ต์ฒดํ๊ธฐ ์ข๋ค๋ ์ฅ์ ์ด ์กด์ฌํฉ๋๋ค.
- ViewController๋ ๋จ์ ํ ์คํธ๋ฅผ ํ๊ธฐ ์ด๋ ต๋ค๋ ๋จ์ ์ด ์๋๋ฐ ์ด๋ฅผ UIKit์ ๋ ๋ฆฝ์ ์ธ ViewModel์ ์ฌ์ฉํ๋ฏ๋ก์จ ํ ์คํธ๋ฅผ ์งํํ ์ ์์ต๋๋ค.
- ํ๋ฉด ์ด๋์ ๋ด๋นํ๋ Coordinator๊ฐ ์กด์ฌํ๊ณ ViewModel์์ ํธ์ถํ๋ ๊ตฌ์กฐ์ด์ง๋ง, ViewModel์ UIKit ์์กด์ฑ์ ๋์ด๋ด๊ธฐ ์ํ์ฌ delegate ํจํด์ ์ ์ฉํ์์ต๋๋ค.
Coordinator
- ํ๋์ ํ๋ฉด์์ ๋ค๋ฅธ ํ๋ฉด์ผ๋ก ์ ํ์ ํ ๋ ๋ค๋ฅธ ViewController๋ฅผ ์์์ผํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ์ต๋๋ค. Coordinator ํจํด์ ์ ์ฉํ๋ฉด ViewController ์ฌ์ด์ ์์กด์ฑ์ ์ ๊ฑฐํ ์ ์๊ธฐ์ MVVM+C๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
- ์ถ๊ฐ์ ์ผ๋ก ViewController์์ ํ๋ฉด์ ํ์ ๊ธฐ๋ฅ ๋ก์ง์ด ํฌํจ๋๊ฒ ๋๋ค๋ฉด ViewController ์ฝ๋์ ์์ด ๋ฐฉ๋ํด์ง๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ฝ๋๋ค์ดํฐ๋ก ๋ถ๋ฆฌํจ์ผ๋ก์จ ๋ฐฉ์งํ๋๋ก ํ์์ต๋๋ค.