Sobes.tech
Junior — Middle

Milyen Jetpack ViewModel komponenseket használsz az adatok és az UI állapotának kezelésére?

sobes.tech MI

Válasz az MI-től

A Jetpack ViewModel-ben az adatok és az UI állapotának kezelése általában a következő komponensek használatával történik:

  • LiveData — megfigyelhető adatok, amelyek automatikusan frissítik a UI-t a változáskor. Lehetővé teszi a reaktív megközelítést.

  • MutableLiveData — a LiveData módosítható változata, amelyet a ViewModel belsejében használnak az adatok frissítésére.

  • StateFlow / SharedFlow (a Kotlin Coroutines-ból) — modern alternatívák a LiveData-ra az állapot és események kezelésére coroutine támogatással.

  • SavedStateHandle — lehetővé teszi a ViewModel állapotának mentését és visszaállítását az UI újraalkotásakor, például képernyőforgatáskor.

Példa a LiveData használatára a ViewModel-ben:

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

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