개발일기/IOS
IOS - MVVM
코딩하는빵친자
2024. 6. 26. 16:31
- MVVM
- View
- MVVM은 MVC와 달리 ViewController를 View로 취급한다.
- 모든 UI 로직이 ViewModel에 있으므로 View/ViewController가 가벼워진다.(MVC에서보다)
- View는 ViewModel을 참조한다(반대는 X).
- View는 Model을 참조하지 않는다(반대도 O).
- View는 발행(publication)을 구독(subscribe)하고, 주시(관찰, observe)한다.
- ViewModel
- MVVM은 ViewModel을 통해 UI 로직과 비즈니스 로직을 분리했다.
- MVVM은 MVC와 달리 ViewModel이 있다.
- ViewModel은 Model을 참조한다(반대는 X).
- View 없이 테스트가 가능 하다.
- ViewModel은 View input으로부터 Model을 업데이트한다.
- ViewModel은 Model이 변경되면 View에 반영한다. (Model output으로부터 View를 업데이트한다.)
- ViewModel은 View에 직접적으로 이야기하지 않는다. 무언가 바뀌었다고 발표(publish) 한다.
- 모든 UI 컨트롤의 상태를 알려주는 프로퍼티들을 포함한다.
- Model
- UI에 독립적이다.
- SwiftUI나 UIKit을 import 하지 않는다.
- App이 하는 일에 대한 데이터와 로직을 캡슐화 하려고 한다.
- Model이 변경됐을 때 ViewModel에게 알린다.
- View
Swift(스위프트): 튜토리얼을 통한 디자인 패턴: MVVM (Model-View-ViewModel) 2 - BGSMM
728x90