본문 바로가기
Android

Android Compose에서 LiveData 대신 State, Flow 써야하는 이유

by kkong93 2023. 5. 26.
반응형

 

LiveData 및 State with Flow를 사용하여 Android 개발에서 유사한 결과를 얻을 수 있지만 각각 고유한 이점이 있으며 사용 사례는 특정 사용 사례에 따라 달라질 수 있습니다. 그러나 Jetpack Compose가 도입되면서 State 및 Flow를 사용하는 것이 여러 가지 이유로 더 관용적이 되었습니다.


단방향 데이터 흐름: Kotlin 흐름은 코루틴 컨텍스트에서 데이터 스트림을 처리하도록 구축되어 비동기 프로그래밍을 쉽게 처리하고 단방향 데이터 흐름을 구축할 수 있습니다.
변환: Flow API에는 LiveData에 없는 map, filter, transform 등과 같은 다양한 연산자가 포함되어 있습니다. 이러한 연산자는 데이터 스트림의 복잡한 변환에 사용할 수 있습니다.
Jetpack Compose와의 원활한 통합: State 및 mutableStateOf는 구성 가능한 함수에서 상태를 유지하는 데 사용됩니다. 수집할 수 있고 변경될 때 재구성을 일으킬 수 있는 변경 가능하고 관찰 가능한 상태를 가질 수 있는 방법을 제공합니다. 결과적으로 Jetpack Compose는 State 및 Flow와 자연스럽게 작동합니다.
다중 수집기: Flow는 다중 수집기를 허용합니다. 즉, 여러 컴포저블이 동일한 흐름에서 수집할 수 있습니다. 반면에 LiveData는 단일 관찰자를 갖도록 설계되었습니다.
수명 주기가 필요하지 않음: Flow에는 수명 주기 인식 구성 요소가 필요하지 않지만 LiveData는 필요합니다. 이로 인해 Flow는 특히 연결된 수명 주기가 없는 상황에서 보다 유연한 선택이 됩니다.

이러한 이점에도 불구하고 LiveData는 수명 주기를 인식하고 Android 수명 주기와 밀접하게 연결되어야 하는 데이터 스트림을 처리할 때 더 나은 선택이 될 수 있으며 observeAsState()를 통해 Jetpack Compose에서 계속 사용할 수 있다는 점에 유의하는 것도 중요합니다.  기능. 그럼에도 불구하고 대부분의 Compose 시나리오에서 State 및 Flow를 사용하는 것이 더 관용적이고 더 많은 유연성을 제공할 수 있습니다.

 

반응형

댓글