Flutter в 2022 году: стратегия и дорожная карта

Flutter в 2022 году: стратегия и дорожная карта

Каждый год мы, как и другие крупные команды Google, проходим процесс планирования, чтобы определить наши цели и направления деятельности на предстоящий год. Обычно продуктовые команды тщательно охраняют эти документы, поскольку они могут содержать коммерчески чувствительную информацию или относиться к областям конкурентного преимущества. Однако, как проект с открытым исходным кодом, мы считаем, что прозрачность – это добродетель: она позволяет больше доверять нашему будущему и направлению, а также позволяет другим строить планы с большей ясностью относительно того, как их инвестиции могут быть связаны с нашими.

Таким образом, сегодня мы впервые делимся нашим ежегодным стратегическим документом с сообществом в целом. В этом документе мы выражаем нашу миссию, делимся некоторыми руководящими принципами и описываем основные инвестиции, которые мы планируем предпринять в предстоящем году. По необходимости есть некоторые незначительные правки (например, коммерчески конфиденциальные данные или ссылки на необъявленные продукты), но мы считаем, что это дает хороший обзор наших планов. Этот стратегический документ следует читать вместе с инженерной дорожной картой в нашей вики, которая добавляет дополнительную специфику функций, над которыми мы работаем.

Для углубленного изучения кроссплатформенной разработки мобильных приложений под iOS и Android предлагаем дополнительно ознакомиться с нашими бесплатными курсами и уроками на русском языке по современным технологиям и языкам программирования: SwiftUIKit, SwiftUI, Kotlin, Kotlin Multiplatform (KMP), Dart, Flutter.

Наша миссия

Сегодня клиентским разработчикам мешают некачественные инструменты, затрудняющие итеративную разработку, и фреймворки, вынуждающие идти на компромисс между производительностью и качеством. В современной гетерогенной среде каждая платформа имеет свои собственные ограничения, несовместимые фреймворки, языки, инфраструктуру тестирования и выпуска. В совокупности создание приложений, охватывающих все устройства, используемые нашими клиентами, требует больших затрат на проектирование и тестирование, что снижает гибкость.

В отличие от этого, Flutter предоставляет красивый, быстрый, продуктивный, открытый и всепроникающий инструментарий для разработчиков, который дает нам (Google) ключевую роль в оказании помощи нашим клиентам в создании опыта, который они хотят создать. Flutter поддерживает создание опыта от аппаратного обеспечения вверх, охватывая широкий спектр устройств и форм-факторов, включая веб, мобильные (iOS, Android) и настольные компьютеры (Windows, macOS, Linux); жилые комнаты (телевизор, стадионы); интеллектуальные дисплеи (помощник); и за его пределами (автомобили, встроенные устройства и бытовая техника).

Наша миссия состоит в том, чтобы создать самый популярный, качественный и высокопроизводительный инструментарий пользовательского интерфейса для разработчиков.

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

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

Состояние рынка

Наши возможности охватывают широкий спектр платформ и форм – факторов, но в каждой области есть много потенциальных возможностей. Самое зрелое предложение Flutter-это мобильные устройства, где у нас есть несколько лет опыта и утонченности. За последний год Flutter обогнал других и стал самым популярным инструментарием для кросс-платформенной мобильной разработки, и по состоянию на февраль 2022 года существует почти 500 000 приложений, использующих Flutter.

На iOS наша способность считать приложения значительно более ограничена, чем на Android. По большому счету, мы видим, что приложения, использующие Flutter на Android, также используют его на iOS. Мы также видим свидетельства того, что Flutter используется только на одной платформе, с обеих сторон (например, некоторые приложения Google используют Flutter только для реализации iOS).

Мультиплатформенное использование менее выражено среди крупнейших приложений, где существуют значительные затраты и, возможно, самый большой стимул для создания дважды. Flutter используется в ряде топовых приложений, включая SHEIN (top fashion retailer), WeChat (1bn+ user IM app) и PUBG (750m+ player battle royale game). И наоборот, предложение Android Jetpack Compose хорошо вписывается в эту категорию благодаря легкости, с которой его можно постепенно добавлять в существующее приложение Android в качестве фреймворка на основе JVM.

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

