RxJava
함수형 프로그래밍, 비동기 작업, 서버연동, 옵저버 패턴, 마블 다이어그램.
학습 곡선이 높다고 표현한다. 어떤식으로 작업을 해야 쉽게 이해가 될 수 있을까?
기본
Observable : 데이터 생성을 위한 시작 클래스. 정적 팩토리함수로 인스턴스를 생성.
just : 데이터를 발행하는 정적팩토리 함수.
데이터를 발행하려는 메서드.하나의 인자 또는 최대 10개 까지의 같은 타입의 인자를 받음.
subscribe()를 호출해야 실제 데이터 발행이 진행됨.
subscribe : 데이터를 구독하는 함수. Observable에 데이터를 발행하라고 요구 (이함수가 없으면 RxJava 가 실해되지 않는다.)
Observable의 팩토리 함수
create(), just(), from(),
fromArray(), fromIterable(), fromCallable(), fromFuture(),
interval(), range(), timer(), defer()
Single : 오직 1개의 데이터만 발행하도록 한정됨.
보통 결과가 유일한 서버api를 호출할때 사용.
배열 및 리스트로 값을 받아도 1번의 값만 동작.
Flowable : 뜨거운 Observable 에서 데이터를 처리할때 배압을 고려할때 사용.
배압은 Observable에서 테이타를 발행하는 속도와 구독자의 처리하는 속도의 차이가 발생할때 사용.
Observable과 같은 방법으로 사용 하여도 된다.
기본 예제
//자바 8 메서드 레퍼런스활용
Observable.just("start Rxjava", "Rxjava end").subscribe(System.out::println);
//람다식 적용.
Observable.just("start Rxjava", "Rxjava end").subscribe(
s -> {
System.out.println("실행결과 : " + s);
}
);
// 람다식 적용안함.
Observable.just("start Rxjava", "Rxjava end").subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
System.out.println("실행결과 : " + s);
}
});
Single.just("fsdjaklfjasdklf").subscribe(System.out::println);
Flowable.just("start Rxjava", "Rxjava end").subscribe(System.out::println);
연산자 활용
interval() : 일정시간 간격으로 데이터 흐름을 생성.
주어진 시간을 간격으로 0부터 1씩 증가하는 Long 객체를 발행.
'Android > study' 카테고리의 다른 글
MVP 패턴 (0) | 2019.04.25 |
---|---|
안드로이드 코틀린 프로젝트 디펜던시 (0) | 2019.01.25 |
안드로이드 액티비티 및 프래그먼트. (0) | 2018.09.27 |
레트로핏, okhttp (0) | 2018.08.27 |