Как Flutter захватывает мир мобильной разработки

Flutter — молодая, но очень мощная технология, которая позволяет это реализовать самым эффективным путем. Об особенностях и перспективах нового набора инструментов рассказала разработчик на Flutter, основательница школы IT-профессий для девушек ITGIRLSCHOOL Алиса Цветкова. Она очень открытый человек и консультирует разработчиков по Flutter внутри сообщества Heg.ai.

В Appstore и Google Play доступно 4,4 миллиона приложений для 14 миллиардов смартфонов по всему миру. Большинство из них нативные, а значит для каждой платформы разрабатывались обособленно. Такой подход влечет большие финансовые потери, поэтому компании всё чаще стараются использовать кроссплатформенность при разработке.

Что такое Flutter

Когда у компаний появляется идея для нового приложения, то обычно приходится делить разработку на несколько частей: для каждой платформы — своя команда программистов. Либо использовать Flutter — кроссплатформенную технологию разработки мобильных приложений от Google, который позволяет использовать один код в разных операционных системах. Таким образом, его можно применить и для iOS, и для Android одновременно. Это особенно удобно для стартапов из-за скорости работы и меньших трат.

Технология сейчас на пике популярности: Ebay, Google Assistant и Alibaba уже используют Flutter для работы мобильных приложений. В 2020 году Flutter продемонстрировал резкий рост в мире разработки. По данным Statista, показатель использования вырос с 30% до 39%, больше только у React Native (еще одной кроссплатформенной технологии). Резкий скачок обусловлен высокой скоростью написания кода.

Flutter используют в том случае, когда нужно в кратчайшие сроки создать MVP — минимально жизнеспособный продукт. С помощью этого набора инструментов разработка ускоряется примерно в два раза. Для удобной и быстрой работы есть функция Hot Reload, с помощью которой можно мгновенно просматривать все изменения в коде, не теряя текущую версию.

Из-за простоты и удобства Flutter в ближайшем будущем станет самым популярным инструментом для создания мобильных приложений.

Google активно продвигает свою технологию, в то время как React Native постепенно сдает позиции. Обе технологии пока занимают очень высокие позиции на GitHub: 113 тыс. звезд (Flutter) и 93 тыс. (React Native), а в 2020 разработка Google впервые захватила лидерство.

Еще одно преимущество Flutter — это отсутствие доработок из прошлого. Большинство популярных средств разработки придуманы давно, поэтому содержат старые методы и технологии, которые надо постоянно улучшать. К примеру, Xamarin написан в 2011 году, а Flutter — в 2017, что делает его методы современнее и проще.

У молодой платформы встречаются и недостатки: если при разработке возникают проблемы, то скорее всего найти их решение в интернете не удастся. Flutter — новый инструмент, с которым еще не так много работали. Вероятно, с ростом популярности фреймворка этот недостаток исчезнет естественным образом.

Как работает Flutter

Flutter — это все о виджетах. Платформа использует собственные виджеты с расширенной анимацией и распознаванием жестов, которые отображает в графической библиотеке Skia. Она размещается на движке Flutter, и служит для управления API-интерфейсами.

Особенности Flutter:

  • В отличие от многих известных на сегодняшний день мобильных платформ, Flutter не использует JavaScript ни в каком виде. В качестве языка программирования для Flutter выбрали Dart, который компилируется в бинарный код, за счет чего достигается скорость выполнения операций сравнимая с Objective-C, Swift, Java, или Kotlin.
  • Flutter не использует нативные компоненты, опять же, ни в каком виде, так что не приходится писать никаких прослоек для коммуникации с ними. Вместо этого, подобно игровым движкам он отрисовывает весь интерфейс самостоятельно. Кнопки, текст, медиа-элементы, фон — все это отрисовывается внутри графического движка в самом Flutter.
  • Для построения UI во Flutter используется декларативный подход, вдохновленный веб-фреймворком ReactJS, на основе виджетов (компонент). Для еще большего прироста в скорости работы интерфейса виджеты перерисовываются по необходимости — только когда в них что-то изменилось.

Как обучиться Flutter

Изучить Flutter с нуля — несложная задача, которая займет от силы 3-4 месяца. В основе платформы лежит язык программирования Dart — еще одна разработка Google. Синтаксис схож со знакомыми многим C#, Java и JavaScript, а значит опытному программисту будет легко обучиться Flutter.

Применить свои знания тоже можно: прямо сейчас на крупнейшей рекрутинговой платформе hh.ru доступны 125 вакансий, более половины из которых предлагают заработную плату свыше 105 тысяч рублей. Flutter активно развивается - всего полгода назад вакансий было в два раза меньше. Конечно, разработчики JavaScript быстрее найдут работу: у них есть около 1500 предложений.

Из-за новизны технологии, программистов Flutter пока немного. Почти все работающие с этим фреймворков так или иначе раньше занимались мобильной разработкой на другом языке.

Значит, предлагать вакансии Flutter-разработчиков стоит всем, связанным с Dart, JavaScript, Native React и т.д. Возможно кто-то из них имел небольшой опыт с Flutter и хочет окончательно сменить специализацию. Существует и другой способ поиска сотрудников — например, IT-компания The MASCC решает эту проблему аутсорсингом. Они готовы предоставить полноценную команду из 6 человек для разработки приложения на Flutter.

