MVVM(2)
-
082_Rx(Input, Output)+MVVM
-. 뷰모델을 통해 UI로직과 비지니스 로직을 분리하면 객체, 이벤트가 많아졌을때 쉽게 확인 할 수 있다. 이 때 Input, Output으로 데이터 흐름을 구분 할 수 있다. -. VC->VM : Input(버튼탭, 텍스트필드 입력하는 텍스트 등), VM->VC : Output(뷰 상태, 텍스트, 화면전환, 얼럿 등) -. Input, Output 사용 전에는 뷰컨트롤러에서 이벤트를 처리했지만 Input을 사용해서 관찰대상이 되는 이벤트의 처리를 뷰모델에 전달하고, 뷰모델에서는 Output을 사용해서 연산을 적용한 이벤트를 뷰컨트롤러에 전달한다.(뷰컨틀롤러에서는 메서드의 반환값을 통해 값에 접근할 수 있음 ex.뷰컨트롤러에서 transform의 반환값인 Output구조체의 매개변수에 접근) Input,..
2022.11.01 -
074_MVVM+DiffableDataSource(Unsplash: Get a random photo)
#. 체크리스트 1. Codable사용할 때 옵셔널 타입 체크하기: Observable.value를 nil로 초기화 하려면 옵셔널 타입이어야 함. 2. snapshot.appendItems()에 클로저값 넣을 때 viewDidLoad보다 Codable이 먼저 실행(서치바검색어가 전달되지 않은 상황)됨. 결국 스냅샷에 nil을 넣는 상황이 되기 때문에 nil이 아닌 경우에 bind메서드 실행하도록 분기 처리 해줘야함. 1. struct RandomPhoto: Codable, Hashable { var description: String? var urls: randomPhotoUrls? } // MARK: - randomPhotoUrls struct randomPhotoUrls: Codable, Hashab..
2022.10.22