목록 보기
Android Kotlin StateFlow 도입기
프론트엔드

Android Kotlin StateFlow 도입기

올리브영
올리브영
2022년 12월 14일

두줄요약

Kotlin Flow와 StateFlow를 도입한 경험을 바탕으로 LiveData의 한계와 대체 가능성을 정리했습니다. 클린 아키텍처와 생명주기 대응 관점에서 Flow 활용 방법도 살펴봤습니다.

핵심 내용

  • 안드로이드 Kotlin Flow 도입 경험과, LiveData를 대체할 수 있는 StateFlow의 개념 정리
  • LiveData의 플랫폼 종속성과 계층 분리 한계를 짚고, 클린 아키텍처에서 Flow 계열로 옮길 수 있는 배경 설명
  • StateFlow는 항상 최신 값을 가지는 Hot Stream, SharedFlow는 이벤트성 값 전달에 적합한 구조로 구분

구조와 흐름

  • StateFlow는 초기값을 요구하고 여러 collector가 최신 상태를 공유
  • SharedFlow는 초기값 없이 replay, buffer, overflow 설정으로 이벤트를 다루는 방식
  • Flow를 StateFlow로 바꿀 때 stateIn, scope, SharingStarted, initialValue 사용

적용해볼 점

  • ViewModel에서는 MutableStateFlow와 update, collectLatest 조합으로 UI 상태 관리
  • Activity와 Fragment에서는 launchWhenStarted, repeatOnLifecycle로 생명주기 대응
  • 클린 아키텍처와 모듈화 환경에서 LiveData 의존성 줄이는 대안 검토

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...