요새 RxJava가 너무 핫한지라 나중에 이것을 Android에 사용하게 될 지는 모르겠지만 배워두는 것도 나쁘지 않겠다 싶어서 관심을 가져본다. 일단 ReactiveX 홈페이지에 가니 지원 목록이 ㄷㄷ하다. 그냥 모든 언어를 지원한다고 보면 될 것 같다.
ReativeX란
ReactiveX는 Observable 시퀀스를 사용하여 비동기 및 이벤트 기반 프로그램들을 작성하는 라이브러리라 한다. 그리고 동기와 비동기, 싱글과 멀티에 따라 나뉜다.
| single items | multiple items | |
|---|---|---|
| synchronous | T getData() | Iterable<T> getData() | 
| asynchronous | Future<T> getData() | Observable<T> getData() | 
Observables는 비동기 처리에 대한 광대한 코드를 줄여주며 어떤 유스케이스에서도 사용될 수 있는 단일 추상이라 한다.
| event | Iterable (pull) | Observable (push) | 
|---|---|---|
| retrieve data | T next() | onNext(T) | 
| discover error | throws Exception | onError(Exception) | 
| complete | !hasNext() | onCompleted() |