본문 바로가기

mvvm2

@StateObject vs @ObservedObject View와 Logic을 분리하기 위해 MVVM (Model - View - ViewModel) 패턴을 사용하는데ViewModel은 Logic을 담당하여 View에서 사용할 데이터를 가공하는 역할을 한다.  SwiftUI에서는 ViewModel을 클래스로 구현하고 ObservableObject 프로토콜을 채택한다. 내부에는 View에서 사용할 데이터가 있어 @Published 프로퍼티로 해당 값의 변화를 알리게 되고메서드로 데이터를 가공할 수 있도록 한다.  class MyViewModel: ObservableObject { @Published var myData: [MyModel] = [] func insert(data: MyModel) { myData.append(data) } fu.. 2024. 5. 13.
SwiftUI 를 공부하면서 구직 중 기업에서 원하는 자격요건을 맞추기 위해 MVVM 패턴을 공부하면서 SwiftUI 공부를 시작했다. youtube에서 엄청 엄청 유용한 강의들을 보게 되었고 이제야 조금 감을 잡기 시작했다. 일단 나는 회사 프로젝트에서 MVVM 패턴을 적용했었는가? 그런줄 알았다. DataBinding, RxJava, RxSwift 등 Observable을 사용하면 MVVM 패턴을 적용한 줄 알았다. 오히려 Observable을 사용하지 않아도 Observer 패턴을 이용하여 MVVM 패턴을 적용할 수 있었다. 즉 MVVM 패턴 자체에 RxJava나 RxSwift는 필수가 아니라는 것이다. 다만 라이브러리를 사용하면 더 쉽고 간편하게 사용할 수 있다는 것이다. 우선 모델을 아래와 같이 3개로 나누었는데 각 모델에.. 2023. 11. 30.