Кроссплатформенная разработка
Почему я продолжаю ставить на Flutter
В этой статье я расскажу о причинах, по которым я считаю, что Flutter останется.
Мобильные разработчики часто беспокоятся, что Google может внезапно отказаться от Flutter, как и от многих других продуктов в печально известном списке закрытых Google проектов. Это справедливое опасение, но я всегда считал его маловероятным, как в 2017 году, когда я впервые вскочил на поезд Flutter, так и сейчас, в 2024 году.
В этой статье я расскажу о причинах, по которым я считаю, что Flutter останется, в надежде предоставить полезный ресурс для разработчиков, столкнувшихся с этим вопросом. Помните, что это мое личное мнение, и оно может не всегда соответствовать действительности — все может измениться!
Большие приложения: внутри и вне Google
Коллекция больших приложений, использующих Flutter в продакшене:
Для начала давайте посмотрим на приложения, созданные с помощью Flutter по состоянию на 19 мая 2024 года. Витрина Flutter на официальном сайте отлично показывает, кто создает приложения с помощью Flutter, но разработчики также могут легко найти компании во внешних списках или читать инженерные блоги таких компаний, как Geico.
Ключевым преимуществом Flutter является возможность для разработчиков и компаний легко и быстро создавать пиксельно идеальные приложения на нескольких платформах без необходимости писать приложение дважды (или больше), при этом используя одну и ту же кодовую базу, инструменты и команду. Когда мы смотрим на приложения, использующие Flutter, то выделяем несколько вещей:
- Инвестиции Google в Flutter выходят за рамки самого фреймворка. Критически важные продукты компании, такие как Google Ads, Google Analytics, Google Cloud, Google One, Google Pay и другие, в той или иной степени полагаются на Flutter при создании своих приложений. Если бы фреймворк исчез в одночасье (допустим, кто-то в большом G прекратил финансирование), последствия для самого Google были бы значительными — на такие продукты, как Google Ads и Analytics, приходится большая часть общего дохода Google. Перенос этих масштабных проектов на нативную разработку или другое кроссплатформенное решение стал бы логистическим кошмаром и финансовой дырой. Внутренние инвестиции Google во Flutter говорят о его долгосрочной жизнеспособности.
- Ведущие внешние бренды и многие из крупнейших приложений в мире, от New York Times, Tencent и Nubank, используют Flutter для своих мобильных приложений. По мере того, как Google все дальше входит в облачное пространство и пытается установить в нем лидерство, уничтожение инструмента, широко используемого многими узнаваемыми и ведущими брендами, приведет к возникновению трений и беспокойства, которые разработчики и так испытывают по поводу использования Google Cloud Platform для своих приложений. Хотя такие заголовки, как недавняя катастрофа UniSuper с GCP, не добавляют доверия к GCP, намеренный шаг по уничтожению одного из самых используемых и почитаемых проектов с открытым исходным кодом практически уничтожит остатки доверия разработчиков к GCP как к жизнеспособной платформе.
Если этого недостаточно, чтобы убедить вас, давайте обратимся к одному из других фреймворков Google с открытым исходным кодом — Angular! Несмотря на то, что NextJS правит интернетом и используется большинством разработчиков, Angular все еще жив и процветает. По тем же причинам, что и в случае с Flutter, Angular продолжает активно поддерживаться и развиваться (в последнее время он немного обновился), поскольку он широко используется внутри и за пределами Google в таких флагманских продуктах, как YouTube.
Шлюз для Облака Google
Будучи начинающим разработчиком, изучающим Flutter, создающим свое первое приложение и интегрирующим свой первый бэкенд, помните ли вы, какой сервис вы использовали для этого бэкенда?
Скорее всего, вы выбрали Firebase, поскольку он полностью поддерживается из коробки и имеет первоклассную поддержку Dart через многочисленные пакеты на pub.dev, которые можно установить всего за несколько кликов.
Так было, когда я только начинал учиться. Я отчетливо помню, как во время I/O 17 смотрел «Single Codebase, Two Apps with Flutter and Firebase«, что стало для меня точкой перехода во Flutter с другого кроссплатформенного фреймворка.
Тесная интеграция Flutter с облачными сервисами Google, такими как Firebase, выходит за рамки простого удобства для разработчиков. Она служит идеальной отправной точкой для нового поколения разработчиков, которые знакомятся с облачными предложениями и изучают стек Google, а в дальнейшем могут использовать эти знания и предпочтения для будущих работодателей и клиентов.
Чтобы проиллюстрировать это, давайте рассмотрим некоторые из анонсов, сделанных в ходе I/O 24. Новые API-интерфейсы Gemini от Google с первого дня стали “первоклассными гражданами” Dart. Что может быть лучше для распространения нового семейства Gemini API, чем показать его разработчикам своего самого популярного фреймворка с открытым исходным кодом?
Разработчики часто упускают из виду стратегический мультипликатор, который Flutter предоставляет Google в качестве точки входа в другие платные облачные сервисы с минимальными затратами. Представьте, как AWS или Azure выиграли бы от невероятно популярного и всеми любимого OSS-инструмента. Flutter работает по тому же принципу, что и NextJS от Vercel, — это ориентированная на разработчиков точка входа в платные сервисы. Он постепенно формирует взаимопонимание и доверие в сообществе, обучая следующее поколение разработчиков преимуществам их облачной платформы и попутно повышает лояльность к бренду.
Живое сообщество (или маркетинговый бюджет)
Статья о Flutter будет неполной, если не упомянуть о потрясающем комьюнити, лежащем в его основе. Сообщество Flutter — это одно из самых гостеприимных технологических сообществ на сегодняшний день. Оно наполнено удивительными разработчиками, которые чрезвычайно доброжелательны к другим, увлечены фреймворком и стремятся помочь и поделиться знаниями.
Как я уже сказал ранее, сообщество Flutter также представляет собой один из крупнейших инструментов Google для пропаганды и распространения своих сервисов среди разнообразной глобальной аудитории.
Давайте на минуту остановимся и подумаем о масштабах сообщества Flutter и об огромном объеме контента, ресурсов, руководств и инструментов, которые оно создает вокруг фреймворка и сервисов Google. В качестве одной из точек отсчета я могу сказать, что, когда я вел Flutter Community в Medium, его читали в среднем от 1 до 1.5 миллиона раз в месяц — и это только один источник! Мы даже не говорим про независимые блоги, впечатления от социальных сетей, контент на YouTube и другие показатели.
С чисто маркетинговой точки зрения, ценность, созданную сообществом Flutter вокруг сервисов и API Google, компании будет сложно повторить без вложения значительного капитала… который, скорее всего, обойдется дороже, чем затраты на поддержание проекта. И при этом придется восстанавливать подорванное доверие разработчиков к своей экосистеме, что не так-то просто и быстро осуществить.
Во время посещения I/O в этом году любовь сообщества к Flutter была легко заметна во время упоминаний в ключевой речи или аплодисментов после большинства сессий Flutter — большинство посетителей I/O, вероятно, согласятся с этим. Отказаться от любимого продукта, который не только напрямую связан с некоторыми важными аспектами основной деятельности Google, но и служит точкой входа к другим продуктам компании, приносящим доход, было бы просто глупо.
Взгляд в будущее
Я вынашивал идею написать этот пост уже несколько месяцев и решил сделать это после общения с другими Flutter-разработчиками в течение последней недели.
Как сообществу, нам пора перестать беспокоиться о том, убьет ли Google фреймворк или обсуждать следующее лучшее решение для управления состояниями, и вместо этого работать над развитием фреймворка для всех.
Такие новые функции, как Dart Macros, дают возможность заглянуть в будущее Dart и Flutter. Лично я очень рад будущему, в котором мне больше не придется писать toJson
и fromJson
.
В дополнение к макросам, поддержка WebAssembly (Wasm) для Flutter Web увеличивает производительность и отзывчивость приложений в 2 раза по сравнению с ранее скомпилированной JS-версией. Постоянные инновации и появление новых возможностей делают Flutter и Dart привлекательной платформой для создания на одной кодовой базе любых приложений — от мобильных до высокопроизводительных интерактивных веб-приложений и приложений для десктопов. Такие функции, как макросы и поддержка Wasm, являются многолетними инвестициями команды Flutter и Dart — они сложны, дороги и не являются тем, что вы ожидаете от фреймворка или языка, который находится на смертном одре :)
Возможно, я выдаю желаемое за действительное, но я также большой сторонник пересмотра базовой системы Flutter и основополагающих методов обработки состояния, анимации и многого другого. По сравнению с некоторыми другими популярными наборами инструментов декларативного пользовательского интерфейса, синтаксис начинает казаться немного многословным.
В сообщество мы должны обсуждать и обсуждать эти темы. Постоянный цикл «Flutter умрет завтра утром» или «X — лучшее решение для управления состояниями», хотя иногда и оправдан, мало способствует продвижению фреймворка вперед и выделению Flutter среди конкурентов.
-
Интегрированные среды разработки2 недели назад
Лучшая работа с Android Studio: 5 советов
-
Новости4 недели назад
Видео и подкасты о мобильной разработке 2024.43
-
Новости3 недели назад
Видео и подкасты о мобильной разработке 2024.44
-
Исследования2 недели назад
Поможет ли новая архитектура React Native отобрать лидерство у Flutter в кроссплатформенной разработке?