Ответ
Для нового проекта я бы выбрал MVVM (Model-View-ViewModel) + Clean Architecture.
Почему:
- MVVM обеспечивает разделение логики и UI, что упрощает тестирование и поддержку.
- Clean Architecture (слои: Data, Domain, Presentation) делает код более модульным и независимым от фреймворков.
Пример (Kotlin + Jetpack):
// ViewModel
class UserViewModel(repo: UserRepository) : ViewModel() {
val users = repo.getUsers().asLiveData()
}
// Repository (Domain/Data слои)
class UserRepository(private val dataSource: UserDataSource) {
fun getUsers() = dataSource.fetchUsers()
}
Дополнительно:
- Coroutines/Flow для асинхронности.
- Dagger/Hilt для DI.
- Если проект сложный – можно добавить MVI для управления состоянием.
Такой подход обеспечит гибкость, тестируемость и масштабируемость.