Flutter 3 - последний этап для перехода от мобильной к многоплатформенной интегрированной среде, которая поддерживает настольные приложения для macOS и Linux, интеграцию с Firebase, функции повышения производительности, а также может быть совмещена с Apple Silicon. О том, что интересного доступно в новой версии, узнаем под катом.
Путь к Flutter 3
Flutter создан, чтобы в корне изменить процесс разработки приложений: объединить итеративную модель веб-разработки с аппаратно-ускоренным рендерингом графики и пиксельным управлением, которые ранее использовались только в игровой индустрии. За 4 года с начала бета-тестирования Flutter 1.0 к этому фундаменту добавили новые возможности фреймворка и виджеты, обширную библиотеку пакетов, а также поработали над более глубокой интеграцией с базовыми платформами и улучшили производительность многих инструментов.
По мере совершенствования Flutter все больше пользователей стали создавать приложения на основе данного продукта. На сегодняшний день их число составляет 500 000. Согласно общедоступным отзывам пользователей и данным исследовательских компаний, таких как data.ai, что Flutter используется во многих сегментах разработки: от социальных сетей и мессенджеров (WeChat), до финансовых и банковских приложений (Betterment и Nubank); от маркетплейсов, таких как SHEIN и trip.com, до лайфстайл-приложений, таких как Fastic и Tabcorp; от сопутствующих приложений, до приложений государственных учреждений, например правительства Бразилии.
По словам разработчиков, Flutter помогает быстрее создавать красивые приложения для большего количества платформ. В одном из исследований пользователей:
91% разработчиков подтвердили, что Flutter сокращает время создания и публикации приложения;
85% разработчиков с помощью Flutter смогли создать более красивые приложения;
85% сделали свое приложение совместимым с большим количеством платформ, чем раньше.
В своем блоге компания Sonos подчеркнула второе преимущество:
«Не будет преувеличением сказать, что с Flutter мы достигли такого уровня, о котором даже и не мечтали раньше. Для наших дизайнеров важна легкость, с которой можно создавать новые пользовательские интерфейсы – так наша команда может больше времени посвятить доработке технической составляющей продукта. Если это важно и для вас, мы рекомендуем попробовать Flutter».
Flutter 3
С Flutter 3 возможно создавать приложения для шести платформ на единой кодовой базе, разработчики получили непревзойденную производительность, а стартапы смогут мгновенно воплощать новые идеи и выводить их на рынок.
В предыдущих релизах к поддержке iOS и Android была добавлена поддержка веб и Windows, а теперь Flutter 3 поддерживает и разработку приложений для macOS и Linux. Чтобы обеспечить поддержку платформы, недостаточно простого рендеринга пикселей: необходимы новые модели ввода и взаимодействия, поддержка компиляции и сборки, доступность и интернационализация, а также интеграция с конкретной платформой. Цель – обеспечить гибкость, позволяющую в полной мере использовать преимущества базовой операционной системы, в то же время адаптируя пользовательский интерфейс и логику в том объеме, который необходим пользователю.
В разработке для macOS сделан акцент на поддержке Intel и Apple Silicon, а также Universal Binary, которая позволяет приложениям упаковывать исполняемые файлы, изначально работающие на обеих архитектурах. А Linux, Canonical и Google разработали совместную среду для разработок с высокой степенью интеграции.
Приложение Superlist является примером того, как с помощью Flutter можно создавать прекрасные приложения для рабочего стола. Superlist разработан для эффективной совместной работы: создания списков и постановки задач, позволяющих по-новому взглянуть на личное планирование. Команда приложения выбрала Flutter за возможность создавать современные и запоминающиеся приложения; их прогресс служит доказательством того, что выбор Flutter оказался удачным.
Во Flutter 3 также усовершенствованы некоторые базовые элементы, улучшена производительность и добавлена поддержка Material You.
В дополнение к изменениям, упомянутым выше, эта версия Flutter полностью совместима с устройствами на кристаллах Apple silicon. Flutter был совместим с устройствами Apple на базе M1 с начала его выпуска, теперь Flutter в полной мере использует поддержку Dart Apple Silicon, что позволяет значительно ускорить компиляцию на устройствах на базе M1 и обеспечить поддержку универсальных двоичных файлов для приложений macOS.
В этом выпуске завершена работа над Material Design 3 – теперь разработчикам доступны преимущества адаптируемой кроссплатформенной системы дизайна, которая предлагает динамические цветовые схемы и обновленные визуальные компоненты.
Flutter работает на Dart, высокопроизводительном переносимом языке для многоплатформенной разработки. В этом цикле работ включены новые функции языка Dart, которые сокращают шаблонность и упрощают чтение, экспериментальную поддержку RISC-V, обновленный инструмент контроля качества кода (linter) и новую документацию. Все детали обновлений Dart можно найти в специальном блоге.
Firebase и Flutter
Конечно, создание приложения не ограничивается созданием фреймворка пользовательского интерфейса. Разработчикам нужен комплексный набор инструментов, которые помогут создавать, выпускать и управлять приложениями для аутентификации, хранения данных, облачных функций и тестирования. Flutter поддерживают большое количество сервисов: Sentry, AppWrite, AWS Amplify и многие другие.
Сравнительные исследования среди разработчиков, проведенные SlashData, показывают, что 62% разработчиков Flutter используют в своих приложениях систему Firebase. При разработке 3й версии, это момент учли и добавили обновление плагинов Firebase для Flutter до версии 1.0, которое включает добавление улучшенной документации и инструментов, а также новых виджетов, таких как пользовательский интерфейс FlutterFire, которые предоставляют разработчикам многоразовый пользовательский интерфейс для экранов аутентификации и профилей.
Сейчас можно отметить, что интеграция Flutter/Firebase завершена. Это означает, что исходный код и документация размещены в основном репозитории и на сайте Firebase, поддержка Firebase для Flutter будет продолжаться параллельно с Android и iOS.
Кроме того, стоит отметить в новой версии, значительно улучшили поддержку приложений Flutter с помощью Crashlytics, популярного сервиса отчетов о сбоях в режиме реального времени. С плагином Crashlytics для Flutter можно отслеживать критические ошибки в режиме реального времени, используя тот же набор функций, который доступен другим разработчикам iOS и Android. Доступ к важным оповещениям и показателям поможет обеспечивать максимальную стабильность приложения. Обновленный конвейер аналитики (analysis pipeline) Crashlytics помог усовершенствовать кластеризацию сбоев Flutter, а также ускорить процесс сортировки, определения приоритетов и устранения проблем. И, наконец, упрощён процесс установки плагина, так что для запуска и работы с Crashlytics требуется всего пара действий – непосредственно из вашего кода Dart.
Набор для создания казуальных игр Flutter
Для большинства разработчиков Flutter – это фреймворк для создания приложений. Но также существует растущее сообщество разработчиков казуальных игр, которым наряду с игровыми движками с открытым исходным кодом необходима поддержка графики с аппаратным ускорением, предоставляемая Flutter. Чтобы разработчикам было легче начать работу, создан набор инструментов для создания казуальных игр, который включает в себя стартовый набор шаблонов и рекомендаций, а также баллы (credits) на рекламу и облачные сервисы.
Хотя Flutter не предназначен для создания сложных 3D-игр, создатели некоторых из них пользуются им для разработки неигрового пользовательского интерфейса – например игра PUBG Mobile, которая имеет сотни миллионов пользователей.