컴퓨터공부/RxJava 5

observeOn vs subscribeOn

subscribeOn : 현재 Observable가 시작하는 스레드를 지정한다.(지정하지 않을 경우 현재 Observable을 호출하는 스레드를 따라간다.) : 여러번 호출 할 경우 첫번째 것만 사용된다. observeOn : 'observeOn() 구문' 아래에 나올 구문들의 스레드를 지정한다. : .observeOn() 안의 스레드는 ui 스레드나, background 스레드 모두 지정할 수 있다. 일반적인 사용 : subscribeOn()에서 background 스레드(Schedulers.computation(), Schedulers.io()) 를 지정하여 데이터를 모으고, 데이터를 UI에 보여줄 때 observeOn() 을 이용해서 ui 스레드로 변경해서 보여준다. 예시 ) Observable.j..

매우 간결하고 파워풀한 RxJava 이벤트 버스(Super simple event bus with RxJava and Kotlin)

싱글톤으로 아래를 선언하고, main 처럼 사용하면 됩니다. 장점은 클래스 타입에 따라서 event가 발생하게 되므로 데이터 클래스 관련 처리를 callback처럼 사용할 수 있습니다. 예를 들어, thread1 에서 서버나 db 데이터를 가져 오고 그것을 mainthread로 가져 오려고 할 때, publish()를 사용하면 adapter에 데이터를 가공 후 바로 저장할 수 있습니다. 특히.. 서버나 db에서 데이터를 가져 올 때, 몇 개를 가져 오는지 알 수 없어서 항목을 하나씩 업데이트 해야 할 때 좋을 것 같습니다. import io.reactivex.Observable import io.reactivex.subjects.PublishSubject // 혹은 implementation "io.re..

rxJava2 vs rxKotlin vs rxAndroid(What is the difference between them?)

결론 부터 말하면, rxJava2, rxKotlin, rxAndroid는 Reactive Extensions(혹은 ReactiveX) 를 확장해 놓은 라이브러리이다. 쉽게 말해, 다 같은 놈이란 것이다. 이름이 여러개인 이유는, 다른 목적으로 생성 되었기 때문이다. 안드로이드에서 Kotlin을 사용해도 rxJava2를 그냥 써도 된다. 아무 이상 없다. 하지만 rxKotlin을 쓰면 보일러 플레이트 같은게 개선 되었다고 한다. 참고로, 안드로이드에서 Kotlin을 사용할 때, RX를 쓰려면 한 줄 implementation "io.reactivex:rxkotlin:2.0.2" rxjava2를 쓰려면 두 줄이 필요하다. implementation 'io.reactivex.rxjava2:rxjava:2.2...