목록 보기
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 의존성 줄이는 대안 검토

다음 읽기

#Android 주제를 다룬 다른 회사 글

LiveData에서 Flow로 변형해보기 - LiveData -> Flow(StateFlow & SharedFlow)

Android에서 기존 LiveData를 Flow 계열로 옮겨 적용한 경험을 소개하는 글입니다. StateFlow와 SharedFlow를 설명하기 위해 먼저 LiveData의 개념을 정리합니다.

카카오헤어샵
카카오헤어샵
프론트엔드

댓글 0

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

댓글을 불러오는 중...