ANDROID SCHOOL.RU - Android на практике
942 subscribers
21 photos
1 video
250 links
Делюсь опытом по Android-разработке и построению карьеры лида. Описываю свой путь Android-разработчика от кода к архитектуре, лидерству и продуктовому мышлению
📌Курс по System Design https://stepik.org/a/262641
📌Менторинг https://clck.ru/3HseCY
Download Telegram
​​​​#RecyclerView #MergeAdapter
Делаем код в адаптере чище с помощью MergeAdapter.

Надоели перегруженные и сложные адаптеры в вашем проекте, напоминающие картинку ниже? Каждый раз при добавлении нового типа ячейки хочется переписать адаптер для RecyclerView чтобы код читался проще?

Есть множество подходов, чаще всего рекомендуется использовать подход delegate adapter или, например библиотеку groupie для динамического создания списков с различными типами view, о работе с которой я планирую написать статью или даже туториал в ближайшее время.

Но сегодня я расскажу о новом классе MergeAdapter появившемся в android совсем недавно, который поможет инкапсулировать
логику вашего адаптера для разных ячеек, тем самым соответствовать принципам SOLID.

https://bit.ly/2UG4e3t

@android_school_ru
​​#RecyclerView #Groupie

Как сделать сложный список с вложенным RecyclerView за 20 минут?

Вы когда-нибудь думали как сделать список контента как в приложении Google Play?

Списки являются основным способом представления различного контента в мобильных приложениях. Будь то социальная сеть, приложение для чтения книг или интернет-магазин, в большинстве таких приложений встречаются списки с разными видами ячеек, разного уровня вложенности. Очень многих такая распространённая задача как: отобразить RecyclerView в ячейке RecyclerView ставит в тупик и они начинают использовать ScrollView - что категорически запрещено (так как OutOfMemory тут обеспечен) или ViewPager.

Поэтому я написал очень подробный туториал на эту тему с примером проекта на GitHub.

Итак, задача: создать список для отображения различного вида контента, при этом каждая категория, то есть ячейка списка может содержать неограниченное количество более мелких ячеек и иметь горизонтальный скрол. Звучит сложно? Если вы думаете что это сложная задача, над которой вам нужно будет работать всю неделю, то спешу вас обрадовать, мы сделаем такой список примерно за полчаса. В конце у вас получится вот такой список как на картинке.

http://tiny.cc/nx5dnz

@android_school_ru
​​#профилирование #ui #производительность #recyclerview
Как поправить тормозящий скролл в приложении?

Одной из целей этого блога и канала - сделать так, чтобы хороших разработчиков, а следовательно и удобных, полезных приложений - было больше. Поэтому ловите полезный материал - который буквально завтра поможет вам улучшить ваше приложение.

Кроме стандартных вопросов на собеседованиях, я предпочитаю задавать вопросы из практики. Буквально взять задачу, которую нужно будет реализовать и спросить, как будущий разработчик с ней справится.
Это может быть сложная кастомная view, стратегия кэширования или оптимизации UI. В данном случае, например тормозящий список.

Прежде, чем перейти дальше к посту, подумайте 5 минут и составьте план - как бы вы пытались устранить такую проблему?

Подумали? А теперь, если вам интересно, то можете посмотреть старый - но не теряющий своей актуальности доклад о том, какие есть способы профилирования тормозящего UI, какие есть инструменты для проверки и как использовать HierarchyViewer, Systrace, Android Studio CPU Monitor, Memory Monitor и другие классные инструменты. Чем плох overdraw и почему 9-patch это круто.

Смотрел этот доклад ещё в далеком 2016-ом и периодически задаю похожий вопрос на собеседовании - процентов 10% только могут обозначить примерные векторы куда смотреть, так посмотрите доклад и поправьте уже тормозящий скролл в вашем приложении 😉