По состоянию на 2021 год всего 11% разработчиков — девушки. Большинство из них фронтендеры, а значит могут быть косвенно знакомы с Flutter.

Для тех, кто еще не сталкивался с такой технологией, в мае в моей школе программирования для девушек ITGIRLS я планирую запустить свой курс по мобильной разработке на Flutter. Это, например, особенно удобно для тех, кто в декрете — ушли в 2021, а в 2024 вернулись с умением работать на новой, востребованной платформе, спрос на которую за несколько лет вырастет многократно.

Алиса Цветкова

Успехов в программировании добиваются любознательные люди, в этой сфере нельзя один раз выучить и всю жизнь применять, поэтому в ИТ приветствуется самообучение.

Flutter — современный инструмент разработки, который точно придется по душе всем жаждущим новых знаний. Через несколько лет платформа, судя по высоким темпам роста, целиком завоюет большую часть рынка мобильной разработки. Google собрал воедино весь свой опыт и знания, чтобы создать практически безупречный Flutter, который покорит мир.

Если вы находитесь в поиске людей в свою команду для работы или учёбы, или просто хотите расширить свои социальные связи — обратите внимание на нетворк-сообщество Heg.ai: можно познакомиться с классными людьми совершенно разных профессий.

Еще больше интересных историй с участниками сообщества в нашей колонке на vc.ru. А более подробно узнать про все тонкости нетворкинга, развитие продуктов и стартапов можно в блогах в Инстаграм и Телеграм.

0
29 комментариев
Написать комментарий...
Василий Зеленов

Не будем говорить про стереотипы о восприятии времени девушками, например "Выйду в 5" может означать "Выйду в 7", но информация в статье и сайте говорят сами за себя.
В статье:
Изучить Flutter с нуля — несложная задача, которая займет от силы 3-4 месяца.

Открываем сайт: Продолжительность: 10 месяцев по 10-12 часов в неделю...

Ответить
Развернуть ветку
Кирилл Ануфриенко

Там нет никакого курса по flutter, это курс по html, js, react, хотя даже 10 месяцев, это такой себе опыт для веба. А так больше прикалывают эти попытки обособиться, типо курсы для девушек, тариф "Я сама", вот кого и за что потом ещё обвиняют в сексизме?))

Ответить
Развернуть ветку
Василий Зеленов

Ну и аудитория "девушки в декрете". Далеко не все смогут выделить по 3 часа в день на протяжении 10 месяцев. А если перевести на 3-4 месяца, то выйдет как обычный рабочий день. А по поводу сексизма да. Мужские клубы - сексизм, женские клубы - вроде Women Who Code - тренд который поддерживают, чтоб хайпануть и вливают огромные деньги. Хотя такое же ограничение по половому признаку, как и сексизм.

Ответить
Развернуть ветку
Aleksandr Makarov

Флаттер-хуятер.
Медузе привет! Невозможно пользоваться приложением без боли.

Ответить
Развернуть ветку
Олег Смирнов

Просто инструменту нужны прямые руки, тогда и можно будет оценивать)

Ответить
Развернуть ветку
Exey Panteleev

Не спорю, но в итоге получается дороже нейтива

Ответить
Развернуть ветку
Виталий Михайлов

+, нет ничего ущербнее не нейтива. По факту на всём кроссплатформенном можно писать только тормознутые корпоративные приложения, где очень экономят. Иначе допиливание этого всего и вправду займёт больше времени и сил, нежели сразу делить платформы.

Ответить
Развернуть ветку
Олег Смирнов

Я уже сказал про прямые руки)

Ответить
Развернуть ветку
Ян

Упс

Ответить
Развернуть ветку
Nikita Nikulenkov

И писать на нем без боли нельзя

Ответить
Развернуть ветку
aero

Да, помню, этот Dart выносит JS еще с 2011 года и все чет никак не вынесет. Ну может лет так через 10, когда весь фронтенд будет генерироваться нейросетями, Дарт с Флаттером наконец-то всех победят и Гугл их почетно похоронит на кладбище своих проектов.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Батин Воротила

Что интересно, angular тоже от гугла, но он на typescript.. Есть, конечно, angular dart, но его, похоже, скоро похоронят (может, flutter web на замену...)

Ответить
Развернуть ветку
Илья Шмаков

В ближайшем будущем появится фуксия. Разработка под неё будет dart/flutter. Андроиду уже реально пора на отдых. Столько сложностей и костылей

Ответить
Развернуть ветку
Uncle Party-Farter

Зная гугл, они и в фуксии не меньше нагородят :)
Ну и я бы лично тогда бы в iOS разработку уходил, свифт хоть на котлин больше похож, а дарт — на помесь джавы непонятно с чем, имхо. В тонкости платформы один хрен по-новой втыкать, так тут хоть куча чужого опыта наступания на грабли, библиотек, и синтаксис приятный.

Ответить
Развернуть ветку
Ivan Makarov

