Ответ
Да, работал. ViewModel — это компонент архитектуры Android, предназначенный для хранения и управления UI-данными, связанными с жизненным циклом. Основные преимущества:
- Сохранение данных при повороте экрана (не уничтожается при конфигурационных изменениях).
- Разделение ответственности — UI-логика выносится из Activity/Fragment.
- Доступ к данным из нескольких фрагментов через общую ViewModel (используя
by activityViewModels()).
Пример:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> get() = _data
fun loadData() {
_data.value = "Loaded"
}
}
// В Activity/Fragment:
private val viewModel: MyViewModel by viewModels()
viewModel.data.observe(this) { text ->
// Обновление UI
}
Важно избегать утечек памяти — не передавать контекст или View в ViewModel. Для работы с ресурсами используйте AndroidViewModel (но с осторожностью).