Кто такой Flutter-разработчик и как начать работать в этой области
Flutter — опенсорсный фреймворк от Google для создания мультиплатформенных приложений на языке Dart. Главная особенность — кросс-платформенность. В отличие от других мобильных разработчиков (например, Android-разработчик пишет только для пользователей Android), Flutter-разработчик создаёт приложение для всех пользователей сразу.
Какие базовые навыки нужны
Конечно, Flutter-разработчик должен уметь программировать. Нужно знать алгоритмы и структуры данных, базовое программирование и систему контроля версий.
Нужно владеть языком программирования Dart хотя бы на уровне базового синтаксиса, потому что Flutter-разработчик всегда будет оперировать этим инструментом.
Надстройка над этим всем — умение верстать UI, поскольку Flutter — это фреймворк для вёрстки визуального представления мобильных приложений. Это его основная задача, но не единственная.
Какие харды подтянуть
Следом идут дополнительные скилы, которые важны, чтобы в полном объёме выполнять задачи разработки приложения.
Умение подготовить приложение. Необходимо понимать, как готовить приложение к написанию кода. Прежде чем писать мобильное приложение на Flutter, нужно учесть много важных аспектов: качество кода, сборку, окружение, логирование, обработку ошибок, интернационализацию и так далее.
Знание принципов проектирования в базовой разработке и Flutter-архитектуре: как проектировать систему, как связывать друг с другом классы, как стоит и не стоит писать функции. В контексте Flutter — разбираться в управлении состоянием, связывании зависимостей, понимать, как состояние попадает на UI.
Общение с сервером. Сегодня почти все приложения обмениваются данными с сервером. Для этого существует масса способов и протоколов, но минимально нужно понимание REST API — работы с HTTP-запросами (GET, POST, PUT, DELETE) и обработки ответов сервера и разных статус-кодов.
Работа с базами данных. Нужно знать, как сохранять пользовательские данные в приложении от сессии к сессии, понимать различия SQL и noSQL баз данных и области их применения. Даже если в приложении не требуются базы данных, сохранение какой-то информации всё равно нужно: это могут быть настройки, конфигурация или данные для авторизации пользователя.
База — done, что делать дальше?
Без практики невозможно научиться программировать, поэтому после базы нужно переходить к проектированию на фреймворке.
Начать писать на Flutter легко, если уже есть опыт в программировании. Заходим на docs.flutter.dev, ставим окружение и инструменты по инструкции, выбираем удобную среду разработки и создаём проект. Базовое приложение готово.
Важно не просто действовать ради действия. Главное — выбрать проект, идеей которого вы будете максимально заряжены. Обучение — это трудоёмкий процесс, требующий сильной внутренней мотивации. И интересный собственный проект — прекрасный способ эту мотивацию обеспечить. Тогда никакие сложности не смогут вас остановить.
В итоге у вас будет всё: вы научитесь работать с Flutter, получите крутой проект в портфолио и удовлетворение от того, что написали приложение своими руками.
Сергей Кольцов, руководитель core-команды Flutter-разработки в Яндекс Про
Продвинутые харды, которые помогут стать профи
Понимание нативной технологии. Хотя проектируемое на Flutter приложение одинаково для разных платформ, в его основе лежит нативный код и инструменты, специфичные для каждой: для Android — Kotlin и Gradle, для iOS — Swift и CocoaPods. И чем больше нативных платформ понимает Flutter-разработчик, тем он ценнее.
Публикация. Важно знать, как доставлять приложение пользователям, то есть CI/CD, Continuous Integration / Continuous Deployment. Настройка CI/CD помогает автоматизировать рутинные операции проверок, тестов и сборок, минимизирует человеческий фактор: всю работу выполняют прописанные алгоритмы.
Как ещё развиваться
Есть и другие области, которые вносят вклад в становление Flutter-разработчика — не такой заметный, как хард-скилы, но не менее важный.
Участие в жизни сообщества. Писать код — это техническая часть разработки, но в процессе общения можно узнавать новые подходы к работе, самому помогать коллегам с этим. Если говорить о пассивном наблюдении — стоит подписаться на полезные телеграм-каналы или тематические рассылки. Но лучше участвовать активно: вступать в чаты в «Телеграме» или «Дискорде» и дискутировать в них, посещать онлайн- и офлайн-конференции, контрибьютить в опенсорсные проекты, которые выложены публично на GitHub.
Чем более опытным становится разработчик, тем меньше полезной информации он получает из обычных уроков/курсов/статей — и тем больше начинает получать из опыта коллег в сообществе.
Сергей Кольцов, руководитель core-команды Flutter-разработки в Яндекс Про
Продолжать учиться. Стабильный релиз Flutter состоялся чуть больше пяти лет назад, поэтому он всё ещё стремительно развивается. Это приводит к некоторым особенностям: Dart и Flutter довольно сильно меняются. Разработчик должен следить за тем, что происходит с языком и фреймворком, чтобы идти за развитием и трендами.
Чтобы стать хорошим Flutter-разработчиком, нужно инвестировать время в каждую из названных областей. Но невозможно охватить всё и сразу. Нужно делать это постепенно, находя в самом процессе то, что тебя драйвит и мотивирует прокачиваться во всех направлениях.
Сергей Кольцов, руководитель core-команды Flutter-разработки в Яндекс Про
С чего начать путь во Flutter
-
При условии, что вы уже знакомы с программированием, первое, что нужно изучить, — хендбук по Flutter-разработке. Он даст представление об устройстве фреймворка, его компонентах, языке Dart, паттернах проектирования современных приложений и научит применять эти знания на практике.
-
Если получается читать английскую техническую литературу, стоит изучить документацию Dart и Flutter. Также очень много материалов на официальном ютуб-канале Flutter.
-
Плейлист Школы мобильной разработки — следующая ступень познания фреймворка. Это полные записи лекций по Flutter-треку из последнего потока ШМР 2023 года.
-
Можно познакомиться с профессиональным комьюнити. Например, Сергей Кольцов ведёт телеграм-канал Flutter Bro, там есть как полезные материалы о фреймворке, так и просто фан по теме. А ещё есть целая папка с другими телеграм-каналами и чатами.
-
Чтобы погрузиться глубже, можно попробовать офлайн-обучение. Ежегодно Яндекс проводит Школу мобильной разработки — трёхмесячный курс для начинающих и имеющих небольшой опыт разработчиков. Или можно участвовать в других образовательных программах — например, интенсивах в Сириусе. Следить за ними можно в канале Young && Yandex.
-
Стажировки Яндекса — тоже отличный способ начать работу с Flutter, решая реальные задачи компании.