[RxSwift] AirPortClone: Project Setup

Junyoung Park·2022년 12월 23일
0

RxSwift

목록 보기
13/25
post-thumbnail

#1 Setting up Cocoapod, UIViewController and ViewModel - RxSwift MVVM Coordinator iOS App

AirPortClone: Project Setup

구현 목표

  • 쿼리 검색 결과를 테이블 뷰 UI로 보여주는 RxSwift 기반 클론
  • MVVM-Coordinator 패턴 사용

구현 태스크

  • 프로젝트 셋업
  • 네비게이션 서치 뷰 구현
  • 테이블 뷰 구현
  • 프로토콜을 따르는 뷰 모델

핵심 코드

protocol SearchViewPresentable {
    typealias Input = (
        searchText: Driver<String>, ()
    )
    typealias Output = (
    )
    
    var input: SearchViewPresentable.Input { get }
    var output: SearchViewPresentable.Output { get }
}
  • 특정 뷰 모델이 따를 Presentable 프로토콜
  • 서치 뷰 컨트롤러가 사용할 뷰 모델은 해당 프로토콜
final class SearchViewModel: SearchViewPresentable {
    var input: SearchViewPresentable.Input
    var output: SearchViewPresentable.Output
    
    init(input: SearchViewPresentable.Input) {
        self.input = input
        self.output = SearchViewModel.transform(input: self.input)
    }
}
  • 인풋, 아웃풋을 해당 프로토콜을 따름
extension SearchViewModel {
    static func transform(input: SearchViewPresentable.Input) -> SearchViewPresentable.Output {
        return ()
    }
}
  • 인자로 넘겨받은 인풋을 변환, 뷰 컨트롤러가 따를 아웃풋을 리턴하는 함수

구현 화면

profile
JUST DO IT

0개의 댓글