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 |