"Что нового в Swift" Март 2026
Swift 6.3: главные особенности релиза
Вышел Swift 6.3, который расширяет возможности языка в новых областях и повышает удобство его использования разработчиками. Одна из главных особенностей релиза — работа над улучшением кроссплатформенных инструментов сборки.
Оуэн Вурхис делится новостями об этой работе:
Привет! Меня зовут Оуэн, я ведущий инженер в команде Core Build в Apple. В прошлом году мы объявили о своей цели — внедрить Swift Build в Swift Package Manager, чтобы устранить дублирование технологий сборки в экосистеме Swift и обеспечить единообразие процесса сборки на всех платформах, поддерживаемых Swift.
С момента объявления мы работали открыто, выпустив сотни патчей для улучшения поддержки Swift Build на различных платформах, включая Linux и Windows, а также для его глубокой интеграции в Swift Package Manager.
Начиная с версии Swift 6.3 разработчики могут включить эту интеграцию и опробовать её на своих пакетах. Чтобы убедиться в том, что новая система сборки не уступает предыдущей, мы использовали список пакетов с сайта swiftpackageindex.com и протестировали тысячи пакетов с открытым исходным кодом с помощью Swift Build.
Совсем недавно основная ветка Swift начала использовать Swift Build в качестве системы сборки по умолчанию, что открывает путь к тому, чтобы в будущих релизах Swift Swift Build стал стандартной системой сборки для разработчиков Swift.
В ближайшие месяцы мы продолжим рассказывать о наших успехах и устранять оставшиеся ошибки, чтобы довести систему сборки до идеала. Мы призываем вас попробовать её и сообщать о найденных ошибках. Мы воодушевлены достигнутым прогрессом и с нетерпением ждём возможности улучшить инструменты для всех платформ и моделей проектов, которые выиграют от использования этой системы сборки.
Видеоролики
Интересуетесь системным программированием на Swift? Вот подборка свежих материалов:
В докладе «Containerization» на конференции SCaLE рассказывается о проекте Containerization и опыте внедрения Swift.
На восьмой встрече сообщества Swift были представлены два доклада:
о компьютерном зрении в реальном времени на NVIDIA Jetson;
о производственном конвейере данных для искусственного интеллекта, созданном с помощью Vapor.
В новом интервью с Мэттом Массикоттом в подкасте Swift Academy подробно рассказывается о параллельной обработке в Swift.
Основные моменты
Как постепенно отказаться от устаревших API перед выходом новой крупной версии? В блоге Point‑Free рассказывается о «жёстком» и «мягком» устаревании с помощью SwiftPM Traits — продуманном подходе к решению распространённой проблемы устаревания API.
Внедрение TelemetryDeck. Дэниел Джилг рассказал в блоге Swift о внедрении TelemetryDeck, в том числе о том, как они используют Swift и Vapor для серверных сервисов.
Релиз Swift для Wasm (март 2026 года). Представлен новый выпуск JavaScriptKit с улучшениями BridgeJS и продолжена работа над WasmKit.
Эволюция Swift
В рамках проекта Swift в язык добавляются новые возможности. Вот некоторые из предложений, которые в настоящее время находятся на рассмотрении или недавно были одобрены для включения в следующий релиз Swift:
На стадии рассмотрения:
SE‑0522. Управление предупреждениями компилятора на уровне исходного кода. Swift позволяет настраивать поведение предупреждений на уровне модуля с помощью флагов компилятора, но это подход по принципу «всё или ничего». Это предложение добавляет возможность детальной настройки предупреждений: атрибут
@warn, который позволяет переопределить поведение предупреждений для определённой диагностической группы в рамках одного объявления, с возможностью повышения уровня предупреждения до уровня ошибки, понижения до уровня предупреждения или полного отключения — без влияния на остальную часть модуля.
Недавно одобренные предложения:
SE‑0509. Генерация спецификации программного обеспечения (Software Bill of Materials, SBOM) для Swift Package Manager. SBOM — это стандартизированный перечень всех программных компонентов в проекте, который всё чаще требуется для аудита безопасности и соблюдения нормативных требований. Это предложение добавляет в SwiftPM встроенную функцию генерации SBOM в виде:
флага
--sbom-specдляswift build;отдельной подкоманды
swift package generate-sbomс поддержкой форматов CycloneDX и SPDX.
ST‑0021. Целенаправленная совместимость между Swift Testing и XCTest. При переходе с XCTest на Swift Testing часто возникает необходимость вызывать существующие вспомогательные функции XCTest из новых тестов Swift Testing. Сегодня сбой
XCTAssertв тесте Swift Testing игнорируется без каких‑либо уведомлений. Это предложение устраняет эту проблему:API XCTest будут работать должным образом при вызове в Swift Testing;
API Swift Testing — при вызове в XCTest, если XCTest уже предоставляет аналогичную функциональность.
SE‑0515. Разрешить функции
reduceвозвращать некопируемые результаты. В настоящее время функцияreduceв Swift требует, чтобы её начальное значение было копируемым, что делает её несовместимой с некопируемыми типами. В этом предложении функцияreduceдополняется:поддержкой некопируемых исходных значений и результатов;
функцией, которая не заимствует, а использует исходное значение, — что позволяет избежать ненужного копирования даже для копируемых типов.
