본문 바로가기

안드로이드/코루틴

(2)
[안드로이드 Coroutine Flow] 코틀린 Flow에 대해서 안드로이드 앱 개발에 있어서 비동기 프로그래밍은 중요한 부분을 차지합니다. UI가 반응성 있게 동작하도록 하기 위해서 네트워크 요청, 데이터베이스 작업 등 시간이 걸리는 작업을 메인 스레드에서 분리해서 처리하게 됩니다. 이러한 작업을 리액티브 프로그래밍으로 처리하면 코드 관리 측면에서 유리해지는데, 안드로이드 코틀린 Coroutine의 Flow는 데이터 스트림으로써 리액티브 프로그래밍을 지원합니다. 1. Kotlin Flow 소개 코틀린 Flow는 코루틴을 기반으로 한 리액티브 프로그래밍을 가능하게 하며, 시간에 따라 여러 값을 방출할 수 있는 콜드 스트림(cold stream)입니다. 콜드 스트림은 아래와 같은 특징이 있습니다. 데이터를 내부에서 생성 소비자가 구독할 때, 데이터를 생성 하나의 생산자에..
[안드로이드 Coroutine Flow] State Flow 원자성 보장 안드로이드의 State Flow는 Kotlin Coroutine의 일부로, 상태 관리를 위해 만들어진 Flow입니다. 상태가 없는 Flow에 상태를 보유할 수 있는 기능을 추가해서 개발자가 상태를 보다 쉽고 편리하게 관리할 수 있게 해 줍니다. 이번 포스팅에서는 이러한 State Flow를 사용할 때 발생할 수 있는 문제와 원자성을 보장하기 위한 해결방법에 대해 알아보겠습니다. 1. StateFlow 사용방법 안드로이드에서 UI에 상태를 유지하고 변경할 때, StateFlow를 많이 사용합니다. 예를 들어, 아래와 같이 data class로 생성된 상태 홀더를 StateFlow로 관리할 수 있습니다. data class UiState( val name: String = "", val checked: Bo..