Как улучшить performance мобильного приложения, решить проблему “коллектора” и оптимизировать мобильную разработку? Команда Клуба Большого мозга задалась этими вопросами и отправилась за помощью к опытным спецам.
Получив ответы, мы решили поделиться знаниями и собрали более 70 разработчиков на Android Evening!
Каждого гостя встречает наша команда и дарит фирменный блокнот, чтобы ни одна полезная мысль не улетела и не потерялась.
Капкейки и другие угощения в этот раз отвечают теме вечера, а чай согревает всех, кто, не смотря на погоду, пришел к нам прокачаться.
Открывает Клуб Большого Мозга Наталия Бринза – руководитель отдела мобайла в Artjoker. Наташа как никто знает, “чем дышат” mobile-разработчики, что их волнует и чего не хватает.
И, наконец, начинается самое интересное - мастер-классы спикеров.
Чем запомнились выступления?
О, клево, анимация!
Первый спикер приехал из Львова - Антон Минашкин (Chief Software Engineer в EPAM Systems). Он рассказывал о том, как улучшить Performance в мобильных приложениях: How to build an app instead of slideshow.
Среди участников были не только Android-разработчики, а и iOS-developer’ы, а также проектные менеджеры - все те, кто хочет быть в теме процессов и трендов mobile-сферы:
Я как-то пришел говорить о технических штуках, а там дизайнеры сидят
Performance - это отсутствие подтормаживания в мобильных приложениях. Для того, чтобы сервис правильно функционировал и клиенты не прекращали им пользоваться, нужно следить за высоким качеством.
Антон актуализировал роль анимации в разработке хорошей шуткой: “Пользователи любят анимацию, а разработчикам это позволяет скрыть секунды ожидания в прогрузке после нажатия кнопки. Пользователь такой: “О, клево, анимация” и не замечает ожидания.”
Акцент выступления был на том, как можно улучшить performance Android-приложения.
В начале участники рассмотрели ключевые параметры, исходя из которых мы понимаем, что performance в приложении хороший:
- FPS ( количество кадров в секунду) - должен быть не меньше 60 в секунду)
- Frame duration (время изменения кадров)
- Skipped frames (количество пропущенных кадров) - главный параметр, если это количество большое, значит, система перегружена и нужно улучшать performance.
Затем Антон рассказывал, как избежать Skipped frames и улучшить перформанс.
- Не использовать прозрачность Alpha, которая, которая плохо влияет на производительность Android.
Если вам нужен серый текст, используйте серый текст!
- Следите за комплексной иерархией View.
Она должна быть минимальной настолько, насколько это возможно, иначе страдает performance, и мы теряет большее количество фреймов. - Используйте Constraint Layout - это современный View, который легче отрисовывать и он более оптимизирован.
Есть такая книжка – кто ее читал? (несколько людей поднимают руки) – Забудьте
Также в докладе участники рассмотрели несколько типичных проблем и то, как их решить:
1 Проблема – GC () calls
Garbage Collection - это механизм, который освобождает память. При этом он влияет на performance и нагружает систему, поэтому задача программистов сделать так, чтобы он реже очищал память.
Как избежать:
- Используйте object pools
- Use mapping carefully
- Know when android falls
Как решить:
- Strings&Fonts
- Use Android Collection
2 Проблема – Recycler View
Отличный оптимизированный инструмент. Но если его использовать неправильно, performance будет низким.
Как решить:
- Используйте стандартные имплементации
- Поймите, как он на самом деле работает, его структуру
- Забудьте этот метод:
NotifyDataSetChanged ()
В завершении Антон дал несколько советов о том, как не сделать хуже:
- Не смотрите код, пока не поймете, что идет не так
- Используйте developer Concole
- Рассмотрите проблемы производительности как ошибки - Debugging - все любят консольные тулы
Презентация спикера:
Productivity Hero
Михаил Анохин (Android Developer в Dev-Pro) рассказывал о том, как с помощью инструментов, лайфхаков и горячих клавиш повысить свою продуктивность и оптимизировать рабочее пространство.
Презентация спикера:
Идем по пути наименьшего сопротивления
Николай Лотоцкий уже стал настоящим другом Клуба Большого мозга и в этот раз рассказывал о том, как сделать выбор между нативным, гибридным и кроссплатформенным приложением.
Лекция полезна не только разработчикам, но и проектным менеджерам, сейлзам и бизнес-аналитикам.
Николай - Технологический эксперт в Dev-Pro.net, имеет большой опыт в консультировании клиентов о технологических решениях.
Спикер акцентировал внимание на том, что выбор нужно делать исходя из бизнес-задач клиента и цели проекта.
Хотелки заказчика:
- Хочу две платформы
- Хочу нативное приложение
- Хочу выйти на рынок быстро
- Хочу как можно скорее окупить приложение
Николай подробно рассмотрел каждое технологическое решение по нескольким параметрам:
- цена
- поддержка
- performance
- UX
- работа в оффлайн
- сенсоры
- выбор инструментов
В зависимости от того, какие цели у проекта, тот или иной пункт становится более или менее важным, что позволяет принять правильное решение.
Если приложение можно вложить в веб-сайт – вложите его в веб-сайт. Сделать сайт дешевле, чем рыть туннели под Ла-манш.
Краткие выводы:
Нативное приложение - хорошее решение, если нужна идеальная графика, сложные математические операции и хороший UX. Гибридное - если надо работать с данными, выводить их с определенного сервера.
Интерпретируемое приложение - хорошее решение, так как цена - одна из самых низких, имеет хорошие тулзы для дебаггинга, performance и UX на уровне. Но некоторые компоненты нужны адаптировать с помощью нативных разработчиков.
Кроссплатформенное - поддерживаемость, performance внедряются хорошо, но если приложение сложное, нужно допиливать фичи + UX на уровень ниже, чем в нативных приложениях.
Суммируя, Николай сделал вывод – на что нужно обращать внимание, принимая решение:
- Целевая аудитория
- Что будет делать приложение
Презентация спикера:
Участники задавали много дополнительных вопросов, а также продолжали общение со спикерами во время кофе-брейков.
Мы вдохновлены успехом третьего Большого мозга и готовим следующий ивент:)
Смотрите фотографии с Android Evening.
Видеоотчет
А уже 29 ноября мы проводим Клуб Большого мозга IV - DevOps Evening, регистрируйтесь