Hola, Amigos!
На связи Александр Чаплыгин, Flutter Dev. В разработке я 3 года, сейчас работаю в компании по заказной мобильной разработке, за последний год делал проекты для частного медицинского центра, системы маркировок и нескольких стартапов. По свежим следам хочу рассказать о том, как попасть в мобильные разработчики, поделюсь личным опытом взлетов и факапов, приложу чек-лист по устранению ошибок новичка. Если вы начинающий специалист — эта статья для вас. Также полезно почитать заказчикам мобильных приложений, чтобы погрузиться во внутреннюю кухню проектов и команды.
Flutter – почему он?
Начну с того, что такое Flutter и почему я остановил выбор именно на этом стеке. А если вы читаете эту статью, то для вас эта тема близка.
Итак, Flutter — это фреймворк, с бесплатным и открытым набором данных. А главное преимущество — с помощью Flutter можно разрабатывать мобильные приложения на разных платформах. Основные компоненты Flutter включают язык программирования Dart, движок Flutter и библиотеку Foundation.
Выбрал я Flutter из-за его основного плюса — кроссплатформенности. Один код на все устройства, прелесть же. И теперь с последними обновлениями Flutter — это не только про mobile, но и про MacOS, Web, Linux и Windows. В общем, я попал в яблочко.
Как я уже писал, Flutter написан на Dart — это язык программирования Google. Он оптимизируемый и заточен для создания пользовательского интерфейса. Синтаксис Dart мощный и чистый. Он создает такие условия, в которых можно создавать кастомный дизайн приложения, при этом сохранять четкую архитектуру. Если вы уже знаете Java, C# и им подобные, вы легко изучите Dart, значит сможете быстро вникнуть и работать на Flutter.
Почему Flutter может покорить сердце Mobile-разработчика:
-
Функция Hot Reload — позволяет мгновенно обновлять UI после внесения изменений в верстку.
-
Hot Restart — быстрый перезапуск приложения. Полезно, когда произошли глобальные изменения в коде.
-
Поддержка различных библиотек от pub.dev.
-
Собственный графический движок.
-
Flutter не обращается к нативу. Вместо этого Dart запускает собственный контейнер на устройстве, который отображает весь контент Flutter. За счет этого Flutter быстрее других кроссплатформенных фреймворков.
Но конечно, есть и свои сложности, вот некоторые из них:
-
Большое количество платформ, на которых выпускается Flutter. Следовательно, нужно иметь представление об устройстве этих платформ, понимать языки, на которых они написаны.
-
Строгая типизированность Dart не позволит не объявлять тип переменной, как в JavaScript. Оно и к лучшему.
-
Flutter может показаться простым, но, чтобы правильно и чисто писать код, нужно знать всю его «внутрянку».
С чего начинать 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 и в качестве приятного бонуса увеличите доход.
Путь от простых экранов до сложных проектов: как работать в команде Flutter-разработчиков и не только
Существует классная методика обучения — Peer-to-peer. Ты учишься за счет того, что задаешь много вопросов и узнаешь новое у своего соседа. А потом ты сам можешь стать тем самым «соседом», у которого будут спрашивать. Таким образом, весь коллектив повышает свой скилл.
Одна из главных составляющих на проекте — задавать вопросы. Как только приходит ступор, не знаешь, что делать, — смело обращайся к старшему товарищу. Он поможет, и вы решите проблему. Ты поймешь ошибку, в следующий раз просить о помощи не придется.
Но при этом старайся не дергать товарища по каждой мелочи, это раздражает. Помни про существование глобальной сети. Только когда она не в силах помочь или много времени уходит на поиск информацию, имеет смысл обратиться за помощью к коллеге.
На своем примере расскажу о систематических ошибках, с которыми помог справиться наставник. Путем проб и ошибок я понял, что в UI нельзя хранить логику — надо признать, дошло не сразу. В верстке надо следовать определенным правилам: размещение виджетов, минимизация Stateful виджетов (только там, где нужен интерактив), декомпозиция кода, следование принципам чистой архитектуры.
С помощью Peer-to-peer ты повышаешь свои софт- и хард-скиллы. Проверено.
Факапы
На моем пути их было много. Не успевал в дедлайн, высылал нерабочую сборку в самый ответственный момент, кривые фиксы Merge-конфликтов. Самое главное — уметь признавать ошибки и не халявить в самый ответственный момент. Тогда и работодатель, и заказчик будут лояльны и довольны тобой.
Мой чек-лист по борьбе с факапами:
-
Старайтесь комментить только важные части кода, за что отвечает функция или блок кода. В идеале, чтобы твой код не нуждался в комментариях вообще.
-
Никогда не бойся ошибиться, страхи только увеличивают шанс облажаться. Нужно бороться с синдромом самозванца, он присутствует у многих людей.
-
Если накосячил, нужно это признавать. И анализировать ошибку. После анализа ты будешь понимать, как не допустить ее в следующий раз.
-
Побороть лень (личный способ): попробуй взять в работу маленькую задачу, которая уж точно легко и быстро решается. Как только ее решишь, у тебя может появиться азарт и желание решать другие, более сложные задачи, тем самым ты поборешь лень.
Советы в работе:
-
Не делайте виджеты функциями, делайте классами.
-
Используйте стейт-менеджмент.
-
Используйте константные значения везде, где это возможно. Ведь константы известны до компиляции программы, а следовательно, небольшое, но все-таки увеличение производительности будет.
-
Тщательно выбирайте библиотеки, которые собираетесь использовать. Лучше не подключать неподдерживаемые библиотеки, особенно те, которые не перешли на Null-safety.
-
Если переменная может быть Null, не используйте «!» — лучше написать «??» и подставлять дефолтное значение, тогда экран вашего телефона точно не станет красным ?
Итог
Чтобы уверенно чувствовать себя во Flutter, нужно минимум полгода и классный наставник. Без этих пунктов вряд ли что-то получится. Если у вас есть другой опыт — делитесь в комментариях, буду рад почитать.
Метод Peer-to-peer — спасение для джунов и не только. Надеюсь, эта статья показала вам, что ошибаться — это нормально, без этого никак. Дерзайте!
P.S.
А еще мы с коллегами ведем телеграм-канал Flutter.Много. Там мы пишем о новостях Flutter-разработки и личном опыте. Заходите!
ссылка на оригинал статьи https://habr.com/ru/post/695568/
Добавить комментарий