Ответ
Чаще всего использую:
- Activity/Fragment – для UI и управления жизненным циклом.
- ViewModel – хранение UI-данных, переживающих конфигурационные изменения.
- LiveData/Flow – реактивное обновление UI.
- RecyclerView – для списков с адаптером и ViewHolder.
- Retrofit – сетевые запросы.
- Room – локальная база данных.
- Coroutines – асинхронные операции.
Пример с ViewModel + LiveData:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun fetchData() {
viewModelScope.launch {
_data.value = repository.loadData()
}
}
}