Middle+
49
questionbank

Расскажи об антипаттернах в разработке Android.

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech
  • Использование AsyncTask для долгих операций (лучше использовать Kotlin Coroutines или RxJava).
  • Передача View/Context в ViewModel (вызывает утечки памяти).
  • Наследование от Activity или Fragment напрямую для базовой логики (лучше использовать композицию).
  • Жесткое кодирование строк, чисел, цветов вместо использования ресурсов.
  • Блокировка основного потока (MainThread) с помощью долгих синхронных операций.
  • Использование статических переменных для хранения данных, требующих жизненного цикла.
  • Чрезмерное использование вложенных Layouts, что приводит к проблемам с производительностью (ConstraintLayout или LinearLayout с weight лучше).
  • Отсутствие обработки конфигурационных изменений (повороты экрана, смена локали).
  • Прямой доступ к базам данных или сетевым операциям из UI-потока.
  • Неправильное использование SharedPreferences для хранения больших объектов или конфиденциальных данных.
  • Отсутствие обработки исключений или ее неправильная реализация (например, пустые блоки catch).
  • Использование неявных интентов без проверки наличия подходящих активити (resolveActivity).
  • Неправильное управление подписками (например, в RxJava), что приводит к утечкам.

Пример избыточного вложения Layouts:

xml