AI Briefing

Android Kotlin StateFlow 도입기

·2022.12.14 19:32

핵심 내용

클린 아키텍처 구현을 위해 Android 개발 과정에서 LiveData를 StateFlow로 교체한 경험을 공유한다.

자세히 보기

기존에 사용하던 LiveData는 Android 컴포넌트의 생명주기를 인식한다는 장점이 있지만, Android 플랫폼에 종속적이라는 한계가 있습니다. 이로 인해 플랫폼 독립적인 Domain Layer에서 사용하기 어렵고 모듈화 시 의존성 문제가 발생할 수 있습니다.

이를 해결하기 위해 Kotlin Flow의 확장 형태인 StateFlow를 도입했습니다. StateFlow는 다음과 같은 특징을 가집니다.

  • Hot Stream 방식으로, 항상 최신 상태 값을 유지하며 여러 Collector를 지원함
  • 초기값이 반드시 필요하며, 구독 시점에 항상 최신 값을 전달함
  • SharedFlow와 달리 상태를 보유하므로 UI 상태 노출에 효과적임

실제 적용 시 ViewModel에서는 MutableStateFlow를 통해 상태를 업데이트하고, Activity/Fragment에서는 lifecycleScope와 repeatOnLifeCycle 등을 사용하여 생명주기에 안전하게 데이터를 수집(collect)하도록 구현했습니다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.