Sobes.tech
Middle

K čemu slouží StateFlow v vývoji Androidu?

sobes.tech AI

Odpověď od AI

StateFlow se používá k reprezentaci toku dat, který má vždy hodnotu. Je to "studený" tok a odesílá poslední hodnotu při přihlášení.

Hlavní použití:

  • Zobrazení stavu UI: StateFlow je ideální pro ukládání stavu ViewModel a jeho předávání do Activity nebo Fragment.
  • Sdílení dat: Několik odběratelů může poslouchat stejný StateFlow a získat aktuální hodnotu.
  • Náhrada LiveData: V Kotlin projektech se StateFlow často používá místo LiveData díky lepší integraci s korutinami a Kotlin Flow.
// Příklad použití StateFlow ve ViewModelu
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 // Expozice jako neměnitelného StateFlow

    data class MyUiState(
        val isLoading: Boolean,
        val data: List<String>?
    )

    fun loadData() {
        // Simulace načítání dat
        _uiState.value = MyUiState(isLoading = false, data = listOf("Item 1", "Item 2"))
    }
}