Кто такой Flutter‑разработчик, что он должен знать и сколько он зарабатывает
Разбираемся, зачем изучать Flutter в 2022 году и какие конкуренты есть у платформы от Google.
Иллюстрация: ALex Rodwell / Wikimedia Commons / Colowgee для Skillbox Media
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.
Навыки Junior-разработчика на Flutter
- Понимание принципов ООП.
- Знание Dart и Flutter.
- Базовое знание нативных платформ.
- Опыт работы с системами контроля версий (Git).
- Знание архитектурного паттерна Bloc и опыт работы с ним.
- Приветствуется знание Android SDK / iOS SDK.
- Приветствуется знание Kotlin/Swift.
- Опыт разработки клиент-серверных приложений.
- Понимание работы Bluetooth, опыт работы с Bluetooth в OS Android.
- Знание основ дизайна мобильных приложений.
- Умение работать с Figma или Sketch.
Навыки 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.
Навыки Senior-разработчика на Flutter
- Серьёзный опыт разработки высоконагруженных приложений.
- Понимание Agile/Scrum.
- Уровень английского B2–C2.
- Опыт мобильной разработки (Android/Flutter/iOS/React Native).
- Уверенные знания Flutter/Dart.
- Глубокий опыт работы с сервис-ориентированной архитектурой (понимание REST и OpenAPI/Swagger).
- Два или более приложения для iOS/Android, разработанных с помощью Flutter, в портфолио. Либо от одного мобильного приложения в Google Play или App Store.
- Глубокое понимание полного жизненного цикла мобильной разработки — включая автоматизированное тестирование и сборку.
- Умение писать читаемый код, создавать обширную документацию для существующего кода.
- Коммерческий опыт разработки на Flutter от трёх лет;
Есть и вакансии, где знание Flutter рассматривается как преимущество, а не как обязательное требование.
Некоторые компании ищут стажёров с базовыми знаниями программирования и желанием изучать Flutter.
Как и всегда, уровень заработной платы зависит от уровня и опыта.
Где обучиться Flutter-разработке
Если у вас уже есть опыт разработки приложений, можете попробовать освоить Flutter самостоятельно. Для начала можно изучить официальный туториал и подписаться на YouTube-канал Flutter. Из книг можно порекомендовать популярные «Flutter на практике» Франка Заметти и «Flutter in Action» Эрика Уиндмила.
Также советуем вступить в профильные чаты в Telegram: «Flutter Developers — русскоговорящее сообщество» и «Dart & Flutter». Там можно спросить совета и обсудить то, что покажется вам непонятным во время обучения.
Также технологию можно освоить на курсе «Профессия Flutter-разработчик» от Skillbox.