Кто такой Flutter‑разработчик, что он должен знать и сколько он зарабатывает
Разбираемся, зачем изучать Flutter в 2022 году и какие конкуренты есть у платформы от Google.
Flutter — это фреймворк с открытым исходным кодом и набор инструментов для создания кросс-платформенных приложений. С его помощью можно написать приложения под Android, iOS, Windows, macOS, Linux и даже веб-приложения.
Представьте, что вам надо сделать аппку сразу под две популярные операционки для смартфонов, а ещё поддерживать его веб-версию и, например, десктопное приложение для Мака и Винды. Если бы вы писали приложение отдельно под каждую платформу, вам, скорее всего, пришлось бы собрать команду из специалистов как минимум по Swift, Kotlin, JavaScript, C#. Да ещё и мучиться с переносом дизайна под каждую платформу, поддерживать и обновлять минимум четыре кодовые базы.
С Flutter всё немного проще: вы нанимаете команду Flutter-разработчиков и собираете все приложения на нём. Да, есть нюансы — некоторые хитрые элементы iOS точно придётся писать на Swift (такая уж у Apple экосистема), но в сравнении с четырьмя кодовыми базами это почти пустяк. Flutter разрабатывается компанией Google, так что с Android он дружит куда лучше, чем с iOS.
Из чего состоит Flutter
Первая версия Flutter вышла в 2015 году, но с ней можно было собирать приложения только под Android. Со временем Flutter оброс «мясом», и вот что теперь находится у него под капотом.
Язык программирования Dart. Он позиционируется в Google как конкурент JavaScript, но фактически стал популярен только в экосистеме Flutter. Сам язык C-подобный, поддерживает объектно-ориентированную парадигму, в его составе есть сборщик мусора. Он может компилироваться в нативный код или в JavaScript.
Движок Flutter. Основная его часть написана на C++, а сам движок дружит с графической библиотекой Google Skia и умеет взаимодействовать с SDK для конкретных платформ — например, Android или iOS.
Библиотека Foundation. Она написана на Dart и предоставляет разработчикам базовые классы и функции, которые нужны для создания приложений на Flutter.
Наборы виджетов и средства разработки (Flutter DevTools). В составе Flutter есть два набора виджетов, которые соответствуют виджетам Material Design от Google и Cupertino от Apple.
Flutter поддерживается популярными IDE и редакторами кода:
- IntelliJ IDEA;
 - Android Studio;
 - Visual Studio Code;
 - Emacs.
 
Конкуренты Flutter
У Flutter есть сильные конкуренты, которые тоже играют на рынке кросс-платформенной разработки и за которыми тоже стоят сильные IT-компании:
- React Native от Facebook. Основан на библиотеке React, надо знать JavaScript. Очень популярное решение для кросс-платформенной разработки.
 - Xamarin от Microsoft. Надо знать .NET, C#/XAML. Разработчики отмечают, что Xamarin постепенно теряет рынок.
 - Kotlin Multiplatform Mobile от JetBrains. Это основанный на Kotlin SDK для кросс-платформенной разработки. Пока проект находится в стадии альфа-тестирования, но на него уже обращают внимание крупные IT-компании — например, команда «Яндекс.Диска».
 
Перспективы Flutter
За Flutter стоит Google, а это не только IT-гигант, но и разработчик Android, так что пока перспективы платформы выглядят довольно радужно. Регулярно выходят новые версии Flutter и Dart, Google активно промоутирует технологию, даёт самым активным участникам Flutter-сообщества шильдики GDE и на собственном примере показывает, что Flutter — классная технология. Например, в августе 2021 года компания переписала приложение Google Pay на Flutter и запустила его в Индии. В планах — масштабирование приложения на другие страны. Также на Flutter переведены Google Assistant, Google Ads и Google Stadia.
Но не одним Гуглом жив Flutter, его уже используют довольно известные компании: eBay, Toyota, Shein, «Яндекс», Airbnb, Uber, BMW, Alibaba, New York Times, Tencent, Groupon, Philips, Baidu, Amazon, ClickUp, SpaceX.
Конечно, все мы знаем, что Google любит «хоронить» технологии и сервисы, которые не смогли добиться серьёзных успехов, — один энтузиаст даже собрал из них целое ностальгическое кладбище. Однако, судя по всему, Flutter это пока не грозит. Например, по данным Statista, он занимает седьмое место в рейтинге самых популярных фреймворков (не веб-фреймворков).
			В исследовании Stack Overflow за 2021 год Flutter и Dart также показывают хорошие результаты. Среди не-веб-фреймворков Flutter занимает второе место:
			Dart же прочно обосновался на седьмом месте в категории «любимые языки программирования» и уступает только сладкому как Гослинг Rust, Clojure, TypeScript, Elixir, Julia и Python — в общем, вполне достойным соперникам.
			Вакансии и требования к разработчикам разных грейдов
