
클린 아키텍처를 공부하면서 안드로이드에 의존성이 있는 LiveData는 순수 Java 및 Kotlin 코드로만 구성되어야 하는 도메인 레이어에는 사용하기 적합하지 않다는 사실을 알게 되었다. 그래서 이번 기회에 LiveData의 개념을 다시 한번 잡고 LiveData의 한계와 단점을 알아보고 State Flow의 기본 개념에 대해 포스팅 해보려고한다.
메모리 누수가 발생하지 않는다실시간으로 구독자에게 통지할 수 있다.collector에 내보내는 Observable한 State holder Flow 입니다.SharedFlow의 한 종류이며, LiveData에 가장 가깝다.colletor를 지원한다. -> flow를 공유할 수 있다.collector수에 상관없이 항상 구독하는 것의 최신 값을 받는다.HotStream 방식으로 collect할 때마다 flow가 재실행되지 않는다.HotStream & ColdStream
Cold Stream:
하나의 소비자(Consumer)에게 값을 보냅니다.
생성된 이후에 누군가 소비하기 시작하면 데이터를 발행한다.
Hot Stream:
하나 이상의 소비자(consumer)에게 값을 보낼 수 있다.
데이터 발행이 시작된 이후 모든 소비자에게 같은 데이터를 발행하고 구독자가 없는 경우에도 데이터를 발행한다.
