Skip to content

Instantly share code, notes, and snippets.

@llama-0
Last active April 19, 2022 20:56
Show Gist options
  • Save llama-0/2dcc678d3bffbab8b654cedd47f23a88 to your computer and use it in GitHub Desktop.
Save llama-0/2dcc678d3bffbab8b654cedd47f23a88 to your computer and use it in GitHub Desktop.

Поворот экрана

  1. Проверять обработку поворота экрана, вращая сам эмулятор, вместо вращения экрана (бонус: прописать portrait mode в манифесте, забыть про это, тестировать поворот экрана)

Точка входа в приложение

  1. Завести singleton класс, забыть прописать android:name в манифесте, не понимать, почему приложение не собирается

Фрагменты и их аргументы

  1. Передать аргумент в конструктор фрагмента, удивляться, почему выскакивает ошибка coudld not find a sutable constructor for fragment X 4. Disclamer: фрагменты так устроены, что им нужен пустой конструктор, и нужно либо ручками прописывать пустой конструктор, либо, что лучше, использовать bundlе/safe args, если есть необходимость передавать данные

Танцы с бубном вокруг эмулятора

  1. Сделать Gradle -> app -> Tasks -> install -> uninstallAll, потом запускать приложение обычным способом и удивляться, с чего это оно перестало собираться (надо не забыть переключить конфигурацию обратно на app или соответствующий модуль)
  2. Запустить приложение на эмуляторе -> сменить эмулятор на другой, потому что первый сдох -> запустить приложение на новом эмулятора -> смотреть в логи предыдущего эмулятора (надо не забыть переключиться в нижнем меню на живой эмулятор)

Кейс о click listener'e

  1. Поместить один click listener в другой click listener, удивляться, что место клика отрабатывает только на второй клик или double click

Модель данных в data слое и уситчивость

  1. После изначально сгенерированных моделей данных, например, через плагин JsonToKotlinClass, убирая лишние аннотации @SerializedName не заметить, что поле записано во множественном числе aka results, и из-за одной s не понимать, почему запрос в сеть выполняется без ошибки, но данных в модели нет

An elusive LayoutManager for RecyclerView

  1. Платформа Android позволяет задать layout manager двумя способами: внутри xml разметки или через код. Если вы привыкли копипастить готовые куски кода, например xml, а кто-то до вас любил задавать layout manager внутри фрагмента, вы можете потратить ни один час на поиски проблемы, по дороге восклицая "почему-то данные не отображаются!". Quick tip - не игнорируй логи - там всё написано. Второй quick tip - заведи привычку придерживаться одного подхода, например, всё, что можно задать для recyclerview через xml, задавай через xml :)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment