iOS 개발/App 개발 관련
[iOS] MVC 구조의 앱을 MVVM 으로 바꾸기
넌애가끈기가없냐
2021. 6. 25. 16:54
raywenderlich - iOS MVVM Tutorial: Refactoring from MVC
MVVM 으로 바꿀 때 장점
ViewController 가 단순해진다.
Business logic 을 더 잘 표현 할 수 있다.
ViewModel 이 ViewController 보다 테스트하기 쉽다.
ViewModel? ViewController?
MVVM 구조에서 ViewController 는 View 를 바꾸고 View 에서 받은 입력을 ViewModel 로 전달하는 일만 한다. 이 이외에 MVC 구조의 ViewController 가 하던 모든 일을 ViewModel 에게 전달할 것!
ViewModel 은 View 입력을 받아 Model 갱신, Model 의 정보를 ViewController 에게 전달, Data formatting 등을 책임진다.
ViewModel 과 View 를 연결(Binding)하는 방법들
KVO (Key - Value Observing) : key path 를 사용해 property 들을 관찰하고 변화가 있을 때 알림을 받는 방법.
FRP (Functional Reactive Programming) : event 와 data 를 stream 으로 처리하는 패러다임.
Delegation : 값이 바뀌면 delegate 를 통해 알림을 받는 방법.
Boxing : property observer 를 통해 값의 변화를 알림받는 방법.