Language/Reactive

    RxAndroid

    [1] RxAndroid 소개 RxAndroid는 RxJava에 최소한의 클래스를 추가하여 안드로이드 앱에서 리액티브 구성 요소를 쉽고 간편하게 사용하게 만드는 라이브러리입니다. 기본적인 UI 핸들링, 비동기 데이터 처리, REST API 라이브러리에 RxJava 비동기 처리 기존 안드로이드에서 발생하는 다음과 같은 문제를 안드로이드의 비동기 처리 및 에러 핸들링 수많은 핸들러와 콜백 때문에 발생하는 디버깅 문제 2개의 비동기 처리 후 결과를 하나로 합성하는 작업 이벤트 중복 실행 다음 특징을 통해 해결해준다. 간단한 코드로 복잡한 병행(concurrency)프로그래밍을 할 수 있음 비동기 구조에서 에러를 다루기 쉬움 함수형 프로그래밍 기법도 부분적으로 적용할 수 있음 1. 리액티브 라이브러리와 API ..

    [리엑티브 생산자 Publisher 3] Single & Maybe & Completable

    대량의 데이터가 아닌 최대 1건 이하만 데이터를 통지하는 생산자들 이다. Single 데이터를 1건만 통지하거나 에러를 통지한다. 데이터 통지 자체가 완료를 의미하기 때문에 완료 통지는 하지 않는다. 데이터를 1건만 통지하므로 데이터 개수를 요청할 필요가 없다. onNext( ), onComplete( )가 없으며 이 둘을 합한 onSuccess( )를 제공한다. Single의 대표적인 소비자는 SingleObserver이다. 클라이언트의 요청에 대응하는 서버의 응답이 Single을 사용하기 좋은 대표적인 예다. Single 클래스를 사용하여 현재 날짜와 시각을 통지하는 예제 create 연산자 사용 예제 /*** SingleOnSubscribe 생산자 */ Single single = Single.cr..

    [리엑티브 생산자 Publisher 2] Flowable & Observable (feat. 배압전략)

    생산자 Flowable vs Observable 비교 Floawable Observable Reactive Streams 인터페이스 구현 O 구현 X 데이터 처리 Subscripber 에서 처리 Observer 에서 처리 배압 기능 (데이터 갯수 제어) O X Subscription 으로 전달받는 데이터 갯수를 제어할 수 있음 배압기능이 없기때문에 데이터 갯수를 제어할 수 없음 구독 해지 Subscription로 해지 Disposeable으로 해지 Flowable 생산자 (배압 전략) 배압이란, Flowable(생산자)에서 데이터를 통지하는 속도가 Subscriber(구독자)에서 통지된 데이터를 처리하는 속도보다 빠를 때 밸런스를 맞추기위해 데이터 통지량을 제어하는 기능을 말한다. 데이터 통지속도와 데이..

    [리엑티브 생산자 Publisher 1] Cold Publisher & Hot Publisher

    Cold Publisher & Hot Publisher Cold Publisher(차가운 생산자) 생산자는 소비자가 구독 할때마다 데이터를 처음부터 새로 통지한다. 데이터를 통지하는 새로운 타임 라인이 생성된다. 소비자는 구독 시점과 상관없이 통지된 데이터를 처음부터 전달 받을 수 있다. void ColdPublisher(){ Flowable flowable = Flowable.just(1, 3, 5, 7); flowable.subscribe(data -> System.out.println("구독자1: " + data)); flowable.subscribe(data -> System.out.println("구독자2: " + data)); } Hot Publisher(뜨거운 생산자) : 생산자는 소비자 수..

    Processor와 Subject

    Processor와 Subject란? Cold Publisher와 Hot Publisher 리뷰 PublishSubject AsyncSubject BehaviorSubject ReplaySubject

    RxJava로 기존 Android code 개선하기

    nittaku.tistory.com/179 Rxandroid를 쓰는 이유 1. AsyncTask와 비교해서 설계적인 면 + 코드 수 + UI로직 처리 + 연쇄 API호출이 가장 큰 장점이다. Retrofit과 Retrolambda라는 시너지좋은 라이브러리를 함께 사용한다고 가정했을 때, AsyncTask에서는 doInBac nittaku.tistory.com 1. thread 동기화처리 Async Task 2. UI 다루기 클릭의 추상화 observable 병합 Observable 컴바인 3. Eventbus Subject 객체는 Observable과 Observer 모두 가능하므로, 데이터를 받고 전달해주는 Eventbus 가 될 수 있다. 4. 데이터 검색 Realm에 저장된 데이터를 가져올때, .a..