apple/RxSwift, ReactorKit

RxSwift Signal,Emit

lgvv 2022. 2. 19. 17:17

RxSwift Signal, emit

 

RxSwift를 사용하면서 코드 리뷰 과정에서 Signal이라는걸 보아서 공부해보자!

 


Signal vs Driver

공통점

  • 에러를 방출하지 않고, 메인스레드에서 동작

차이점

  • Driver는 구독할 때 replay를 통해 emit이 발생
  • Signal은 구독할 때 replay를 하지 않음

 

시그널과 드라이버 비교

 

 

Signal은 주로 어떨때 사용할까?

Signal은 replay되면 문제가 있는 스트림에 사용하면 됨.

  • 여러 코드를 살펴보는데 주로 ViewModel -> View로 가는 작업 즉, UI 관련한 것들에 Signal이 보임.
  • 개인적인 생각인데 그냥 드라이버 쓰는게 더 낫지 안을까란 생각


emit은 Driver를 사용했을때 drive라고 생각정리

Signal과 Driver가 주로 비교되는 것 같아서 어떤걸 사용해야 하는지 생각을 해봤는데, 적재적소에 더 알맞는 것을 사용하는게 물론 베스트겠지만, 내가 짠 코드가 다른 사람이 보았을 때, Signal과 Driver가 섞여 있으면 통일감이 떨어져서 불완전하게 보이는 요소로 작동하지 않을까도 생각이 들었다.