Ответ
Использовал MVVM (с LiveData/Flow), Clean Architecture (с слоями domain/data/presentation) и MVI (для сложных экранов).
MVVM пример:
class MyViewModel(repo: MyRepo) : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun loadData() {
viewModelScope.launch {
_data.value = repo.fetchData()
}
}
}
Плюсы:
- MVVM: простота, разделение логики/UI
- Clean: тестируемость, масштабируемость
- MVI: предсказуемость состояния
Для новых проектов предпочитаю Clean + MVVM, для legacy - постепенный рефакторинг.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