Что нового в Flutter 3.3

Мы очень рады поделиться с вами, что Flutter 3.3. Помимо 5500+ объединенных заявок на исправление, этот релиз приносит обновления производительности Flutter Web, рабочего стола, включая текст и производительность, связанную с конкретикой и многое другое. Супер крутые из них перечислены ниже.

Мы знали это, больше Material You Support

  • Нет, это не динамическая тематика, для этого нам нужно подождать еще немного, но и сейчас есть много нового, Flutter обновил IconButton, фишки и большие и средние варианты для AppBar.
  • Вам нужно добавить флаг useMaterial3: true в данные темы.
  • Новая текстовая тема вместо headline1, headline2, headline3, … теперь у нас есть headlineLarge, headlineMedium, headlineSmall, titleLarge и многие другие, попробуйте их сегодня, используя Theme.of(context).textTheme.titleLarge.
  • Нижняя панель, ящик, выборки времени и даты и баннеры находятся в разработке

Крыльчатка

Impeller — это новая среда выполнения рендеринга для Flutter. Это наше решение проблемы раннего появления дрожания во Flutter. Impeller предварительно компилирует меньший, более простой набор шейдеров во время сборки движка, чтобы они не компилировались во время работы приложения.

В целом, Impeller преследует следующие цели:

Предсказуемая производительность: Вся компиляция шейдеров и отражение выполняются автономно во время сборки. Все объекты состояния конвейера создаются заранее. Кэширование является явным и находится под контролем движка.
Инструментально: Все графические ресурсы (текстуры, буферы, объекты состояния конвейера и т.д.) помечаются и маркируются. Анимация может быть захвачена и сохранена на диск без ущерба для производительности покадрового рендеринга.
Портативный: Не привязан к определенному клиентскому API рендеринга. Шейдеры создаются один раз и при необходимости конвертируются в форматы, специфичные для бэкенда.
Эффективно использует современные графические API: Широко использует (но не зависит от) возможности, доступные в современных API, таких как Metal и Vulkan.
Эффективное использование параллелизма: При необходимости может распределять однофреймовые рабочие нагрузки между несколькими потоками.

В настоящее время крыльчатка доступна для предварительного просмотра на iOS на мастер-канале;

  • Для его использования вы можете использовать flutter run --enable-impeller
  • или в iOS вы можете добавить его в файл info.plist как
<key>FLTEnableImpeller</key>
<true/>
Войти в полноэкранный режим Выйти из полноэкранного режима
  • или В Android, да, вы угадали, добавьте его в файл AndroidManifest.xml как
<!-- Under Application Tag -->
<meta-data
    android:name="io.flutter.embedding.android.EnableImpeller"
    android:value="true" />
Войти в полноэкранный режим Выйти из полноэкранного режима

Выделение текста

Выделение текста не было таким, каким оно должно быть во flutter web, но теперь с виджетом SelectionArea это очень просто. Оберните любой виджет с помощью SelectionArea и все. Он покажет вам курсор выделения на экране, и текст будет легко выделен. Пример

Улучшенные входы для трекпада

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

Поддержка Scribble

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

Поддержка Windows

Поддержка автообновления при каждом обновлении приложения, чтобы пользователи могли иметь самые последние функции, нам нужно внести пару изменений в файл pubspec.YAML и аргументы сборки и все, обмен windows-приложениями будет простым делом.

Пакет Go_router

Пакет Go Router упрощает навигацию и работу с глубокими ссылками. Все наши веб-проблемы с кнопками назад и перенаправлениями будут решены. Этот пакет поддерживается командой Flutter, поэтому полагаться на него — хорошая идея. Пример

Расширение VS Code

Теперь мы можем добавить несколько пакетов вместе, разделив их запятой в Dart: Add Dependency.

Улучшения растрового кэша

  • ImageProvider теперь имеет метод loadBuffer, который функционирует аналогично load, за исключением того, что он декодируется из ui.ImmutableBuffer.
  • ui.ImmutableBuffer теперь может быть создан непосредственно из ключа актива.
  • Классы AssetBundle теперь могут загружать ui.ImmutableBuffer.
  • PaintingBinding теперь имеет метод instantiateImageCodecFromBuffer, который функционирует аналогично instantiateImageCodec.
  • Метод ImageProvider.load теперь устарел, он будет удален в одном из будущих выпусков.
  • PaintingBinding.instantiateImageCodec теперь устарел, он будет удален в будущем выпуске.

Контроллер первичной прокрутки

API PrimaryScrollController был обновлен, чтобы больше не прикрепляться автоматически к вертикальным ScrollViews на настольных платформах.

Обработка ошибок

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

Без Devtools не будет обновления Flutter, DevTools имеет множество обновлений под капотом

Дайте мне знать, если у вас возникнут вопросы или пожелания. Я буду рада помочь вам. Ставьте лайк, делитесь и следите, если вам нравится то, что вы читаете. King Technologies

Спасибо за чтение

Оцените статью
devanswers.ru
Добавить комментарий