RxSwift 간단 정리

RxSwift란

비동기로 처리된다는 건 나중에 처리된다는 것이다.

Observable 실행과 종료

Observable은 생성하는 것만으로는 실행되지 않고 subscribe해야 실행된다.
subscribe를 실행하면 크게 세 가지 이벤트가 실행된다.

complete와 error 이벤트를 호출하거나 subscribe의 리턴타입인 Disposables를 이용해 dispose하면 실행이 종료된다. 실행이 종료되면 클로져가 사라진다.

클로져 내에서 self를 사용하더라도 complete, error 이벤트 혹은 dispose 호출하면 클로져가 사라져서 self에 대한 참조카운트가 감소한다. 따라서 순환참조 문제가 해결된다.

Observable이 subscribe 후 complete, error 혹은 dispose 되어 실행이 종료된다. 종료된 Observable은 후에 subscribe하거나 사용하더라도 다시 실행되지 않는다.

처음 RxSwift를 사용한다면 크게 두 가지를 신경쓰자.

  1. 비동기로 생기는 데이터를 Observable로 감싸서 리턴하는 방법

    1. Observable.create {} 속에서 비동기 처리를 실행
    2. onNext(data)로 데이터 전달, onComplete, onError 실행
    3. disposable 생성하여 리턴
  2. Observable로 오는 데이터를 받아서 처리하는 방법

    1. Observable에 subscribe하여 이벤트를 처리할 클로져를 넘긴다.
    2. event에 맞는 처리
    3. disposable을 disposeBag에 추가

Operator

1번과 2번을 반복해서 사용하다보니 더 간편한 방법이 필요하다! 그래서 reactive 에서는 여러가지 Operator를 제공한다.

cf) 스케줄러는 작업큐의 래퍼 클래스

역할 정리

Observable

Observer

Subject

Relay