[iOS] ReactorKit 심화 개념 (2/2)

Global States

  • ReactorKit에는 Global State를 위한 Action → Mutation → State Flow가 존재하지 않음
  • transform(mutation:)을 이용하여 global state를 mutation으로 변환할 수 있음
  • currentUser라는 BehaviorSubject인 global state가 있다고 가정
  • 위 코드는 currentUser가 변할떄마다 Mutation.setUser를 방출할 수 있게 한다.

View Communication

  • ReactorKit을 사용할때는 view communication에 대해 callback closures나 delegate pattern을 지양
  • Reactorkit 공식 입장은 reactive extensions를 이용해 view들간의 communication을 할 것을 지향

 

  • ChatViewController에 있는 MessageInputView의 subview인 sendButton을 누르면 reactor에게 이벤트가 전달된다고 가정 
  • 위와 같이 Reactive Extensions를 이용해 다른 뷰에 있는 이벤트도 ViewController이 인식할 수 있도록 설정 

출처: https://github.com/ReactorKit/ReactorKit