Middle
À quoi sert StateFlow dans le développement Android?
sobes.tech IA
Réponse de l'IA
StateFlow est utilisé pour représenter un flux de données qui a toujours une valeur. C'est un flux "froid" et il envoie la dernière valeur lors de l'abonnement.
Applications principales:
- Représentation de l'état de l'UI: StateFlow est idéal pour stocker l'état du ViewModel et le transmettre à une Activity ou un Fragment.
- Partage de données: Plusieurs abonnés peuvent écouter un même StateFlow et recevoir la valeur actuelle.
- Remplacement de
LiveData: Dans les projets Kotlin, StateFlow est souvent utilisé à la place deLiveDatagrâce à une meilleure intégration avec les coroutines et Kotlin Flow.
// Exemple d'utilisation de StateFlow dans un 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 // Exposer en tant que StateFlow immuable
data class MyUiState(
val isLoading: Boolean,
val data: List<String>?
)
fun loadData() {
// Simuler le chargement des données
_uiState.value = MyUiState(isLoading = false, data = listOf("Item 1", "Item 2"))
}
}