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이 인식할 수 있도록 설정