RxJava 2.x 사용 시 발생하는 UndeliverableException 해결 방법은?

RxJava 2.x 사용 시 발생 가능한 버그를 소개하고, 해결 방법을 소개한다.

RxJava 2.x 버전으로 올리고 나서 UndeliverableException이 발생하는 경우가 생겼다.

이해를 돕기 위해 오류 코드를 그대로 추가하고, 이 오류가 왜 발생하는지와 어떻게 해결할지를 정리한다.

Read More

RxJava와 Kotlin Coroutines 비교해보기

RxJava는 안드로이드 개발에 없어서는 안 될 존재가 되었다. 많은 개발자들이 사용하고 있으며, 구글도 RxJava 관련한 API를 제공한다. 하지만 RxJava를 이해하기까지 상당한 시간이 걸린다.

다음 코드를 이해하려면 과연 몇 개의 정보를 이해하고 있어야 할까?

Flowable.range(0, 10)
        .observeOn(Schedulers.io())
        .subscribeOn(Schedulers.io())
        .map {
            it + 1
        }
        .filter {
            it > 4
        }
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(
                {
                    println(it)
                    // UI 에서 처리
                },
                {
                    it.printStackTrace()
                    // 오류 처리
                }
        )

Read More

Kotlin Coroutines 안드로이드 OnClick에 활용하기

이전 글에서 Coroutines과 안드로이드에 적용하기 위한 플러그인 적용 방법을 알아보았다.

이번 글에서는 적용한 코드를 좀 더 자세하게 알아보고, Android에서 onClick과 함께 사용할 경우 유용한 Coroutine 사용 방법을 알아본다.

Read More

Kotlin Coroutines을 알아보고, 안드로이드에 library 적용하기

async/await 이야기가 가장 흔한 coroutine. 안드로이드 개발자도 이제 coroutine을 적용할 수 있다. kotlin에 Coroutine을 제공하고 있는데, Kotlin 1.1부터 제공하고 있다. 다만 아직은 별도 라이브러리를 통해 Coroutine을 제공하고 있다.

추후 Coroutine은 1.3부터 공식적으로 Kotlin에 포함되어있어 별도의 라이브러리 추가 없이 사용이 가능해지게 된다.

이번 글에서는 Kotlin을 간략하게 알아보고, 안드로이드에서 사용 가능하도록 Coroutine 라이브러리 적용하는 방법을 소개한다.

Read More

Kotlin 더 잘 활용하기

러닝 커브가 낮은 Kotlin 학습 방법 및 적용 방법은 다양하다. Java와 Kotlin 언제든 혼용해서 사용할 수 있는 매력적인 언어이다.

그렇다고 안드로이드 전용의 개발 언어는 아닌데 JVM 위에서 동작하는 대부분에 적용이 가능하며, 더 나아가 Kotlin native를 통해 LLVM 컴파일을 할 수 있도록 배포 중인데 우선 iOS에서 이를 활용할 수 있는 게 목표로 보인다.

이런 코틀린을 잘 활용하려면 어떡해야 할까? 수많은 라이브러리가 배포 중이지만 어떻게 구현되어있는지 알면 더 좋지 않을까?

그리하여 3가지 구성요소를 정리해보려고 하는데 아래와 같다.

Read More