<aside> 💡 안드로이드에서 쓰이는 rxJava에 대한 정리 및 참고자료 모음입니다.
</aside>
데이터 흐름과 변화 전파에 중점을 둔 프로그래밍 패러다임. 프로그래밍 언어로 데이터 흐름을 쉽게 표현할 수 있어야 하고, 데이터 흐름을 통해 하부 실행 모델이 자동으로 변화를 전파할 수 있는 것을 의미한다.
다음의 세 가지 요소로 구분된다. RX = Observable + Observer + Schedulers
Observable<Integer> observable = Observable
.just(1, 2, 3, 4, 5)
.filter(new Func1<Integer, Boolean>() {
@Override public Boolean call(Integer integer) {
//check if the number is odd? If the number is odd return true, to emmit that object.
return integer % 2 != 0;
}
});
Observer<Integer> observer = new Observer<Integer>() {
@Override public void onCompleted() {
System.out.println("All data emitted.");
}
@Override public void onError(Throwable e) {
System.out.println("Error received: " + e.getMessage());
}
@Override public void onNext(Integer integer) {
System.out.println("New data received: " + integer);
}
};
Subscription subscription = observable
.subscribeOn(Schedulers.io()) //observable will run on IO thread.
.observeOn(AndroidSchedulers.mainThread()) //Observer will run on main thread.
.subscribe(observer); //subscribe the observer