Экосистема Flutter совершила один из самых значительных скачков вперед. С выходом Flutter 3.44 команда официально сделала Swift Package Manager (SwiftPM) менеджером зависимостей по умолчанию для iOS и macOS, ознаменовав начало конца эпохи CocoaPods.
Но это еще не все. Этот релиз также знаменует собой серьезный архитектурный сдвиг в том, как поставляются виджеты Material и Cupertino. Давайте углубимся в детали.
1. Swift Package Manager: новый стандарт по умолчанию
Годами Flutter-разработчики под macOS и iOS полагались на CocoaPods. Будучи надежным, он все же требовал дополнительной настройки окружения на базе Ruby и часто приводил к «аду версий» или сложным конфигурациям сборки.
Начиная с Flutter 3.44, SwiftPM теперь используется по умолчанию.
Почему произошли эти изменения?
-
Ноль внешних зависимостей: Поскольку SwiftPM поставляется в комплекте с Xcode, вам больше не нужен Ruby или головная боль с
pod installдля начала работы. -
Нативная интеграция с Xcode: Лучшая производительность, более быстрая индексация и более «нативный» (Apple-native) способ работы с платформенно-зависимым кодом.
-
Доступ к экосистеме: Теперь как никогда просто интегрировать современные Swift-пакеты напрямую в ваши Flutter-плагины.
Как выполнить миграцию?
Если вы готовы перевести свой текущий проект на новый стандарт, Flutter CLI сделает это на удивление просто:
1. Убедитесь, что используете последнюю стабильную версиюflutter upgrade2. Включите SwiftPMflutter config --enable-swift-package-manager3. Запустите приложение для инициализации автоматической миграцииflutter run -d ios
2. Великое разделение: Material и Cupertino UI
Пожалуй, самое большое изменение «под капотом» в версии 3.44 — это заморозка кода (code freeze) библиотек Material и Cupertino внутри ядра Flutter SDK.
Что означает «заморозка кода»?
Команда Flutter переносит виджеты Material и Cupertino из репозитория flutter/flutter в независимые пакеты: material_ui и cupertino_ui.
-
Более быстрые итерации: Эти UI-библиотеки больше не будут привязаны к 3-месячному циклу релизов SDK. Вы будете получать новые функции Material 3 и исправления Cupertino сразу же, как только они будут готовы на pub.dev.
-
Уменьшение размера приложения: В конечном итоге, если вы не используете виджеты Material, вам не придется включать всю эту библиотеку в ваш бинарный файл.
-
Примечание для разработчиков: В версии 3.44 вы увидите предупреждение об устаревании (deprecation warning), если продолжите полагаться на встроенные версии. Самое время задуматься о миграции ваших импортов на новые автономные пакеты.
3. Улучшение производительности и инструментов
Хотя переход на SPM и отделение UI заняли центральное место, версия 3.44 приносит еще несколько полезных обновлений для комфорта разработчиков:
-
Улучшения Impeller: Vulkan-бэкенд для Android продолжает развиваться. Значительно снижены подтормаживания (jank) при компиляции шейдеров и улучшено управление памятью.
-
Поддержка размера страницы 16 КБ на Android: Это критически важно для совместимости с грядущим высокопроизводительным оборудованием на базе Android.
-
BuildRunner AOT: Если вы используете такие пакеты, как
freezedилиjson_serializable, вы заметите, что генерация кода теперь происходит до 10 раз быстрее благодаря новым хукам AOT-компиляции.
Заключение: пора ли обновляться?
Абсолютно. Flutter 3.44 — это не просто очередное инкрементальное обновление; это модернизация всего рабочего процесса разработчика. Избавляясь от зависимости от CocoaPods и делая UI-слой модульным, Flutter становится более легковесным, быстрым и лучше интегрированным с нативными экосистемами.
Следующие шаги:
-
Обновитесь до версии 3.44.
-
Включите SwiftPM в вашем
flutter config. -
Проверьте свои импорты на наличие новых пакетов
material_uiиcupertino_ui.
ссылка на оригинал статьи https://habr.com/ru/articles/1036834/