비동기 처리를 RxJava에서 Coroutine / Flow로 옮기며 배운 것들.

핵심 개념

  • suspend 함수는 스레드를 블로킹하지 않는다
  • Flow는 콜드 스트림이다
  • StateFlow / SharedFlow로 UI 상태를 노출한다
viewModelScope.launch {
    repository.observeUser()
        .collect { user -> _state.value = user }
}

간결하고 테스트하기 쉬운 코드가 되었다.