SH's Devlog — SH's Devlog

전체 글

공부한 내용을 정리하는 개발 기록 블로그
Android/RxJava

[RxJava] 조합 연산자(Combining Operators)

조합 연산자는 두개의 데이터를 조합해서 새로운 Observable을 만드는 연산자입니다. combineLatest combineLatest는 두개의 Observable에서 각각 데이터가 생성될 때 데이터를 조합해서 전달하는 연산자입니다. 첫 데이터는 두개의 Observable에서 모두 데이터가 생성됐을 때 전달이 되고, 그 이후에는 각각의 Observable에서 데이터가 생성 될 때 데이터를 조합해서 전달합니다. 예를 들면, Validation Check를 할 때에 사용할 수 있습니다. fun main() { //combineLatest val observable3 = Observable.interval(1000L, TimeUnit.MILLISECONDS) val observable4 = Observab..

Android/RxJava

[RxJava] 분류 연산자(Filtering Operators)

이번 포스트에서는 분류 연산자에 대해 정리하겠습니다. 분류 연산자는 통지된 데이터를 필터링 해주는 연산자입니다. debounce debounce는 짧은간격으로 연속된 이벤트가 발생하면 데이터를 전달하지 않다가 마지막 데이터가 생성된 후, 일정시간동안 다른 데이터가 생성이 되지 않는다면 데이터를 전달하는 연산자 입니다. e.g) 자동검색 등에 사용 첫번째 예시는, interval로 인해 250 밀리초 마다 데이터가 생성이 되고 debounce는 200 밀리초 로 걸려있지만, 200 밀리초 이후 계속 데이터가 들어오게 되므로 모두 정상적으로 구독이 되는 실행결과가 나타납니다. 두번째 예시는, interval 대신 intervalRange를 이용하여 250 밀리초 마다 데이터가 생성이 되고 debounce는 ..

Android/RxJava

[RxJava] 변환 연산자(Transforming Operators)

변환 연산자는 만들어진 데이터의 흐름을 변환하는 연산자 입니다. buffer buffer는 데이터를 바로 전달하지 않고 buffer의 size만큼 모일 때 까지 기다렸다가 List의 형태로 데이터를 방출하는 연산자입니다. count는 몇개씩 모아서 방출할 건지를 정하는 변수이고 skip은 몇개의 데이터가 모아졌을 때 전달할 건지 정하는 변수입니다. 뒤로가기 키를 눌렀을 때 호출되는 메소드인 onBackPressed()에서 buffer 연산자를 이용해서 두개의 시간값을 비교해서 뒤로가기를 빠르게 눌렀을 때 종료하는 기능을 만들 수 있습니다. fun main() { Observable.fromIterable(0..10) .buffer(2, 1) .subscribe { println(it)} Thread.sl..

Android/RxJava

[RxJava] 생성 연산자(Creating Operators)

이번 포스트에서는 생성 연산자를 정리하겠습니다. just just는 인자로 받은 데이터들을 순서대로 통지하는 Observable을 생성하는 연산자 입니다. 주의할 점은, just 연산자는 Observable의 생성시점이 선언한 시점이기 때문에 원하는 동작으로 수행되지 않을 수 있으므로 사용할 때 주의해야 합니다. 그러므로, just 연산자 혹은 from 연산자를 사용해야할 경우에는 Observable을 지연생성해주는 create, fromCallable을 사용하거나 defer로 감싸주는 것을 권장합니다. fun main() { Observable .just(0,1,2,3) .map { it * 2} .subscribe { println(it) } } 실행결과 craete create는 Observable..

Android/RxJava

[RxJava] 생산자와 소비자 정리

RxJava는 데이터를 만들고 통지하는 생산자와 통지된 데이터를 받아 처리하는 소비자로 구성됩니다. 이 생산자를 소비자가 구독해 생산자가 통지한 데이터를 소비자가 받게 됩니다. RxJava에서 이 생산자와 소비자의 관계는 크게 두 가지로 나뉩니다. 하나는 Reactive Streams를 지원하는 Flowable과 Subscriber, 다른 하나는 Reactive Streams를 지원하지 않고 배압 기능이 없는 Observable과 Observer입니다. 구분 생산자 소비자 Reactive Streams 지원 Flowable Subscriber Reactive Streams 미지원 Observable Observer Flowable은 Reactive Streams의 생산자인 Publisher를 구현한 클래..

반응형
seunghwaan
SH's Devlog