1027 새싹 79회차 정리 - RxSwift Share
iOS 앱 개발자 데뷔 과정 79회차
#1. Checklist
- Share
일반적으로는 subscribe (bind) 를 할 때마다 새로운 시퀀스가 생성된다.
즉, 하나의 Observable을 subscribe (bind) 하는 곳이 여러 군데라면, 그만큼 호출이 되면서 스트림이 생기게 되기 때문에 불필요한 리소스가 발생할 수 있다.
share() 를 통해 이를 해결할 수 있으며, subject와 relay는 내부적으로 스트림을 공유하기 때문에 따로 지정해 줄 필요가 없다.
- subscribe vs bind vs drive
78회차 정리 Observable 참고
subscribe : next, complete, error 이벤트를 받을 수 있다.
bind : next 이벤트만 받을 수 있으며, Main Thread 실행이 보장된다.
drive : bind와 거의 유사하지만, Stream을 공유한다.
- observable vs subject vs relay
observable
: 이벤트를 생성하고 전달하는 역할만을 할 수 있으며, 여러 번 subscribe 할 경우 독립적인 실행을 갖는다.
subject : Observable과 Observer가 합쳐진 객체로, Stream을 공유한다.
relay : subject와 유사하지만, completed와 error 이벤트를 받을 수 없으며, UI에 특화되어 있다.
relay는 driver와 같이 쓰이는 일이 많다.
- Driver
- Traits : 78회차 정리 Observable 참고
- asDriver : Observable을 Driver로 바꿀 때 사용한다.