Sobes.tech
Назад к вопросам
Junior — Middle
73

Какие подходы и реализации паттерна ViewModel ты знаком?

Ответ от нейросети

sobes.tech AI

Паттерн ViewModel в Android используется для хранения и управления UI-данными с учётом жизненного цикла компонентов, таких как Activity или Fragment. Основные подходы и реализации:

  • Android Architecture Components ViewModel — класс из библиотеки androidx.lifecycle, который позволяет сохранять данные при пересоздании Activity/Fragment (например, при повороте экрана). ViewModel живёт до тех пор, пока жив компонент UI.

  • ViewModel с LiveData — часто ViewModel содержит LiveData, чтобы автоматически обновлять UI при изменении данных.

  • Custom ViewModel — можно реализовать собственный паттерн ViewModel, отделяя логику и данные от UI, но без использования AndroidX, например, в чистом MVVM.

Пример использования стандартного ViewModel с LiveData:

class MyViewModel : ViewModel() {
    private val _data = MutableLiveData<String>()
    val data: LiveData<String> = _data

    fun loadData() {
        // загрузка данных, например из репозитория
        _data.value = "Пример данных"
    }
}

// В Activity или Fragment
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.data.observe(this) { value ->
    textView.text = value
}
viewModel.loadData()