- 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
'개발일기 > IOS' 카테고리의 다른 글
Swift UIKit - 웹과 관련되어(웹뷰, 아웃링크, 사파리) (0) | 2024.06.27 |
---|---|
UIKit - delegate 패턴 (0) | 2024.06.26 |
iOS - DeepLink (0) | 2024.06.26 |
iOS - 앱 추적권한 호출지점 이슈 (0) | 2024.06.26 |
iOS 개발할 때 유용한 사이트 모음 (0) | 2024.06.25 |