Android(Kotlin)

liveData vs stateFlow

개복치 개발자 2023. 9. 15. 03:20

liveData와 StateFlow에 대한 간단한 예제를 만들어보겠습니다.

 

온라인에 찾아보면 

 

1. 초기값을 가지고 안가지고 차이

2. 안드로이드 프레임워크(Activity/Fragment)에 종속되었나 종속되지 않았나의 차이

 

라고 나옵니다.

 

일단 1번부터 알아볼까요?

 

1. 초기값을 가지고 안가지고 차이

 

초기값을 안가진다는게 뭘까요?

 

간단하게 LiveData를 만들어보겠습니다.

 

MutableLiveData<Int>()

MutableLiveData<Int>(0)

 

차이에 따라 null 이 나오냐 안나오냐 차이가 있습니다.

 

livedatad와 stateFlow를 사용할 때 입니다.

 

또한 Flow를 사용하기 때문에 유사하게 사용할 수 있습니다.

 

 

 

implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.2"

 

 

2. 프레임워크에 의존적이지 않음

 

간단하게 클린아키텍처에서는 

 

Domain Layer  -> 비즈니스 로직

Presentation Layer -> UI 로직

Data Layer -> 데이터 소스와 상호작용

 

이렇게 생각해보면 

 

Domain Layer에서 비즈니스 로직을 설계하고 있는데

 

여기에서는 안드로이드 플랫폼에 의존적이지 않게 설계해야 하는데, livedata보다 stateFlow를 사용하는 것이 적절합니다.

 

간단한 예제를 만들어보겠습니다.

 

'Android(Kotlin)' 카테고리의 다른 글

Sealed Class  (0) 2023.07.15
의존성 주입이란?(DI)  (0) 2023.06.12
Compose surface wrapContentSize  (0) 2023.04.26
Compose clickable / padding  (0) 2023.04.26
Compose Size  (0) 2023.04.26