본문 바로가기

빈 구멍 채우기

[Kotlin] Repository에서는 LiveData 보다는 Flow 가 적합하다.

betterprogramming.pub/no-more-livedata-in-repositories-in-kotlin-85f5a234a8fe

 

No More LiveData in Repositories in Kotlin

Learn how to replace LiveData with Kotlin Flow

betterprogramming.pub

LiveData는 수명주기를 인식한다.(lifecycle-aware)

LiveData의 주 목적은 data의 집합을 observe하는 것이다. 이 observe는 메인 쓰레드에서만 이뤄진다.

 

Flow는 비동기적으로 연산들을 수행하고 필요할 때마다 여러번 값을 내보내도록 아예 설계되었다. channel과 다르게 cold stream이기 때문에 collect되어야지만 flow builder가 실행된다. lifecycler에 구속되지도 않고 LiveData보다 제어할 수 있는 기능이 더 많다.

 

결론 : ViewModel과 Repository 사이에서는 LiveData보다 Flow가 더 적합하다.

 

블로그 저자가 그린 blueprint 따라 그려봤다.