Android DataBinding에서 활용하는 LiveData, Observable, StateFlow를 알아본다.

이전에 작성한 글에서 LiveData의 내부 동작을 통해 중복 데이터 사용에 대해서 살펴보았다.

이번 글에서는 LiveData에 대해서 생각하는 부분을 나열하고, DataBinding 시 사용할 수 있는 또 다른 Observable, StateFlow를 간단하게 알아본다.

RxJava는 직접적이지는 않지만 간접적으로 활용해야 한다.

DataBinding을 활용하거나, observe를 할 때 어떤 도구를 활용하는 게 좋을지 가이드를 해보려고 한다.

이 글에서 도움 될 문서는 아래와 같습니다.


이 글에서 알아볼 내용

  • LiveData의 장? 단점?
  • Observable

Read More

Kotlin coroutine suspend? 디컴파일을 통해 알아보자.

Kotlin 코루틴에는 suspend 함수를 활용할 수 있습니다. suspend가 추가되면 코루틴에서 동작하도록 강제하게 되는데 단순 강제만은 아닙니다.

코루틴이 종료되면 suspend 함수 역시 종료되어야 합니다.(suspend를 활용한다고 무조건 종료하는 것은 아닌데, 다음에 별도로 작성해보겠다.)

이번 글은 아래의 suspend 함수를 디컴파일해보고, suspend 키워드가 어떤 일을 하는지 직접 구현해본다면 어떻게 접근 가능할지 살펴보겠습니다.

suspend fun doSomething(): Int {
  delay(1000L)
  return 100
}

이 글에서 도움 될 문서는 아래와 같습니다.


이 글에서 알아볼 내용

  • suspend 함수 사용 법
  • suspend 함수 디컴파일
  • Continuation 살펴보기

Read More

Android LiveData의 사용법과 내부 코드를 통한 UI 처리, 중복 처리 등 살펴보기

Android 개발 시 자주 활용하는 LiveData. LiveData의 데이터 처리를 알아보는 글이다.

이 글에서 도움 될 문서는 아래와 같다.


이 글에서 알아볼 내용

  • LiveData 사용법을 알아본다.
  • MutableLiveData와 LiveData의 구분?
  • LiveData는 항상 UI로 처리하는 코드를 살펴본다.
  • 중복 데이터의 위험성을 알아본다.

Read More

Retrofit2와 Coroutines 사용 시 스케줄러는 어떻게 처리할까? - 내부 코드로 알아보자.

Retrofit 사용 시 알아두면 좋은 것이라는 주제로 만든 영상이다.

별건 아니고, Retrofit의 통신 방식 중 coroutines을 활용했을때 알아두면 좋은 부분을 정리했던 영상이다.

이 글에서 텍스트로 한 번 더 정리하고, 이 글에 도움 될 문서는 아래와 같다.


이 글에서 알아볼 내용

  • Corotuines과 Retrofit2을 함께 사용할 때 스케줄러 처리가 궁금하다면 읽어보시길
  • Retrofit2의 KotlinExtensions.kt를 알아본다.
  • suspendCancellableCoroutine에 대해서 알아본다.

Read More

Callback으로 전달받은 데이터를 Coroutines의 Channel로 처리해보자.

Callback 이벤트로 받은 데이터를 Coroutines의 Flow를 활용한 방법에 대해서 소개했었다. 최근 Medium에서 Channel을 사용한 방법을 소개한 글이 있어 Channel을 사용하는 방법을 정리해보려고 한다.

여기에서 사용한 샘플은 단순한 테스트를 한 것이고, 네트워크가 포함되어 있지 않다.

다만 단순한 테스트로도 발생하는 문제가 있어 정리해두려고 한다.

참고한 글은 Kotlin Channel and WebSocket Complete Example (Also Why Not Flow)이다.

이 글에 도움 될 문서는 아래와 같다.


이 글에서 알아볼 내용

  • Flow와 Channel의 간단한 사용법을 알아본다.
  • Callback으로 전달된 데이터를 Channel으로 넘기기 위한 방법을 알아본다.
  • 데이터의 순서가 보장되는지 확인해보고, 해결 방법을 알아본다.

Read More