Sobes.tech
Middle

Android geliştirmede StateFlow ne için kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

StateFlow, her zaman bir değere sahip olan veri akışını temsil etmek için kullanılır. Bu, "soğuk" bir akıştır ve abone olunduğunda son değeri gönderir.

Ana uygulamalar:

  • UI durumu temsil etme: StateFlow, ViewModel durumunu saklamak ve Activity veya Fragment'e iletmek için idealdir.
  • Veri paylaşımı: Birden fazla abone aynı StateFlow'u dinleyebilir ve güncel değeri alabilir.
  • LiveData yerine geçme: Kotlin projelerinde, StateFlow genellikle LiveData yerine kullanılır çünkü coroutine ve Kotlin Flow ile daha iyi entegrasyon sağlar.
// ViewModel'da StateFlow kullanım örneği
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 // Değiştirilemez StateFlow olarak açığa çıkar

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

    fun loadData() {
        // Veri yüklemeyi simüle et
        _uiState.value = MyUiState(isLoading = false, data = listOf("Item 1", "Item 2"))
    }
}