Sobes.tech
Junior — Middle

Jetpack ViewModel komponentlaridan qaysilarini ma'lumotlar va UI holatini boshqarish uchun ishlatasiz?

sobes.tech AI

AIdan javob

Jetpack ViewModel'da ma'lumotlar va UI holatini boshqarish uchun odatda quyidagi komponentlar ishlatiladi:

  • LiveData — o'zgarishlar bilan avtomatik ravishda UI ni yangilaydigan kuzatiladigan ma'lumotlar. Reaktiv yondashuvni amalga oshirish imkonini beradi.

  • MutableLiveData — LiveData ning o'zgartiriladigan versiyasi, ViewModel ichida ma'lumotlarni yangilash uchun ishlatiladi.

  • StateFlow / SharedFlow (Kotlin Coroutines dan) — LiveData ga zamonaviy alternativlar, holat va voqealarni boshqarish uchun coroutine qo'llab-quvvatlashi bilan.

  • SavedStateHandle — UI qayta yaratishda ViewModel holatini saqlash va tiklash imkonini beradi, masalan, ekran burilishida.

ViewModel da LiveData dan foydalanish misoli:

class MyViewModel : ViewModel() {
    private val _text = MutableLiveData<String>()
    val text: LiveData<String> = _text

    fun updateText(newText: String) {
        _text.value = newText
    }
}