Sobes.tech
Junior — Middle

Кои компоненти на Jetpack ViewModel използвате за управление на данните и състоянието на UI?

sobes.tech AI

Отговор от AI

За управление на данните и състоянието на потребителския интерфейс в 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
    }
}