Какой баг возник по твоей вине

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

Ответ

Один из запоминающихся багов — утечка памяти из-за неправильной работы с RecyclerView.Adapter. В onBindViewHolder я сохранял ссылку на ViewHolder в статический список для "быстрого доступа", что привело к удержанию всех View и их контекстов. Приложение падало после прокрутки нескольких экранов.

Исправление:

// Было (плохо):
static List<ViewHolder> holders = new ArrayList();

// Стало:
override fun onViewRecycled(holder: ViewHolder) {
    super.onViewRecycled(holder)
    // Чистим ссылки
}

Вывод: никогда не храните ссылки на View или Context в статике.