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 를 통해 값의 변화를 알림받는 방법.
'iOS 개발 > App 개발 관련' 카테고리의 다른 글
[iOS] WWDC 2019 Testing in Xcode (0) | 2021.07.12 |
---|---|
[iOS] Unit & UI Testing (0) | 2021.07.10 |
[iOS] 최고의 디자인 패턴, MVC 에 대한 오해 (0) | 2021.06.24 |
[iOS] 어떤 클로저에 [weak self] 해야 할까? (0) | 2021.04.12 |
[iOS] 강한 참조 순환(Retain Cycle), 참조 순환 해결하기 (0) | 2021.04.12 |