Некоторые основные принципы

  • Мы верим в то, что “сосредоточьтесь на пользователе, и все остальное последует“. Это проявляется в нашем акценте на опыт разработчиков (подробнее об этом позже).
  • В основном мы создаем для внешних пользователей Google, но внедрение Google Flutter по-прежнему имеет для нас большую ценность, поскольку оно помогает нам “оплачивать наши счета” и демонстрирует способность Flutter быть успешным даже с некоторыми из самых требовательных команд разработчиков. Мы будем продолжать инвестировать в удовлетворение ключевых внутренних клиентов, в то время как общественное усыновление продолжается.
  • Наша клиентская база широка и включает в себя всех, кто хочет создать приложение. У нас неизбежно есть сладкие места, где наши преимущества особенно выделяются: например, клиенты, ориентированные на несколько платформ, либо из-за ресурсов, либо из-за желания создать и предоставить единый опыт.

Cтратегия и цели на 2022 год

В 2022 году наша основная стратегическая цель – рост ежемесячно активных пользователей. Разработчики значительно выигрывают от сетевых эффектов, испытываемых выбранными ими инструментами. Фреймворк или язык программирования, используемый одним разработчиком, даже если это самая совершенная из возможных реализаций, не будет иметь широкой экосистемы с множеством учебных пособий, библиотек и вспомогательных инструментов. С другой стороны, даже посредственный SDK будет иметь здоровую и процветающую экосистему, если он будет использоваться множеством разработчиков. Таким образом, рост идет на пользу девелоперам.

Мы будем стимулировать рост Flutter по-разному:

1. Опыт разработчика

Использование Дротика и Флаттера является добровольным. Нет никаких проблем, когда использование Dart или Flutter является решением по умолчанию. (В отличие от этого, например, Swift и SwiftUI являются решением по умолчанию для разработки iOS, Kotlin и Jetpack Compose-по умолчанию для разработки Android, HTML и JavaScript-по умолчанию для веб-разработки и т. Д.)

Поскольку использование Дротика и Флаттера является добровольным, люди будут делать это только в том случае, если захотят. И они захотят сделать это только в том случае, если опыт использования этих продуктов будет отличным. В частности, они будут делать это только в том случае, если опыт работы с инструментами по умолчанию будет достаточно лучше, чем опыт работы с инструментами по умолчанию, чтобы стоимость использования Dart и Flutter перевешивалась преимуществами. Другие характеристики (производительность во время выполнения, использование памяти и т.д.) заслужат уважение разработчика: важно, конечно. Но опыт разработчика заслужит любовь В конечном счете разработчики используют инструменты, которые им нравятся, и отходят от инструментов, которые им не нравятся. Это медленная миграция, так как она может включать в себя смену работодателей, завершение проектов, поиск новых проектов и так далее, но она устойчива.

Это делает опыт разработчика одним из самых важных аспектов Dart и Flutter.

Так уж получилось, что Flutter хорошо позиционируется здесь, потому что мы уже давно ориентируемся на опыт разработчиков как на фундаментальную ценность. Это дает Флаттеру конкурентное преимущество. Это также то, с чем трудно конкурировать: если у кого-то есть некачественные документы API, трудно задним числом улучшить качество по всем направлениям (между тем, Flutter имеет документы API со встроенным исполняемым примером кода!). Если ваш продукт не является открытым исходным кодом и использует проприетарные хуки или API, его трудно открыть задним числом (между тем, Flutter полностью открыт и поощряет “переход к определению” и прохождение фреймворка в отладчике с большой осторожностью, чтобы сделать код читабельным).

Улучшение опыта разработчиков Flutter-это непрерывное путешествие, которое требует инвестиций на всех уровнях продукта. Она включает в себя:

  • Повышение уровня абстракции, чтобы разработчики могли извлечь выгоду из большей работы других (например, виджет входа в систему Firebase Auth избавляет разработчиков от необходимости реализовывать полный путь аутентификации с нуля).
  • Найти места, где разработчики застряли, и проложить выход, например, новые функции в DevTools, которые помогают отлаживать проблемы с производительностью, или определить и исправить места, где наш инструмент выходит из строя трудными для понимания способами.
  • Сглаживание опыта использования существующих API, а также устаревание и удаление старых API. Методическое документирование функций, например, на основе целей пользователя или количества вопросов, задаваемых об этой функции при переполнении стека.
  • Устранение ошибок, которые выделяются в наших опросах как вредящие опыту разработчиков, например исправление случаев, когда горячая перезагрузка не работает.
  • Сглаживание опыта адаптации так, чтобы первый час использования Flutter был достаточно хорош, чтобы люди возвращались за добавкой;

2. Обеспечение качества на шести платформах

