Sobes.tech
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 de LiveData grâ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"))
    }
}