0. 정의

Coroutine에서 Flow는 단일 값만 반환하는 suspend function과 달리 여러 값을 순차적으로 내보낼 수 있는 유형. - Android Developers

Flow에서 생산자는 데이터를 Flow에 입력하고 소비자는 Flow에서 데이터를 수집하는 역할을 함.

Android에선 데이터 소스나 레포지토리가 생산자, 최종적으로 화면에 데이터를 표시하는 UI가 소비자 역할.


1. 필요성

MVVM 패턴을 적용하기로 한 이상, View에서 State나 Bussiness Logic을 소유해선 안 됨.

따라서, 단순히 UI에서 1초 씩 증가 시키는 방법을 사용할 수 없음.

만약 UI가 타이머 비즈니스 로직을 소유한다면?


2. 문제

Timer Feature를 따로 구현하여야 하는데, Flow를 사용하지 않으면 하기 문제가 발생한다는 걸 알게 됨.

메모리 누수 문제

그냥 remember를 사용하면?