ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RxKotlin과 RxAndroid 알아보기
    Android/RxJava 2019. 6. 18. 16:07

    RxJava와 어떤 차이점이 있을까..?

    뭣도 모르고 그냥 아 Rx니깐 같이 쓰겠구나~ 싶어서 사용하고 있었지만

    그래도 뭐가 추가되었고 내가 쓰고 있는가? 싶어서 한번 알아보았다.


    RxKotlin
    기본적으로 Kotlin의 Extension을 이용하여 좀더 편리한 Rx 사용을 권장하기 위해서
    생긴 라이브러리 이며 RxJava 1.x와 RxJava 2.x를 모두 지원한다.

    먼저 변경된 점은 github에서 보면 다 알 수 있고 여기서는 일부만 건들여 보도록 하겠다.

    1. Observable 생성

    Observable.fromArray(arrayOf(1, 2, 3, 4, 5)) 
    
    arrayOf(1, 2, 3, 4, 5).toObservable() 

    바로 자료형 뒤에 toObservable을 하면 알아서 Observable로 바꾸어 준다
    이외에도 toCompletable, toSingle지원 한다.


    2. 매개변수명 지원 subscribe -> subscribeBy 변경

    arrayOf(1, 2, 3, 4, 5).toObservable().subscribeBy( 
        onNext = {}, 
        onComplete = {}, 
        onError = {} 
    ) 

    3. CompositeDisposable PlusAssign과 Disposable의 addTo() 추가

    val compositeDisposable = CompositeDisposable() 
    compositeDisposable += arrayOf(1, 2, 3, 4, 5).toObservable().subscribeBy( 
        onNext = {}, 
        onComplete = {}, 
        onError = {} 
    ) 
    arrayOf(1, 2, 3, 4, 5).toObservable().subscribeBy( 
        onNext = {}, 
        onComplete = {}, 
        onError = {} 
    ).addTo(compositeDisposable) 

    사실상 baseActivity를 만들어 놓고 처리를 하면 되지만...!

    가장 안쓸꺼 같은 것 중 한개처럼 보인다.


    간단하게 보면 알차게 구성을 해 놓았다..,
    다른것들도 있으니 github서 찾아보면 될 듯 하다
    https://github.com/ReactiveX/RxKotlin


    RxAndroid 

    안드로이드 어플리케이션에서 반응성 컴포넌트를 쉽고 간편하게 작성할 수 있도록 도와준다.

    1. mainThread Observer 관련
    Android에서 비동기 작업을 처리 할 때 가장 일반적인 작업 중 하나는 기본 스레드에서 작업을 하는 것이다.
    예를 들어 View를 수정한다거나 할때 말이다. 일반적으로 AsyncTask를 사용하지만
    RxJava를 사용하면 Observable에 주 스레드를 선언 할 수 있다.

    arrayOf(1, 2, 3, 4, 5).toObservable() 
        .observeOn(Schedulers.computation()) 
        .subscribeOn(AndroidSchedulers.mainThread()) 
        .subscribeBy( 
            onNext = {}, 
            onComplete = {}, 
            onError = {} 
        ) 

    기본적으로 rx를 쓸때 같이 기본적으로 넣어두면 많은 편리를 느낄 수 있을 것 같다.

    댓글

Designed by Tistory.