Что нового во Flutter 2.5

Что нового во Flutter 2 5
Что нового в версии Flutter 2 5

Версия Flutter 2.5 продолжает ряд важных улучшений производительности и инструментов для отслеживания проблем с производительностью в вашем собственном приложении.

В то же время появился ряд новых функций, включая полноэкранную поддержку Android, дополнительную поддержку Material You (v3), обновленное редактирование текста для поддержки переключаемых сочетаний клавиш, новый, более подробный взгляд на ваши виджеты в Инспектор виджетов (the Widget Inspector), новая поддержка для добавления зависимостей в ваши проекты Visual Studio Code, новая поддержка получения информации о покрытии из ваших тестовых запусков в IntelliJ / Android Studio и совершенно новый шаблон приложения, который послужит лучшей основой для ваших реальных приложений Flutter.

Что нового во Flutter 2.5

Производительность: разогрев шейдера iOS, асинхронные задачи, сборщик мусора и передача сообщений

В этом выпуске есть несколько улучшений производительности, а именно:

  • Предварительная компиляции шейдера Metal ( # 25644 ), которая сокращает время растеризации кадра в худшем случае на 2/3 секунды;
  • Раньше обработка асинхронных событий из сети, файловой системы, подключаемых модулей или других изоляторов могла прерывать анимацию, еще один источник мусора. После улучшений политик планирования (#25789) в цикле событий изолятора пользовательского интерфейса в этом выпуске обработка кадров теперь имеет приоритет над обработкой других асинхронных событий, что устраняет нежелательные данные из этого источника в нашем тестировании.
  • Другой причиной засорения является то, что сборщик мусора (the garbage collector (GC)) приостанавливает поток пользовательского интерфейса для освобождения памяти. В этом выпуске Flutter 2.5 память для неиспользуемых изображений быстро освобождается ( # 26219 , # 82883 , # 84740 ), что значительно сокращает сборщики мусора.
Сборщики мусора до и после добавления исправления в Flutter 2.5 для быстрого освобождения неиспользуемой большой памяти изображений
Сборщики мусора до и после добавления исправления в Flutter 2.5 для быстрого освобождения неиспользуемой большой памяти изображений
  • Еще одно улучшение производительности Flutter 2.5 — это задержка при отправке сообщений между Dart и Objective-C / Swift (iOS) или Dart и Java / Kotlin (Android). Как часть настройки каналов сообщений в целом, удаление ненужных копий из кодеков обмена сообщениями сокращает задержки до 50% в зависимости от размера сообщения и устройства ( # 25988 , # 26331 ).
Задержки сообщений iOS до и после
Задержки сообщений iOS до и после
  • Последнее обновление производительности, если вы ориентируетесь на iOS: в этом выпуске приложения Flutter 2.5, созданные на компьютерах Mac Apple Silicon M1, изначально работают на симуляторах ARM iOS ( # pull / 85642 ). Это означает, что нет перевода Rosetta между инструкциями Intel x86_64 и ARM, что увеличивает производительность во время тестирования вашего приложения для iOS и позволяет избежать некоторых тонких проблем Rosetta ( # 74970 , # 79641 ). Это еще один шаг на пути к полной поддержке Flutter для Apple Silicon.

Dart 2.14: форматирование, языковые функции, Pub и набор правил «из коробки»

Конечно, Flutter — это не Flutter без языка Dart и среды выполнения, на которых он построен. Этот выпуск Flutter поставляется с Dart 2.14.

В новом выпуске Dart реализовано новое форматирование, делающее каскады более понятными, новая поддержка pub для игнорирования файлов и новые языковые функции, включая возвращение легендарного оператора тройного сдвига (>>>).

Вдобавок и одна из лучших особенностей Dart 2.14 заключается в том, что в этом выпуске создан стандартный набор линтов (набор основных правил, соответствующих гайду по стилю написания Dart), совместно используемых новыми проектами Dart и Flutter, которые поставляются прямо из коробки.

предварительно заполненные рекомендованные линты Flutter в файле analysis options yaml
`flutter create` выходит из коробки с файлом analysis_options.yaml, предварительно заполненным рекомендованными линтами Flutter.

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

Framework: полноэкранный режим Android, Material You & ярлыки для редактирования текста

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

В этом выпуске мы продолжаем создавать поддержку новой спецификации Material You (v3), включая обновления размеров и тематики кнопок с плавающим действием ( # 86441 ), а также новое MaterialState.scrolledUnderсостояние, которое вы можете увидеть в действии с образцом кода в PR ( # 79999 ).

Еще один отличный вклад сообщества — добавление поддержки баннеров Material в ScaffoldMessenger. Во Flutter 2.5 теперь можно добавить баннер в верхнюю часть Scaffold, который остается на месте, пока пользователь не закроет его.

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

Плагины: камера, средство выбора изображений и дополнительные плагины

Flutter DevTools: производительность, инспектор виджетов

Этот выпуск Flutter содержит ряд улучшений Flutter DevTools. Прежде всего, это добавленная поддержка в DevTools для использования обновлений движка ( # 26205 , # 26233 , # 26237 , # 26970 , # 27074 , # 26617 ).

Подробнее в Заметки о выпуске Flutter DevTools 2.6.0.

IntelliJ / Android Studio: интеграционные тесты, тестовое покрытие и предварительный просмотр значков

Плагин IntelliJ / Android Studio для Flutter также претерпел ряд улучшений в этом выпуске, начиная с возможности запускать интеграционные тесты ( # 5459 ).

Интеграционные тесты (Integration tests) — это тесты для всего приложения, которые выполняются на устройстве, находятся в каталоге integration_test и используют те же testWidgets() функции, что и модульные тесты виджетов.

Чтобы добавить интеграционный тест в свой проект, следуйте инструкциям на flutter.dev.

Последний выпуск также включает новую возможность предварительного просмотра значков, используемых из пакетов из pub.dev, созданных на основе файлов шрифтов TrueType ( # 5504 , # 5595 , # 5677 , # 5704 ), точно так же, как значки Material и Cupertino поддерживают предварительный просмотр.

Предварительный просмотр значков в IntelliJ / Android Studio
Предварительный просмотр значков в IntelliJ / Android Studio

Код Visual Studio: зависимости, исправить все (Fix All) и средство запуска тестов

Подключаемый модуль Visual Studio Code для Flutter также улучшился в этом выпуске, начиная с двух новых команд «Dart: Add Dependency» и «Dart: Add Dev Dependency» ( # 3306 , # 3474 ).

Вас также может заинтересовать команда «Fix All» ( # 3445 , # 3469 ), которая доступна для файлов Dart и может исправить все те же проблемы, что и исправление dart для текущего открытого файла, за один шаг.

Использование правил Flutter Fix для исправления всех известных проблем в коде
Использование правил Flutter Fix для исправления всех известных проблем в вашем коде

Его также можно настроить для запуска при сохранении, добавив source.fixAll в параметр editor.codeActionsOnSave VS Code.

Инструменты: исключения, новый шаблон приложения и Pigeon 1.0

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

В этом выпуске есть новый шаблон ( # 83530 ), доступный с помощью следующей команды:

$ flutter create -t skeleton my_app
Новый стартовый шаблон skeleton Flutter в действии
Новый стартовый шаблон skeleton Flutter в действии

Стартовый шаблон Skeleton создает двухстраничное приложение List View Flutter (с подробным представлением), которое соответствует лучшим практикам сообщества.

Продробнее о стартовом шаблоне Flutter.

Критические изменения и прекращение поддержки

Ниже приведены критические изменения в выпуске Flutter 2.5:

Полный список критических изменений с момента выпуска 1.17 см. На flutter.dev .

Кроме того, с выпуском Flutter 2.5 прекращена поддержка iOS 8, как было объявлено в сентябре 2020 года .

Отказ от поддержки iOS 8, доля рынка которой составляет менее 1%, позволяет команде Flutter сосредоточиться на новых платформах для более широкого использования.

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

Список поддерживаемых в настоящее время платформ Flutter.

Источник: What’s new in Flutter 2.5

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *