Всего два дня осталось до конференции DevFest North, организованной Google Developer Groups Санкт-Петербурга и Петрозаводска. И до 29 сентября 23:59 вы все еще можете купить билеты и стать частью крутого IT-события!
Мы уже публиковали описание докладов в предыдущей статье, а сегодня мы решили подробнее познакомить вас с человеком, который проведет открывающий keynote – Royi Benyossef – и взяли у него небольшое интервью.
Royi Benyossef
Google Developer Expert Android
Samsung Next
Тель-Авив
Напомним, Royi на DevFest North расскажет про то, как можно использовать возможности вашего устройства (в том числе, его сенсоров) и покажет некоторые приемы UX для того, чтобы улучшить производительность и удобство использования вашего приложения.
- Все мы помним проблемы, с которыми сталкивались разработчики приложений для начальных версий Android: неработающие эмуляторы, отсутствие рекомендаций по разработке от Google, недостаточное количество инструментов и другое. Ты работал с Android-ом еще с первых его версий. Можешь рассказать про свой опыт разработки в это время?
Кажется, что это было так давно, что и сложно поверить, что такое было. Однако ты прав, условия и инструменты действительно можно назвать спартанскими по сравнению с тем, что у нас есть сейчас.
Первый мой проект был весьма необычным, если говорить о нем сегодня. Мы разрабатывали информационную систему для общественного транспорта с сенсорным экраном, однако у нас не было никаких готовых девайсов (и эмуляторов) для этого. Для разработки мы по сути взяли нечто с сенсорным экраном (качество которого тоже оставляло желать лучшего), скомпилировали AOSP и загрузили на него. Можно сказать, что мы сделали первый планшет с AOSP (хотя, конечно, мы вполне могли быть не первые).
Понятно, что в то время не было никаких устоявшихся подходов в разработке или рекомендаций, поэтому вся разработка крутилась вокруг энтузиастов и экспериментаторов, которые постоянно исследовали что-то новое и обменивались информацией друг с другом.
- Хорошо, что те времена уже прошли! Платформа Android развивается очень быстро. А по-твоему, какие наиболее важные изменения произошли за последние три года?
Мой ответ может показаться странным, но я думаю, что самые важные изменения в экосистеме разработки – это релизы support библиотек для тестирования, в частности Espresso. Вероятно, ручное тестирование приложений – это самая долгая и самая дорогая часть разработки.
Инструменты для автоматизации помогают значительно сократить зависимость разработчиков от ручного тестирования и позволяют ускорить процесс релиза новых версий приложений (на DevFest North будет отличный доклад про детали процессов тестирования от Богдана Муквича – примеч. ред.)
- У тебя также есть богатый опыт разработки под iOS. Можешь ли ты сравнить эти платформы с точки зрения разработчика и рассказать, какие фичи или инструменты тебе нравятся больше всего?
Я не очень люблю проводить такие сравнения, но если ты настаиваешь, то могу сказать, что в целом разработка под Android предоставляет больше возможностей, но здесь можно придумать такую метафору, что при разработке под Android у вас больше веревок, однако вы можете неожиданно понять, что они превратились в петлю у вас на шее! С другой стороны, интеграция дизайна в iOS – это более легкий процесс, однако развитие IDE и библиотек (в частности, ConstraintLayout) выравнивает эти платформы.
- Жестокая метафора! А что ты думаешь про кроссплатформенные средства разработки? Сможет ли React Native захватить мир?
В принципе, если UI/UX приложения не отличается большой требовательностью, то, разумеется, разработка кроссплатформенного приложения будет дешевле (примерно 1,5 стоимости разработки приложения под одну платформу). Поэтому фреймворки как React могут быть весьма полезны.
Однако написать кроссплатформенное приложение, UX которого не будет уступать нативным приложениям, очень сложно. Кроме того, таких разработчиков все же ощутимо меньше. Поэтому, если вы хотите как-то сократить расходы, то можно попробовать пойти другим путем. Если нанять очень хороших разработчиков и использовать инструменты автоматизации тестирования (о важности которых я уже говорил до этого), то мы можем сократить время и стоимость ручного тестирования, а также уменьшить число багов. И в конечном итоге это позволит сократить расходы на з/п, которые являются основными в ходе разработки.
- А какие рекомендации ты можешь дать начинающим Android-разработчикам, чтобы повысить свои навыки?
Честно говоря, я не очень хорошо разбираюсь в теоретическом обучении Android-разработчиков, так как я в основном учился на различных блогах, просматривая код на Github и вопросы на StackOverflow, когда многие современные ресурсы еще не были доступны. Как один из вариантов для начала – это курсы на Udacity, они помогут понять основы и втянуться в разработку. Однако стать действительно хорошим разработчиком можно только после того, как вы долго пробудете не очень хорошим разработчиком :) И других путей здесь нет. Пишите свои проекты, изучайте инструменты, фреймворк Android и библиотеки, общайтесь в чатах и на форумах, становитесь частью сообщества. И после того, как вы сделаете 2-3 хороших проекта, у вас будет как необходимый опыт, так и портфолио.
- Как тогда после достижения определенного уровня не оставаться в стороне от современных тенденций, если рабочий проект не требует никаких новых навыков?
Конечно, всегда есть риск “застрять” на определенном уровне, когда текущих знаний более чем достаточно для работы над проектом. Однако нужно всегда стараться быть на волне, для этого проще всего следить за блогами известных разработчиков, таких как Romain Guy, Chet Haas, а также за блогами и выступлениями Google Developer Experts.
- И последний вопрос про развитие – как повышать свой уровень опытным разработчикам и как достичь почетного звания сеньора?
Во-первых, это обязательно разработка своего проекта – это позволяет вам изучать что-то новое, чем вы не занимаетесь на работе, и к тому же в своем проекте вы можете легко спроектировать фичу так, чтобы попробовать какую-то библиотеку или подход. И во-вторых, важной частью развития являются публичные выступления и умение делиться знаниями с сообществом (таким образом вы будете глубоко изучать какие-то технологии, так как это необходимо для того, чтобы учить других). Выступать можно на самых разных площадках – конференции и митапы, в частности проводимые GDG-сообществами, доклады внутри компании и так далее.
- Спасибо за ответы! Можешь в конце нашей беседы дать какой-то совет всем Android-разработчикам?
Сегодня уже очень многие умеют разрабатывать простые Android-приложения, это по сути поставлено на поток. И сейчас идеальное время, чтобы расширять свой кругозор, поработать с бэкендом, облачными сервисами (Google Cloud / Firebase) и машинным обучением, так как будущее заключается именно в этих технологиях. Тем более что возможностей для этого более чем достаточно – мы можем легко использовать сервисы Google, AWS, MS и многие другие.
Спасибо Royi за ответы!
На DevFest North приглашены еще много классных спикеров, с которыми вы сможете познакомиться на конференции.
Мы ждем вас на DevFest North уже 30 сентября в конгрессном центре “ПетроКонгресс”.
Конференция пройдет с 10-00 до 19-00.
Начало регистрации в 9-00.
Подробнее смотрите на сайте DevFest North 2017!
Автор: DaryaGhor