Middle
¿Para qué se utiliza StateFlow en el desarrollo de Android?
sobes.tech AI
Respuesta de la IA
StateFlow se utiliza para representar un flujo de datos que siempre tiene un valor. Es un flujo "frío" y envía el último valor al suscribirse.
Aplicaciones principales:
- Representación del estado de la UI: StateFlow es ideal para almacenar el estado del ViewModel y pasarlo a Activity o Fragment.
- Compartir datos: Varios suscriptores pueden escuchar un mismo StateFlow y recibir el valor actual.
- Sustituto de
LiveData: En proyectos Kotlin, StateFlow a menudo se usa en lugar deLiveDatadebido a su mejor integración con corutinas y Kotlin Flow.
// Ejemplo de uso de StateFlow en ViewModel
import androidx.lifecycle.ViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
class MyViewModel : ViewModel() {
private val _uiState = MutableStateFlow(MyUiState(isLoading = true, data = null))
val uiState: StateFlow<MyUiState> = _uiState // Exponer como StateFlow inmutable
data class MyUiState(
val isLoading: Boolean,
val data: List<String>?
)
fun loadData() {
// Simular carga de datos
_uiState.value = MyUiState(isLoading = false, data = listOf("Item 1", "Item 2"))
}
}