개발하는 동글 :]

MVVM RxSwift DataBinding Input Output 구조 사용하기 본문

카테고리 없음

MVVM RxSwift DataBinding Input Output 구조 사용하기

동글하다 2024. 4. 15. 15:38

지금 까지  MVVM을 사용하면서 Data Binding을 Observable Pattern을 이용해 왔었다

그리고 최근 공부를 시작한 RxSwift를 적용하며 이 RxSwift를 이용한 Data Binding의 방법 중 하나인 Input Output구조를 적용해 보자!

 

1. Input Output 구조를 사용할 뷰 모델의 protocol 만들기

Input과 Output구조를 거의 모든 Viewmodel에서 사용해 줄 것이니 이 구조를 프로토콜로 만들어 준다

이 구조를 통해 컨트롤러에서 transform 메서드를 이용하여 Output을 이용해 바인딩을 하자!

 

2. ViewModel에서 Input과 Output의 요소를 만들고 어떻게 Input을 변환하여 Output으로 전달할 것인지를 정의

ViewModel에서 ViewModelProtocol을 채택해 준 뒤 Input으로 사용 될 날짜를 선택할 때, viewWillAppear 될 때, cell을 tap 할 때를 정의하고 Output으로는 메모가 로드되는 것, DetailVC로 화면을 전환하는 것 을 정의하여 주자!

그리고 transform 내부를 확인해보면 날짜를 선택할 때 메모가 로드되는 것으로 변경해 주고 있다.

 

3. ViewController에서 Input을 주입하고 transform을 이용해 Output을 Binding 해주자

ViewController에서 Input으로 날짜를 선택할 때 Output으로 그 날짜의 메모들을 전달받고 memoTableView에 Binding 해주어 화면에 보여주는 Input Output구조를 적용할 수 있다..!