Журнал / польза

Кто такой Flutter-разработчик и как начать работать в этой области

Это разработчик, который создаёт одно мобильное приложение сразу для нескольких платформ. Что важно знать, чтобы начать работать c фреймворком, — разбираемся с Сергеем Кольцовым, руководителем core-команды 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 баз данных и области их применения. Даже если в приложении не требуются базы данных, сохранение какой-то информации всё равно нужно: это могут быть настройки, конфигурация или данные для авторизации пользователя.

Сергей Кольцов, руководитель core-команды Flutter-разработки в Яндекс Про
Сергей Кольцов, руководитель core-команды Flutter-разработки в Яндекс Про

База — 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

  1. При условии, что вы уже знакомы с программированием, первое, что нужно изучить, — хендбук по Flutter-разработке. Он даст представление об устройстве фреймворка, его компонентах, языке Dart, паттернах проектирования современных приложений и научит применять эти знания на практике.
  2. Если получается читать английскую техническую литературу, стоит изучить документацию Dart и Flutter. Также очень много материалов на официальном ютуб-канале Flutter.
  3. Плейлист Школы мобильной разработки — следующая ступень познания фреймворка. Это полные записи лекций по Flutter-треку из последнего потока ШМР 2023 года.
  4. Можно познакомиться с профессиональным комьюнити. Например, Сергей Кольцов ведёт телеграм-канал Flutter Bro, там есть как полезные материалы о фреймворке, так и просто фан по теме. А ещё есть целая папка с другими телеграм-каналами и чатами.
  5. Чтобы погрузиться глубже, можно попробовать офлайн-обучение. Ежегодно Яндекс проводит Школу мобильной разработки — трёхмесячный курс для начинающих и имеющих небольшой опыт разработчиков. Или можно участвовать в других образовательных программах — например, интенсивах в Сириусе. Следить за ними можно в канале Young && Yandex.
  6. Стажировки Яндекса — тоже отличный способ начать работу с Flutter, решая реальные задачи компании.