В первые годы существования Flutter адресный рынок Flutter был ограничен мобильными разработчиками, которые обещали обеспечить высокое качество работы как на iOS, так и на Android из одной кодовой базы. Поскольку мы увидели доказательства первоначального успеха и смежности с другими платформами, мы пообещали два года назад предоставить аналогичные высококачественные возможности Flutter дополнительно в браузерах и настольных платформах (Windows, macOS и Linux).

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

Конечно, база мобильных разработчиков Flutter велика и быстро растет, они, как правило, очень довольны нами и рады видеть, что мы продолжаем инвестировать. Мы будем продолжать фокусировать здесь большую часть нашего внимания. Разработчики Android ищут постоянные инвестиции в Материалы, поддержку новых аппаратных функций и форм – факторов, а также лучшую интеграцию с библиотеками Jetpack и кодом Kotlin.

Flutter выпустила первую стабильную версию веб-поддержки в 2021 году, и пока еще слишком рано предсказывать ее окончательный успех. Тем не менее, рынок веб-разработчиков огромен (10m+), и Flutter предлагает что-то особенное для этой аудитории по сравнению с традиционными фреймворками на основе DOM. По мере появления новых технологий,таких как CanvasKit, WebGPU, AOMи WebAssembly with GC, Flutter находится в уникальном положении, имея возможность таргетировать веб-приложения, разработанные для этого нового поколения веб-сайтов. Его многоуровневый подход хорошо подходит для таргетинга на Canvas и WebGPU; Dart компилируется на высоко оптимизированный JavaScript сегодня и будет поддерживать WebAssembly в будущем; а наш последовательный, доступный API Flutter заметно контрастирует со сложной веб-экосистемой “батареи не включены”. Даже если наша роль в ближайшем будущем будет нишевой, веб-экосистема достаточно велика, чтобы их ниша стала нашей возможностью роста.

И последнее, но не менее важное: настольные компьютеры-это большая возможность роста в 2022 году. Наш ранний опыт работы с Flutter на рабочем столе демонстрирует наш потенциал: Canonical не только предоставила ряд инженеров для полной поддержки Linux, но и переписала ключевые поездки пользователей с помощью Flutter и даже внесла финансовый вклад в создание более широкой экосистемы для настольных компьютеров. Завершение нашей работы и обеспечение стабильных релизов на каждой платформе в 2022 году остается ключевой целью, а затем расширение и совершенствование предложения Flutter, как мы это делали на других платформах.

Со временем Flutter может и должен вырасти, чтобы охватить все форм-факторы экранами: носимые устройства, телевизоры, встроенные системы, так что в конечном итоге не останется ни одного устройства со смутно современным графическим процессором, которое бы его не поддерживало. В общем, лучший способ расширить домен Dart и Flutter – это предоставить правильные примитивы, позволяющие независимым командам создавать фреймворки для новых пространств. Мы сами не планируем расширять Flutter на эти платформы в 2022 году, но мы призываем других, кто заинтересован в таких функциях, присоединиться к нам и внести свой вклад в Flutter.

3. Основные принципы

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

Во втором полугодии 2021 года мы уделили большое внимание командной скорости и замедлили разработку функций, чтобы создать лучшую инфраструктуру для Flutter. Эта работа еще не закончилась, даже когда мы наращиваем темпы и пользуемся преимуществами этой работы. Особенно по мере того, как мы расширяем команду и добавляем в наш стабильный канал веб-и настольные компьютеры, а также новое оборудование, такое как чипсет Apple M1, становится более важным, чем когда-либо, чтобы наша инфраструктура тестирования могла адекватно поддерживать наши растущие требования.

Одной из областей, вызывающих растущую озабоченность, является безопасность, и существует множество примеров того, как сложные субъекты исследуют уязвимости. Другие проекты с открытым исходным кодом, такие как npm, были нацелены, и с учетом популярности Flutter нет никаких оснований предполагать, что мы также не являемся активной мишенью. Мы будем продолжать повышать надежность нашей системы сборки, включив подпись кода для всех общедоступных выпусков, которые мы производим, а также для воспроизводимых сборок. Мы будем измерять это, отслеживая наше соответствие стандартам SLSA.

Дорожная карта 2022 года

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

Постоянная ссылка: https://flutter.dev/go/strategy-2022

Это публичная, слегка отредактированная версия стратегического документа Flutter 2022, опубликованного внутри Google. Для получения дополнительной информации прочтите это сообщение в блоге.

Похожие записи