Чтобы понять, чего ожидают компании от Flutter-разработчиков разного уровня, мы изучили вакансии на «Хабр.Карьере» и HeadHunter. Интересно, что по количеству упоминаний в вакансиях Flutter почти не уступил Android и iOS.
			Инфографика: Skillbox Media
Навыки Junior-разработчика на Flutter
- Понимание принципов ООП.
 - Знание Dart и Flutter.
 - Базовое знание нативных платформ.
 - Опыт работы с системами контроля версий (Git).
 - Знание архитектурного паттерна Bloc и опыт работы с ним.
 - Приветствуется знание Android SDK / iOS SDK.
 - Приветствуется знание Kotlin/Swift.
 - Опыт разработки клиент-серверных приложений.
 - Понимание работы Bluetooth, опыт работы с Bluetooth в OS Android.
 - Знание основ дизайна мобильных приложений.
 - Умение работать с Figma или Sketch.
 
			Скриншот: «Хабр Карьера» / Skillbox Media
Навыки Middle-разработчика на Flutter
- Опыт разработки приложений на языке Dart с применением фреймворка Flutter.
 - Умение работать с системой контроля версий Git.
 - Знание английского языка на уровне чтения технической документации.
 - Хорошее знание TypeScript и JavaScript (язык программирования).
 - Опыт работы с Node.js (программное обеспечение).
 - Опыт разработки под Android или iOS.
 - Понимание HTTP, REST, JSON; WebSocket, SignalR.
 - Знание алгоритмов и структур данных.
 - Опыт работы с Figma.
 - Знание и понимание различных архитектурных паттернов (Provider/Bloc/etc.).
 - Опыт работы с GetX, Redux, WebSockets и REST API.
 - Опыт отладки плагинов на Swift/Objective-C/Kotlin/Java.
 - Знание гайдлайнов Cupertino/Material.
 
			Скриншот: сайт HeadHunter / Skillbox Media
Навыки Senior-разработчика на Flutter
- Серьёзный опыт разработки высоконагруженных приложений.
 - Понимание Agile/Scrum.
 - Уровень английского B2–C2.
 - Опыт мобильной разработки (Android/Flutter/iOS/React Native).
 - Уверенные знания Flutter/Dart.
 - Глубокий опыт работы с сервис-ориентированной архитектурой (понимание REST и OpenAPI/Swagger).
 - Два или более приложения для iOS/Android, разработанных с помощью Flutter, в портфолио. Либо от одного мобильного приложения в Google Play или App Store.
 - Глубокое понимание полного жизненного цикла мобильной разработки — включая автоматизированное тестирование и сборку.
 - Умение писать читаемый код, создавать обширную документацию для существующего кода.
 - Коммерческий опыт разработки на Flutter от трёх лет;
 
			Скриншот: «Хабр Карьера» / Skillbox Media
Есть и вакансии, где знание Flutter рассматривается как преимущество, а не как обязательное требование.
			Скриншот: «Хабр Карьера» / Skillbox Media
Некоторые компании ищут стажёров с базовыми знаниями программирования и желанием изучать Flutter.
			Скриншот: сайт HeadHunter / Skillbox Media
Как и всегда, уровень заработной платы зависит от уровня и опыта.
Где обучиться Flutter-разработке
Если у вас уже есть опыт разработки приложений, можете попробовать освоить Flutter самостоятельно. Для начала можно изучить официальный туториал и подписаться на YouTube-канал Flutter. Из книг можно порекомендовать популярные «Flutter на практике» Франка Заметти и «Flutter in Action» Эрика Уиндмила.
Также советуем вступить в профильные чаты в Telegram: «Flutter Developers — русскоговорящее сообщество» и «Dart & Flutter». Там можно спросить совета и обсудить то, что покажется вам непонятным во время обучения.
Также технологию можно освоить на курсе «Профессия Flutter-разработчик» от Skillbox.