Hola, Amigos!
На связи Александр Чаплыгин, Flutter Dev. В разработке я 3 года, сейчас работаю в компании по заказной мобильной разработке, за последний год делал проекты для частного медицинского центра, системы маркировок и нескольких стартапов. По свежим следам хочу рассказать о том, как попасть в мобильные разработчики, поделюсь личным опытом взлетов и факапов, приложу чек-лист по устранению ошибок новичка. Если вы начинающий специалист — эта статья для вас. Также полезно почитать заказчикам мобильных приложений, чтобы погрузиться во внутреннюю кухню проектов и команды.
Начну с того, что такое Flutter и почему я остановил выбор именно на этом стеке. А если вы читаете эту статью, то для вас эта тема близка.
Итак, Flutter — это фреймворк, с бесплатным и открытым набором данных. А главное преимущество — с помощью Flutter можно разрабатывать мобильные приложения на разных платформах. Основные компоненты Flutter включают язык программирования Dart, движок Flutter и библиотеку Foundation.
Выбрал я Flutter из-за его основного плюса — кроссплатформенности. Один код на все устройства, прелесть же. И теперь с последними обновлениями Flutter — это не только про mobile, но и про MacOS, Web, Linux и Windows. В общем, я попал в яблочко.
Как я уже писал, Flutter написан на Dart — это язык программирования Google. Он оптимизируемый и заточен для создания пользовательского интерфейса. Синтаксис Dart мощный и чистый. Он создает такие условия, в которых можно создавать кастомный дизайн приложения, при этом сохранять четкую архитектуру. Если вы уже знаете Java, C# и им подобные, вы легко изучите Dart, значит сможете быстро вникнуть и работать на Flutter.
Итак, ты выбрал Flutter. И что дальше? Где искать работу? Как расти? Начну издалека и расскажу про свой опыт. Мой путь в Mobile начался 2 года назад. Искал работу в IT, так как хотел разрабатывать и писать продукт. Искал я работу на HH.ru, за несколько месяцев без опыта меня взяли на проект.
Изучал все доступные курсы и спрашивал всё подряд. Иногда даже стыдно было, но тимлид спокойно мне все объясняла и помогала. И спустя 2 недели макет первого экрана был осилен, с полным пониманием того, что происходит в IDE.
Так что советую с умом подходить к поиску вакансий и рассматривать абсолютно все варианты на рынке. Кто знает, где может прятаться именно тот тимлид, который поставит на ноги юного и неумелого джуна. Ведь только у понимающего и отзывчивого тимлида можно многому научиться за небольшой промежуток времени.
Новичку во Flutter я рекомендую смотреть YouTube, искать доступные курсы и браться реализовывать первые приложения. Очень помогли курсы от Angela Yu. Все подробно объясняет, но нужно базовое понимание английского языка. Также есть русскоязычный канал на YouTube LazyLoad Dart & Flutter, в котором автор рассказывает о Dart и Flutter с самого нуля. И конечно же не стоит забывать о канале Google Developers и их рубрике «“Flutter Widget of the Week», где за 2-3 минуты очень подробно и «без шелухи» рассказывают о применении того или иного виджета, который пригодится. Из литературы могу посоветовать Роберта Мартина и его книги «Чистая архитектура», «Чистый код», «Идеальный программист».
К тому же нужны базовые навыки: умение самостоятельно писать код, использовать Clean Architecture и BLoC/Cubit, познакомиться с нативными каналами — Kotlin и Swift. Как только сможете делать более-менее серьезные приложения, идите на фриланс-биржу или к работодателю, смотря какие потребности. Постепенно вы усовершенствуете скиллы, будете получать удовольствие от разработки на Flutter и в качестве приятного бонуса увеличите доход.
Существует классная методика обучения — Peer-to-peer. Ты учишься за счет того, что задаешь много вопросов и узнаешь новое у своего соседа. А потом ты сам можешь стать тем самым «соседом», у которого будут спрашивать. Таким образом, весь коллектив повышает свой скилл.
Одна из главных составляющих на проекте — задавать вопросы. Как только приходит ступор, не знаешь, что делать, — смело обращайся к старшему товарищу. Он поможет, и вы решите проблему. Ты поймешь ошибку, в следующий раз просить о помощи не придется.
Но при этом старайся не дергать товарища по каждой мелочи, это раздражает. Помни про существование глобальной сети. Только когда она не в силах помочь или много времени уходит на поиск информацию, имеет смысл обратиться за помощью к коллеге.
На своем примере расскажу о систематических ошибках, с которыми помог справиться наставник. Путем проб и ошибок я понял, что в UI нельзя хранить логику — надо признать, дошло не сразу. В верстке надо следовать определенным правилам: размещение виджетов, минимизация Stateful виджетов (только там, где нужен интерактив), декомпозиция кода, следование принципам чистой архитектуры.
С помощью Peer-to-peer ты повышаешь свои софт- и хард-скиллы. Проверено.
На моем пути их было много. Не успевал в дедлайн, высылал нерабочую сборку в самый ответственный момент, кривые фиксы Merge-конфликтов. Самое главное — уметь признавать ошибки и не халявить в самый ответственный момент. Тогда и работодатель, и заказчик будут лояльны и довольны тобой.
Чтобы уверенно чувствовать себя во Flutter, нужно минимум полгода и классный наставник. Без этих пунктов вряд ли что-то получится. Если у вас есть другой опыт — делитесь в комментариях, буду рад почитать.
Метод Peer-to-peer — спасение для джунов и не только. Надеюсь, эта статья показала вам, что ошибаться — это нормально, без этого никак. Дерзайте!
А еще мы с коллегами ведем телеграм-канал Flutter.Много. Там мы пишем о новостях Flutter-разработки и личном опыте. Заходите!