Sobes.tech
Junior — Middle

Кадом компонентҳои Jetpack ViewModel-ро барои идоракунии маълумот ва ҳолати UI истифода мебаред?

sobes.tech AI

Ҷавоб аз AI

Барои идора кардани маълумот ва ҳолати UI дар Jetpack ViewModel одатан компонентҳои зерин истифода мешаванд:

  • LiveData — маълумоти назоратшаванда, ки автоматӣ навсозӣ мекунад UI-ро дар тағирот. Имкон медиҳад, ки муносибати реактивӣ амалӣ шавад.

  • MutableLiveData — нусхаи тағйирпазири LiveData, ки дар дохили ViewModel барои навсозии маълумот истифода мешавад.

  • StateFlow / SharedFlow (аз Kotlin Coroutines) — алтернативҳои муосир ба LiveData барои идоракунии ҳолат ва рӯйдодҳо бо дастгирии корутин.

  • SavedStateHandle — имкон медиҳад, ки ҳолати ViewModel-ро нигоҳ дошта ва барқарор кард ҳангоми навсозии UI, масалан, ҳангоми гардиши экран.

Масали истифодаи LiveData дар ViewModel:

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

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