iOS 앱의 MVVM 패턴

kyle Kim·2021년 6월 24일
1

iOS개발

목록 보기
1/22
post-thumbnail

Design Pattern을 쓰는 이유

  1. 유지보수하기 쉽다
  2. Business logic을 테스팅하기 좋다
  3. 각각의 역할을 줄여줄 수 있다
  4. 디자이너와의 협업에서 이슈있는 부분을 효과적으로 처리하게 도와준다

MVVM 패턴

쉽게 표현하면 viewmodel을 통해 Model과 View가 일을 처리하는 형태이다

Model - 앱에 들어가고 처리할 데이터의 형태라고 생각하면된다

struct User: Codable {
    var uid: String
    var email: String
    var nickname: String
}

ViewModel - view와 model사이에서 model의 데이터가 변화했을때 view의 UI에 변화를 주거나 그 반대로도 수행한다.

extension을 사용해서 따로 파일을 만들필요없이 한 파일 안에 view와 viewmodel을 공존하게 만들었다. 사실 Senior 개발자께서 하는거 보고 따라했는데 정리하기도 편하고 Xcode상에서 프로젝트 안에 파일들 자체도 보기 좋다.

extension LoginView{
    final class ViewMoel: ObservableObject{
        var user : User
        init() {
            self.user = User(uid: "", email: "", nickname: "")
        }
    }
}

View - 실제 유저에게 보여지게될 비쥬얼적인 부분을 담당하는 부분임. 아래 예제에서는 viewmodel을 불러와서 사용하는 예시이다

import SwiftUI

struct LoginView: View {
   @StateObject var viewModel = ViewMoel()
    var body: some View {
        VStack{
            Text(viewModel.user.uid)
            Text(viewModel.user.email)
            Text(viewModel.user.nickname)
        }
    }
}
profile
가고일(gagoil)의 개발일지

0개의 댓글