rxjava 5

[차근차근 RxJava 기록 5] Observable을 생성하는 연산자

Observable으ㄹ 생성하는 연산자로는 defer, empty, never, interval, range, timer 연산자가 있다. defer 연산자 defer 연산자는 옵서버가 구독할 때까지 Observable의 생성을 지연시킨다. subscrbie() 메소드를 호출할 때 Observable 아이템을 생성한다. empty, never 연산자 아이템을 발행하지 않는 공통점이 있지만 never 연산자는 onComplete() 호출을 해야 종료가 된다는 차이점이 있다. Observable.empty() .doOnTerminate { Log.d(TAG, "empty 종료") } .subscribe() Observable.never() .doOnTerminate { Log.d(TAG, "never 종료")..

Android/RxJava 2022.01.24

[차근차근 RxJava 기록 4] Cold Observable과 Hot Observable

Cold Observable Observable에 구독을 요청하면 아이템을 발행하기 시작한다. 해당 아이템은 임의의 종료시키지 않는 이상 여러 번 요청하여도 처음부터 끝까지 발행하는 것을 보장한다. val src = Observable.interval(1, TimeUnit.SECONDS) src.subscribe { value -> System.out.println("#1: " + value) } Thread.sleep(3000) src.subscribe { value -> System.out.println("#2: " + value) } Thread.sleep(3000) // #1: 0 // #1: 1 // #1: 2 // #1: 3 // #2: 0 // #1: 4 // #2: 1 // #1: 5 //..

Android/RxJava 2022.01.24

[차근차근 RxJava 기록 3] 다양한 형태의 Observable

Single Observable과 다르게 단 하나의 아이템만 발행한다. 따라서 just() 연산자는 하나의 인자만 가질 수 있다. Single.just("Hello World") .subscribe(System.out::println) create() 연산자를 사용 시에는 데이터를 한 번만 발행하므로 onNext()와 onComplete()을 호출하는 대신 onSuccess(T)을 호출한다. 오류 같은 경우에는 onError() 호출하는 것은 동일하다. Single.create { emitter -> emitter.onSuccess("Hello") }.subscribe(System.out::println) Observable -> Single Observable에서 Single로 변환하는 방법으로는 al..

Android/RxJava 2022.01.21

[차근차근 RxJava 기록 2] Observable의 이벤트와 생성

Observable을 구독하는 Observer가 존재하고 Observable이 순차적으로 발행하는 데이터에 대해서 onNext(), onComplete(), onError() 3가지 이벤트를 사용하여 반응을 한다. 3가지 이벤트는 Emitter라는 인터페이스에서 선언이 되며 데이터 및 오류는 null을 허용하지 않는다. onNext() Observable에서 Observer까지 한 번에 하나씩 순차적으로 데이터를 발행 onComplete() 데이터의 발행이 끝났음을 알리고 더 이상 onNext() 호출이 발생하지 않음 onError() 오류가 발생했음을 Observer에 전달 Observable 생성 Operator(연산자)라고 불리는 여러 정적 메서드를 통해 기존 데이터를 참조, 변형하여 Observa..

Android/RxJava 2022.01.21

[차근차근 RxJava 기록 1] RxJava는 무엇인가?

RxJava에서 기초 오브 기초만 먼저 정리해보았다. RxJava란? ReactiveX를 Java로 구현한 이벤트 기반 비동기 프로그래밍을 위한 라이브러리이다. 매 이벤트마다 그에 대응하는 동작을 정의하는 방식이었던 콜백 방식과 달리 발생하는 이벤트를 이벤트 스트림에 전달하여 이벤트 스트림을 관찰하다가 원하는 이벤트를 감지하면 이에 따른 동작을 수행한다.(뭔가 회전초밥과 같은 느낌이...) 참고로 RxAndroid는 RxJava에 안드로이드용 스케쥴러 등 몇 가지를 클래스를 추가해 안드로이드 개발에 용이하게 해주는 라이브러리이다. RxJava는 또한 반응형 프로그래밍이라고 한다. 반응형 프로그래밍이란 주변 환경과 끊임없이 상호 작용을 하는 프로그래밍이다. 환경이 변하면 이에 반응하여 동작하도록 하는 프로..

Android/RxJava 2022.01.19