Swift давно вышел за рамки разработки приложений для iPhone и Mac. В Swift 6.4 язык получил единый механизм сборки проектов для Linux, macOS и Windows, расширенную поддержку Android и WebAssembly, новые возможности для серверных программ и более тесную интеграцию с C++, Java и Kotlin.
Главным изменением стал переход Swift Package Manager на Swift Build в качестве стандартной системы сборки. Разработчикам больше не нужно использовать разные механизмы сборки Swift-пакетов в зависимости от платформы: SwiftPM запускает один движок на Linux, macOS и Windows. Единая основа должна сократить различия в поведении проектов между операционными системами и упростить разработку библиотек и приложений сразу для нескольких платформ.
Swift Build вырос из сборочного движка Xcode. Apple открыла код проекта в феврале 2025 года и добавила поддержку Linux и Windows. В Swift 6.3 новый механизм появился в Swift Package Manager в предварительном режиме, а разработчики проекта проверяли совместимость на тысячах пакетов с открытым исходным кодом. Swift 6.4 завершил следующий этап перехода и сделал Swift Build стандартным вариантом.
Swift Package Manager заодно научился создавать SBOM, перечень программных компонентов и зависимостей проекта. Документы можно формировать в форматах SPDX и CycloneDX. Такой перечень помогает командам видеть состав приложения, отслеживать версии библиотек и быстрее проверять продукты после появления новых уязвимостей в зависимостях.
Для серверных программ и утилит заметным изменением стал выпуск Subprocess 1.0. Библиотека предоставляет единый кроссплатформенный API для запуска внешних программ, передачи аргументов, получения вывода и работы с потоковыми процессами. Реализация изначально построена вокруг модели конкурентности Swift и работает на нескольких поддерживаемых операционных системах.
Разработчики также расширили взаимодействие Swift с другими языками. Тип Span теперь напрямую совместим с std::span из C++20, поэтому данные можно передавать между Swift и C++ без ручного преобразования на границе языков. Проект Swift/Java получил дополнительную поддержку асинхронных функций, обработки ошибок, обратных вызовов, Java record и Runnable. Интеграция позволяет вызывать Swift-код из Java и Kotlin, что особенно важно для Android-разработки.
Поддержка Android стала глубже. Новый Swift SDK использует LTS-версию Android NDK 30, а Swift Build теперь умеет собирать Android-проекты через Swift Package Manager без дополнительного установочного скрипта. Разработчики могут использовать одну и ту же инфраструктуру SwiftPM для настольных систем и Android вместо отдельных цепочек сборки.
Swift 6.4 усилил и направление веб-разработки. Связка JavaScriptKit и WebAssembly ускорила безопасную передачу данных между Swift и JavaScript вплоть до 40 раз по сравнению с прежним динамическим механизмом. WebAssembly SDK теперь доступен непосредственно через Swift.org, поэтому для компиляции Swift-кода под браузер достаточно установить соответствующий SDK.
Изменения затронули инструменты разработки. Расширение Swift для Visual Studio Code появилось в Open VSX Registry, благодаря чему поддержка языка стала доступна не только в VS Code, но и в редакторах на той же платформе расширений, включая Cursor, Kiro и Antigravity. Интеграция со Swiftly упрощает выбор разных версий компилятора для отдельных проектов.
Разработчики переработали и отладочную информацию. LLDB теперь находит Swift-модули через точное отслеживание зависимостей вместо поиска только по имени. Бинарные модули Swift больше не приходится встраивать непосредственно в отладочные данные, поэтому размеры отладочных сборок на Linux и Windows, а также пакетов dSYM на платформах Apple, заметно уменьшились.
Сам язык тоже получил несколько изменений. Swift 6.4 разрешает асинхронные вызовы внутри defer, добавляет защиту операций очистки от отмены внешней задачи, позволяет управлять предупреждениями компилятора через атрибут @diagnose и вводит селектор :: для разрешения конфликтов одинаковых имен из разных модулей. Новые UniqueArray, UniqueBox, Ref, MutableRef и Iterable помогают сокращать лишнее копирование и выделение памяти без отказа от механизмов безопасной работы с памятью.
Вместе изменения показывают направление развития Swift за пределами экосистемы приложений Apple. Swift 6.4 сближает инструменты разработки для macOS, Linux, Windows, Android и WebAssembly, одновременно расширяя возможности языка для серверного ПО, системного программирования и кроссплатформенных проектов.