Android/리액티브안드로이드프로그래밍-책

시작, 리액티브 프로그래밍 - 기본개념 (옵저버블, 디스포저블, 스케쥴러)

서부추 2020. 4. 21. 21:34
반응형

리액티브 프로그래밍에 관한 책을 완주하며 정리하려고 한다.

참고하는 책은 <리액티브 안드로이드 프로그래밍, RxJava로 안드로이드 어플리케이션 제작하기 > 이며,

일단 천천히 따라가볼 생각이다. 

 

중요 개념

 

1. 옵저버블(Obserber) : 데이터의 출처 (source)

  - 모든것은 옵저버블과 시작된다.  기본적으로 데이터 스트림을 활용하는 범용 인터페이스이다.

 

  옵저버블의 생성

Observable.just("First Item" , "Second Item");   

  이렇게만 생성하면 영원히 전송되지 않는다. .just() 와 같은 도구로 생성하고, .subscribe() 로 호출해준다

  누군가 구독해야 활성화가 된다. ! 

  1) 핫 옵저버블 : 생성되면서 내부적으로 아이템을 생성한다. 계속해서 업데이트 되는 형태의 경우가 해당됨 

  2) 콜드 옵저버블 : 구독하기 전까지는 아이템이 전송되지 않는다. 

   

 2. 디스포저블 : 옵저버블의 생애주기를 제어 하기위해 사용한다. 제어하지 않는 다면, 영원히 활성화 될수도있엉 ㅇ_ㅇ

 

    - dispose() / isDisposed() 두가지 메소드가 있으며,

     이름 그대로 전자는 구독을 취소할때 사용, 후자는 활성화 여부를 알 수 있는 메소드 이다 

    * 구독이 취소되면 다시 사용 할 수 없다. 다시만들어야행..

  Disposable dis  = Observable.just("First Item" , "Second Item")
                    .subscribe();

 

   - CompositeDisposable을 사용하여 그룹화도 가능하다. (사용 중이던 액티비티의 아이템들을 한번에 종료해야 하는 경우등에 유용 )

Disposable dis = new CompositeDisposable(     
Observable.just("First Item" , "Second Item").subscribe(),   
Observable.just("Second Item" , "HJJ Item").subscribe()   
Observable.just("HJJ Item" , "HJHJ Item").subscribe()
);

 

 

3. 스케쥴러 (Scheduler) : 데이터가 처리되는 위치를 정의하는 방법 , 단위의 일정을 만들며, 특정 스레드를 선택 할 수 있다. 

Observable.just("First Item" , "Second Item")
          .subscribeOn(Schedulers.io());
          .subscribe();

   사용되는 주요 스케쥴러는 ,

  • Schedulers.io()
  • Schedulers.computation()
  • Schedulers.newThread()
  • AndroidSchedulers.mainThread()
반응형