Расскажи про задачи которые не смог решить

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

Ответ

Были сложности с оптимизацией RecyclerView для списка с тысячами элементов и тяжелыми изображениями. Проблема была в лагах при скролле. Решил через:

  1. Пагинацию с Paging3
  2. Оптимизацию ViewHolder (минимальная логика в onBind)
  3. Библиотеку Coil для асинхронной загрузки и кеширования картинок
  4. Дифф-утилиты для эффективных обновлений

Пример:

val adapter = MyAdapter(diffCallback)
recyclerView.adapter = adapter.withLoadStateFooter(LoadingFooter())
viewModel.pagingData.observe(this) { pagingData ->
    adapter.submitData(lifecycle, pagingData)
}

Другая проблема — утечки памяти в ViewModel из-за неправильной работы с LiveData. Исправил через viewModelScope и repeatOnLifecycle.