Нет никакого смысла убеждать кого-то в преимуществах Flutter. Зачем конкурентов плодить :)

Ответить
Развернуть ветку
Alexander D

Толковые ребята всегда будут в цене. Бояться конкуренции не нужно, потому что на условном уровне топ 5% её просто нет.

Ответить
Развернуть ветку
Ivan Makarov

Да я тех комментаторах, кто постоянно пишет технология "г..., Нафига это надо и т.п.", зачем на них энергию тратить и убеждать в обратном?

Ответить
Развернуть ветку
Панда Ву

Ох уж эти ай-ти девчонки. 10 месяцев обсасывать флаттер, (простите, ничего пошлого не имел в виду) чтобы на практике понять, что программирование - это не формочки на экране мобилки из волшебных виджетов рисовать. Когда надо поддерживать нативный look-and-feel обеих платформ в одной кодовой базе - вот тогда начинается кровавая баня и глаза полные ужаса. Вообще никому не рекомендую из веба (и уж тем более после курсов) на флаттер кодеров брать. Только из нейтив разработки от 1 года в бою. Эти хоть как-то понимают что на системном уровне происходит.

Ответить
Развернуть ветку
Roman Kamushken

А частый ли это клейс - поддерживать строгий натив для обоих платформ?

Ответить
Развернуть ветку
Панда Ву

Строгий натив понятие относительное, можно долго обсуждать чем оно является. Однако с позиции разработки и затрат на нее, появление такого требования, как платформенный Look&feel (жесты, навигация, отзывчивость, уведомления и тд) - это сложно и очень дорого на кроссплатформе. Пока что самые успешные кейсы флаттера - энтерпрайз, который с тем же успехом мог бы и нативные решения использовать, но готов экспериментировать с технологиями в расчете на будущую экономию на поддержке. В остальном - любая кроссплатформа - это стадия MVP. А дальше либо в могилку либо на натив.

Ответить
Развернуть ветку
Roman Kamushken

Те получается, что флаттер это мера до поры до времени пока продукт не окрепнет, а дальше на Свифт и на чем там Андройды пишут?

Ответить
Развернуть ветку
Панда Ву

Точно, к тому же в зрелых проектах и хороших инженерных командах есть масса способов шарить код бизнес-логики между платформами оставляя “полностью нативным” (не совмем корректная формулировка) только код UI.

Ответить
Развернуть ветку
Евгений Трифонов
Такой подход влечет большие финансовые потери, поэтому компании всё чаще стараются использовать кроссплатформенность при разработке

К словам «всё чаще» очень хочется пруфлинк. Если кроссплатформенность очевидно выгоднее, что ж все ещё десять лет назад к ней не ушли, а только сейчас зашевелились?

Ответить
Развернуть ветку
Alexander D

Она выгодна не всем подряд, а некоторым. И всякие phonegap, unity и тп вполне себе существовали 10 лет назад.

Ответить
Развернуть ветку
Евгений Трифонов
всякие phonegap, unity и тп вполне себе существовали 10 лет назад.

Я в курсе, мой вопрос в этом и состоит: поскольку кроссплатформа вполне себе существовала 10 лет назад, на чём основаны слова о том, что сейчас её используют «всё чаще».

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Alexander D

^W

Ответить
Развернуть ветку
Алексей Никифоров

сейчас стоимость разработки 
натив IOS+Android  дороже всего на 10-20% чем на флаттер ибо разрабочики думаю что раз они экономят время заказчику то можно брать больше чем натив. 

Ответить
Развернуть ветку
Gals

Как дилетант скажу ), что Flutter это:
1. Навязчивая восторженная заказная реклама, которая пытается показать, что якобы все просто.
2. Отвратительный дизайн, вдохновленный зачем-то реакт, вместо упрощения и удобства создания интерфейса и манипуляций с ним, нужно подстраиваться под структуру и условности, которые никак не связаны быстрым построением интерфейса, а решают условности функционирования.
3. Примеры на сайте медленные, буквально видно, как в контроле перерисовывается какая-нибудь галка в контроле.
4. Смешная документация с какими-то видосиками, вместо четких кирпичиков ui компонент, которая давно уже присутствует в js framework.
5. Компонент-виджетов практически мало с ограниченным функционалом, относительно тех же js, ничего серьезного на них не сделать - будете пилить и пилить, подстраиваясь под извращенный дизайн.
6. Когда вам говорят, что инструмент надо знать, изучать и пр, чтобы делать на нем - это как бы верно и естественно. Но если вы возьмете десяток видеоредакторов, то увидите, что одни из них просто очевидны в работе, все на месте, достаточно понятий и потребностей, а все что нужно - под рукой, а функционал не уступает. Если что-то более сложное - изучается. Flutter реально нагибает, на элементарных вещах заставляет лезть в дебри.

Если бы Flutter был такой прекрасный, как его нахваливают в заказных статьях, на него все давно ушли, но этого не происходит и не произойдет. По большому счету ничего в нем не меняется, латают только.

Сделать на нем что-то можно, но удовольствия от работы с ним не получите.

Ответить
Развернуть ветку
26 комментариев
Раскрывать всегда