el papi de la implementación de las corutinas, channels y flow en Kotlin “Esencialmente un shared flow (un flujo compartido) es un bus de difusión de eventos ligero que tu puedes crear y usar en la arquitectura de tu aplicación”
casos en los que se precisa el retorno de múltiples valor computados asíncronamente • Los flujos como tal requieren de alguien que recolecte los resultados, por eso se indica que son “fríos” (cold) • Flow está inspirado en frameworks reactivos como RxJava
hasta que alguien los recolecte. • Pero ¿qué hay con aquellos componentes que emiten datos independientemente de que alguien recolecta sus resultados o no? ¿qué hay con los eventos del usuario?
especializado. A diferencia de los Shared Flows, un State Flow solo aceptará un valor a la vez reemplazando el valor anterior cada vez que se genere uno nuevo. También, necesita ser inicializado mediante un valor inicial en su constructor.
StateFlow es parte de Kotlin y LiveData es parte de Android, por lo cual este último trae “de caja” manejo de estados para el ciclo de vida del componente de Android que lo consuma, mientras que StateFlow no lo tiene y por ello requiere de un esfuerzo extra para conseguir algo parecido.
we choose Kotlin’s StateFlow or SharedFlow to substitute for Android’s LiveData? https://proandroiddev.com/should-we-choose-kotlins-stateflow-or-sharedflow-to-substitute-for-android-s-livedata-2d 69f2bd6fa5 • StateFlow and SharedFlow https://developer.android.com/kotlin/flow/stateflow-and-sharedflow • Should I use SharedFlow or StateFlow in place of LiveData? https://www.reddit.com/r/androiddev/comments/jwdbcf/should_i_use_sharedflow_or_stateflow_in_place_of/ • StateFlow vs LiveData https://www.reddit.com/r/android_devs/comments/goy67h/stateflow_vs_livedata/ • Migrating from LiveData to StateFlow https://medium.com/swlh/migrating-from-livedata-to-stateflow-4f28d6889a04