Mac Plus

Hello Swift

ReactorKit으로 Memo앱 만들기(1)

  • Realm을 사용하여 curd가 가능한 간단한 샘플 메모앱을 만들어보기 (화면은 이런식으로 기본구성을 하였습니다)
  • ReadViewController.swift파일과 ReadViewControllerReactor 파일을 만들어줍니다.
  • 기본으로 realm에 저장되어 있는 메모리스트를 tableView에 보여지도록 함 ```c //ReadViewController

func bind(reactor: ReadViewControllerReactor) {

//action Observable.just(Void()) .map { Reactor.Action.getMemos } .bind(to: reactor.action) .disposed(by: self.disposeBag)

//state reactor.state.map { $0.memos } .bind(to: tableView.rx.items(cellIdentifier: “cell”)) { indexPath, memos, cell in cell.textLabel?.text = memos.title cell.detailTextLabel?.text = memos.date }.disposed(by: disposeBag)

}


```c
//ReadViewControllerReactor 
  enum Action {
    case getMemos
  }
  enum Mutation {
    case getMemos([Memo])
  }
  struct State {
    var memos: [Memo] = []
  }
  
  let initialState = State()
  
  func mutate(action: ReadViewControllerReactor.Action) -> Observable<ReadViewControllerReactor.Mutation> {
    switch action {    
      case .getMemos:
        let memos = DB.shared.load() 
        return Observable.just(Mutation.getMemos(memos))
    }
  }
  
   func reduce(state: ReadViewControllerReactor.State, mutation: ReadViewControllerReactor.Mutation) -> ReadViewControllerReactor.State {
     var newState = state
     switch mutation {
       case let .getMemos(memo):
         newState.memos = memo
     }
     return newState
   }