Skip to content

SwiftUI 의 MVVM 개념과 UIKit 과의 결합을 위한 구조

Sujeong Choi edited this page Jun 28, 2022 · 2 revisions

SwiftUI 의 기본적긴 MVVM, 의존성 주입 구조

  • View 에서 View 로 화면전환이 이뤄질 시에 해당 View 에 해당되는 ViewModel 을 생성하여 주입 하여 화면전환이 이뤄지는 형식
  • 상위 View 에서 해당 ViewModel 을 통해 수신된 데이터를 통해 하위 ViewModel 들을 생성
  • 하위 ViewModel 을 하위 View에 의존성을 주입하는 식으로 전달이 이뤄짐

UIKit 상에서 부분적으로 SwiftUI 를 사용할경우 의존성 주입 구조

  • 화면전환의 경우 UIKit 상의 ViewController 로 이뤄지게 된다.
  • 따라서 VC 상에서 View 에 해당되는 ViewModel 을 주입할 수 밖에 없게 된다.
  • 따라서 VC 에서는 상위 View 에 해당되는 ViewModel 을 받아와 주입하게 되고
  • 하위 View 및 ViewModel 은 내부에서 이뤄지게 된다.
  • VC 입장에서 필요한 ViewModel 은 상위 View 에 필요한 정보만 가져오게 된다.
  • 따라서 VC 에 해당되는 ViewModel 내부에서 SwiftUI View 에 필요한 ViewModel 을 생성해서 전달하는 식의 구조가 된다.