Як поліпшити 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
- Знайте, коли 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, реєструйтеся