Flutter 3.44 Конец эпохи CocoaPods и начало расцвета Swift Package Manager

от автора

Экосистема 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/