Мы съездили на конференцию для мобильных разработчиков Mobius и решили рассказать, что из докладов запомнилось больше всего. Сссылки ведут на презентации.
- Нам понравился доклад Vyng про профайлинг. Артур Бадретдинов сделал обзор инструментов, которые можно использовать для оптимизация отображения данных и анимации. Например, Gfxinfo показывает статистику кадров, а Hierarchy Viewer – иерархию и скорость отображения компонентов экрана. Были и другие инструменты. Идея доклада в том, что нужно всегда замерять, сколько времени что занимает, и какая у тебя иерархия. Если ты всё протоколируешь, то сможешь быстро найти ошибку. Ещё раз о пользе оптимизации UI.
- Было интересно послушать доклад про то, как делали приложение с голосовым управлением (Building voice responsive apps on iOS). Помимо занимательной основной темы там прозвучала интересная мысль: неважно, какую задачу ты решаешь, всегда нужно смотреть немного шире. Например, как понять, что с приложением в данный момент разговаривает именно его пользователь, а не посторонний человек? В той ситуации это было сложно реализуемо. Как вариант — запрашивать разрешение к Motion Detector’у и с использованием дополнительной библиотеки определять, что это за человек. Библиотека ориентируется на привычки пользователя (как он достаёт телефон из кармана, как берет его со стола) и с вероятностью 90 процентов определяет, что это за человек. Это может пригодиться для enterprise-решений.
- Заинтересовал доклад об оптимизации работы с данными “How to fit a million stars into an iPhone”. Разработчик сделал приложение с базой данных звёзд и их отображением на экране в дополненной реальности, столкнулся с проблемами работы с большим количеством информации и задумался о оптимизации. Даже если ты пишешь на Swift, не стоит забывать про то, что происходит “под капотом”, например, выравнивание данных. В итоге, поигравшись со структурами, выполнив преобразования и еще немного хитростей, он ужал средний размер структуры в 4 раза. Хоть и часть методов уже была знакома, послушать было интересно и полезно.
- В докладе Андрея Бреслава про Kotlin было интересно послушать про заимствования из других языков. Тем более, он сам возглавляет разработку языка Kotlin. Также мелькнула новость о том, что возможно, вернут тернарный оператор. Наконец-то, многие разработчики просили его добавить.
- Доклад “Reverse engineering mobile apps: how, why, and what now?” заставил задуматься о безопасности. Все знают, что Android-приложения легко декомпилируются и даже обфускация не сильно спасает, но, кажется, мало кто задумывается про iOS. Докладчик показал, что легко можно взломать как Android, так и iOS приложение, продемонстрировав это на живом примере. При достаточном количестве усилий можно легко вытаскивать из кода API-token. Очень важно учесть это при разработке приложений, где нужно работать с пользовательскими данными.
- Доклад про время сборки для нас очень актуален. Если приложение представляет собой один большой монолит, то оно собирается очень долго, даже если поменять всего одну строчку кода. Решение – делить код на модули. При таком подходе будут пересобираться только измененные модули и напрямую зависимые от них. Также будет задействована параллельная сборка. Докладчик рассказал, как с помощью этого подхода ему удалось сократить время сборки с 3,5 минут до 30 сек.
- Было очень интересно послушать доклад Яндекс.Карт об интеграции дополненной реальности в их iOS приложение. Дмитрий Тримонов не просто пересказал документацию, а очень подробно расписал процесс работы над задачей, возникшие трудности, способы их решения и даже провел небольшой экскурс в историю AR/VR/MR с ликбезом.
В целом конференция оказалась очень полезной. Через многие доклады протягивалась мысль о безопасности: пытайтесь по возможности всегда пользоваться HTTPS, смотрите, откуда берёте библиотеки, храните токены и другие личные данные в безопасном месте. И будет вам счастье (и вашим пользователям).
Остальные презентации докладов есть здесь.
Автор: eastbanctech