그래서, 결국 코드로 직접 화면을 구성함
그래도 여전히 존재하는 단점들...
Objective-C 기반 화면 구성코드보다 단순하지 않음
AutoLayout은 배우기 어렵고 화면 구성에 실수가 있을 수 있고 코드로는 더 복잡해짐
결국 시간도 많이 들고, 오류도 많이 생기고, 코드를 알아보기 힘들고 따라서 생산성이 떨어짐
UIKit에서는 데이터가 변경되면 그 변경이 화면에 나타나도록 직접 작성해야했음
또한 주기적으로 데이터 변경을 확인해서 적용시켜야했음
하지만 SwiftUI에서는 앱의 데이터 모델과 사용자 인터페이스 컴포넌트, 그리고 기능을 제공하는 로직을 Binding하는 여러방법으로 복잡도를 낮춰줌
데이터 모델은 앱의 다른 부분에서 구독(subscribe)할 수 있는 데이터 변수를 게시(publish)하게 됨
이런 방식으로 데이터가 변경된 사실을 알림
사용자 인터페이스 컴퍼넌트와 데이터 모델간의 바인딩이 된다면, 추가적인 코드 없이도 모든 데이터의 변경사항을 SwiftUI가 자동으로 반영해줌
SwiftUI에서는 데이터 주도적이기 때문에 ViewModel이라고 하지않고 Store라고 말하고 사용함
MVVM은 단지 아키텍쳐 구조고 SwiftUI라고 무조건 MVVM 패턴을 사용하진 않음