본문 바로가기

Design Patterns/MVVM3

MVVM 아키텍쳐 적용하기 MVVM 아키텍쳐 적용하기 어렵지 않아요~ 1. class ViewModel 만들기 2. VC에 ViewModel 객체 만들기 3. VC에서 UI와 관련된 비지니스로직을 ViewModel로 옮긴다. 4. VC의 UI 처리 부분을 input과 output으로 나눈다. 5. input을 받으면 ViewModel로 넘겨주도록 observer를 선언해 놓는다. 6. ViewModel에서는 input에서 넘겨 받을 함수나 변수를 준비한다. 7. ViewModel에서 계산된 결과를 넘겨주면 받을 수 있도록 observer를 만든다. 8. 계산된 결과를 넘겨줄 Observable을 만든다. ViewModel을 적용하고 나면 별거 없다는 것을 알게될 겁니다. 9. ViewModel의 계산된 결과를 VC에서 기다리고 있.. 2020. 6. 17.
SwiftHub Login ViewController / ViewModel 분석 LoginViewController bindViewModel() override func bindViewModel() { super.bindViewModel() guard let viewModel = viewModel as? LoginViewModel else { return } let segmentSelected = Observable.of(segmentedControl.segmentSelection.map { LoginSegments(rawValue: $0)! }).merge() let input = LoginViewModel.Input(segmentSelection: segmentSelected.asDriverOnErrorJustComplete(), basicLoginTrigger: basicLog.. 2020. 6. 17.
Swift: How to Migrate MVC to MVVM Swift: How to Migrate MVC to MVVM & Intro Unit Testing 1. 기능이름ViewModel.swift 생성 class 기능이름ViewModel or struct 기능이름ViewModel 만들기 class/struct 안에 필요한 변수와 생성자 만들기 (의존성 주입) 의존성 주입 struct CourseViewModel { let name: String // Dependency Injection (DI) init(course: Course) { self.name = course.name } } 2. VC에 있는 Model 객체(e.g. fetchArray)를 ViewModel 객체로 변경 class CoursesController: UITableViewControlle.. 2020. 6. 17.