Flutter 2.5: что нового?

Dart 2.14 Улучшенная производительность  по умолчанию, автозаполнение с поддержкой Apple Silicon, мобильное автозаполнение, новый виджеты и многое другое!

Перевод статьи What’s new in Flutter 2.5

Google, поисковый гигант, недавно выпустил новую стабильную версию своего широко популярного кросс-платформенного UI Framework Flutter. Flutter 2.5 вышел с 4600 закрытыми проблемами и 3932 объединенными PR.

Flutter 2.5 и Dart 2.14 были выпущены одновременно с очевидными значительными улучшениями производительности по сравнению с их современными релизами. Релиз Flutter продолжается с несколькими значительными улучшениями производительности и инструментария для поиска проблем производительности в вашем собственном приложении.

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

Улучшение производительности:

Этот выпуск сопровождается несколькими улучшениями производительности. iOS имеет меньше ошибок, потребляет меньше CPU и энергии, уничтожая ошибки из этого источника в нашем тестировании, и теперь более производительна. Кроме того, помощь iOS 8 устарела.

Задержка кадров из-за обработки результатов асинхронных событий до и после

Еще одна причина заедания — момент, когда сборщик мусора (GC) приостанавливает поток пользовательского интерфейса для восстановления памяти. В этом выпуске память для неиспользуемых изображений восстанавливается без особых усилий, что значительно сокращает время работы GC.

GC до и после добавления исправления для нетерпеливого освобождения неиспользуемой большой памяти изображений

Еще одним улучшением производительности во Flutter 2.5 стала задержка при отправке сообщений между Dart и Objective-C/Swift (iOS) или Dart и Java/Kotlin (Android). Устранение бессмысленных дубликатов из кодеков обмена сообщениями уменьшило задержки до половины в зависимости от размера сообщения и устройства.

Задержки сообщений iOS до и после

Dart 2.14

Этот выпуск Flutter поставляется с Dart 2.14

  • > Поддержка Apple Silicon
    > Форматировщик и каскады Dart
    > Поддержка Pub для игнорирования файлов с помощью.pubignore
    > Pub стал намного умнее и быстрее
  • Flutter Lints теперь из коробки..
  • > Добавлен новый triple shift оператор тройного сдвига (>>>)

Критические изменения

Удалена поддержка ECMAScript5
> Утратили актуальность команды dartfmt и dart2native, а также прекратили работу stagehand
> Устранены нативные расширения Dart VM

Если вы хотите узнать больше о Flutter, посетите Анонс Dart 2.14 чтобы получить больше информации.

Framework:

Релиз Flutter 2.5 включает в себя несколько исправлений и улучшений фреймворка.

Поддержка полноэкранного режима Android

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

Обычный режим (слева), режим «от края до края» (в центре), режим «от края до края» с пользовательским SystemUIOverlayStyle (справа)

Обновлены размеры Floating action button кнопки действия

В рамках Material You пользователи могут по своему желанию настроить FloatingActionButton большего размера. С помощью этого изменения FAB можно настроить в 4 размерах: маленький, обычный, большой и расширенный.

    • > MaterialState.scrolledUnder state added to SliverAppBar
      SliverAppBar(
                  backwardsCompatibility: false,
                  elevation: 0,
                  backgroundColor: MaterialStateColor.resolveWith((Set<MaterialState> states) {
                    return states.contains(MaterialState.scrolledUnder) ? Colors.indigo : Colors.blue;
                  }),
                  expandedHeight: 160,
                  pinned: true,
                  flexibleSpace: const FlexibleSpaceBar(
                    title: Text('SliverAppBar'),
                  ),
                ),

      > ListView теперь отправляет уведомления о прокручиваемых областях, даже если пользователь не прокручивает страницу


      Появление или исчезновение полосы прокрутки в зависимости от размера ListView

  • > Material banner supports now to the ScaffoldMessenger
  • Во Flutter 2.5 вы теперь сможете добавить баннер на самую высокую точку ваших лесов, который будет оставаться установленным до тех пор, пока пользователь не снимет его.

ElevatedButton(
  child: const Text('Show MaterialBanner'),
  onPressed: () => ScaffoldMessenger.of(context).showMaterialBanner(
    MaterialBanner(
      content: const Text('Hello, I am a Material Banner'),
      leading: const Icon(Icons.info),
      backgroundColor: Colors.yellow,
      actions: [
        TextButton(
          child: const Text('Dismiss'),
          onPressed: () => ScaffoldMessenger.of(context)
              .hideCurrentMaterialBanner(),
        ),
      ],
    ),
  ),
)

Плагины Camera и Image Picker получили множество новых возможностей

Камера: показывает некоторые функции —
3795 [camera] android-rework часть 1: Базовые классы для поддержки функций камеры Android
3796 [camera] android-rework часть 2: Функция автофокуса в Android
3797 [camera] android-rework часть 3: Функции Android, связанные с экспозицией
3798 [camera] android-rework часть 4: Функции вспышки и зума Android
3799 [camera] android-rework часть 5: Диапазон FPS, разрешение и ориентация сенсора в Android
Image Picker:
3898 [image_picker] Устройство выбора изображений исправляет устройство камеры
3956 [image_picker] Изменение места хранения снимков с камеры на внутренний кэш на Android, чтобы соответствовать новым требованиям к хранилищу Google Play
4001 [image_picker] Удален избыточный запрос на разрешение камеры
4019 [image_picker] Исправление поворота, когда камера является источником
> пакет аккумуляторов перенесен в battery_plus
Кроме того, поскольку эти плагины на данный момент не поддерживаются эффективно, они не выделены как плагины Flutter Favorite. Если вы еще не сделали этого, мы советуем перейти на дополнительные версии сопутствующих плагинов:

Об изменениях, на Android установлена ​​поддержка работа приложений в полноэкранный режим, в дополнение к продолжению реализация Концепция дизайна «Материальный ты», рекламируется как вариант материального дизайна следующего поколения.

Также было добавлено новое состояние MaterialState.scrolledUnder, реализовано динамическое отображение полос прокрутки при изменении размера и предложен новый интерфейс для отображения баннеров с уведомлениями.

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

Из других изменений которые выделяются из этой новой версии Flutter 2.5:

  • Различные исправления и улучшения фреймворка
  • Добавление уведомлений о показателях прокрутки
  • Новые возможности редактирования текста
  • Усовершенствованные инструменты разработчика (DevTools) с обновленным режимом наблюдения за виджетами, а также инструменты для обнаружения задержек отрисовки и отслеживания сборки шейдеров.
  • Улучшены плагины для Visual Studio Code и IntelliJ / Android Studio.
  • Началась работа над этой версией по поддержке приложений Flutter, созданных в Apple Silicon M1, которые изначально работают на симуляторах ARM iOS.

    Заключение:
    В Flutter 2.5-, по всей видимости, назван самым большим релизом со второй по величине статистикой в истории Flutter. Обновление создало зажигательную искру среди сообщества мобильных разработчиков, сосредоточившись на различных важных аспектах.
    В заключение, как всегда, спасибо сообществу Flutter по всему миру, которое делает все это возможным. Сотням разработчиков, которые внесли свой вклад и рассмотрели 1000 PR в этом обновлении, желаем плодов всех ваших усилий. Вместе мы работаем над тем, чтобы изменить процесс разработки приложений для разработчиков по всему миру, чтобы вы могли создавать больше и быстрее, развертывая приложения на платформах, которые вам важны, из единой кодовой базы.
    Следите за новостями от всех нас, членов команды Flutter в Google. Год еще не закончился!

Меню