Почему не стоит писать код в одной Activity

«Почему не стоит писать код в одной Activity» — вопрос из категории Архитектура, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Разделение кода на отдельные компоненты (Activity, Fragment, ViewModel) улучшает поддерживаемость и тестируемость. Одна Activity со всей логикой приводит к:

  1. God Object – Activity становится слишком сложной, нарушая принцип единственной ответственности.
  2. Сложность тестирования – Логика, UI и навигация перемешаны, сложно изолировать части для unit-тестов.
  3. Проблемы с жизненным циклом – Большой объем кода усложняет обработку поворотов экрана, восстановления состояния.

Пример плохой практики:

class MainActivity : AppCompatActivity() {
    // Логика, UI, работа с API, БД – всё в одном месте
    override fun onCreate() {
        // 500+ строк кода
    }
}

Лучше разделять на:

  • Activity/Fragment – только навигация и UI.
  • ViewModel – бизнес-логика.
  • Repository – работа с данными.