Ответ
Использовал 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 - постепенный рефакторинг.
Видео-ответы
▶
Собеседование Senior iOS-разработчика: Александр Зимин, Стас Цыганов, Евгений Суханов и Иван Данилин
▶
РЕАЛЬНОЕ СОБЕСЕДОВАНИЕ С КУЧЕЙ ЗАДАЧ НА MIDDLE/SENIOR FRONTEND РАЗРАБОТЧИКА! ЗП ДО 300К
▶
Чего крепкому Middle-разработчику не хватает до Senior? / Техсобес на позицию Middle Python Dev
▶
Mock Middle Android Developer Behavioral Interview
▶
Крушитель алгоритмов? Собеседование frontend разработчика#4
▶
Тестовое собеседование Java разработчика #25 - Алексей Пригода
▶
Мок собес по iOS(Swift)
▶
[180k] Первичное скайп-СОБЕСЕДОВАНИЕ по Frontend (Angular) - от рекрутов IWU [23.09.2019]