Sobes.tech
Junior — Middle

Ի՞նչ Jetpack ViewModel կոմպոնենտներ եք օգտագործում տվյալների և UI-ի վիճակի կառավարում համար։

sobes.tech AI

Պատասխան AI-ից

Jetpack ViewModel-ում տվյալների և UI-ի վիճակի կառավարումը սովորաբար օգտագործում է հետևյալ կոմպոնենտները՝

  • LiveData — դիտվող տվյալներ, որոնք ավտոմատ կերպով թարմացնում են UI-ն փոփոխության ժամանակ: Հնարավորություն է տալիս ռեակտիվ մոտեցում իրականացնելու:

  • MutableLiveData — փոփոխական տարբերակ LiveData-ի, որը օգտագործվում է ViewModel-ի ներսում տվյալները թարմացնելու համար:

  • StateFlow / SharedFlow (Kotlin Coroutines-ից) — ժամանակակից այլընտրանքներ LiveData-ի համար՝ վիճակի և իրադարձությունների կառավարման համար՝ coroutine-ների աջակցությամբ:

  • 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
    }
}