Добавить объявление

Swift 6.3: официальный SDK для Android и новый атрибут @c

Вышел Swift 6.3 - релиз, который делает акцент на том, чтобы язык работал не только на Apple-платформах. Android, C / C++ интеграция, улучшенная сборка и поддержка встраиваемых систем - вот главные темы этого обновления.

Главное нововведение - @c


Самый интересный атрибут в этом релизе - @c. Он позволяет экспортировать Swift-функции и перечисления в C-заголовки. То есть вы можете написать функцию на Swift и вызывать ее из C или C++ кода. Без лишних прослоек, без ручного написания оберток.

Особенно это актуально для библиотек, которые работают с LLM - большинство из них написаны на C / C++, а все остальное - обертки. Если у вас есть своя обертка над llama.cpp, теперь ее можно сделать более прямой и эффективной.

Также @c работает в паре с @implementation: можно объявить функцию в C-заголовке, а реализовать ее на Swift. Компилятор проверит, что сигнатуры совпадают, и сгенерирует все необходимое.

Модульные селекторы и контроль оптимизаций:


Другая полезная фича - модульные селекторы. Если в двух импортированных модулях есть функции с одинаковыми именами, раньше приходилось изворачиваться. Теперь можно явно указать: ModuleA::getValue() и ModuleB::getValue(). Конфликтов больше нет.

Для библиотек добавили новые атрибуты: @specialize (прекомпилированные версии generic-функций), @inline(always) (гарантированное встраивание) и @export(implementation) (экспорт реализации для оптимизаций). Это для тех случаев, когда нужно выжать максимум производительности.

SwiftPM и Swift Build:


Менеджер пакетов получил preview-версию нового движка сборки Swift Build. Он делает сборку более единообразной на всех платформах. Теперь не должно быть ситуаций, когда пакет собирается на macOS, но падает на Linux из-за различий в тулчейне.

Swift Testing: теперь с предупреждениями:


Фреймворк тестирования обзавелся несколькими полезными возможностями:

  • Можно записать предупреждение (severity: .warning), которое не помечает тест как упавший, но показывает, что что-то подозрительное произошло.

  • Теперь можно отменить тест после его запуска (try Test.cancel()), например, для пропуска отдельных аргументов в параметризованном тесте.

  • Добавлена поддержка вложений изображений - полезно для визуальных тестов.

Документация и кроссплатформа:


DocC получил экспериментальную поддержку генерации Markdown-версий документации и статического HTML (чтобы документацию было легче находить поисковым системам). А также новые аннотации для блоков кода: отключение копирования, подсветка строк, отображение номеров строк, перенос по ширине.

Android и Embedded:


В релизе появился официальный Swift SDK для Android. Это большой шаг для кроссплатформенной разработки на Swift. Можно писать нативные программы для Android, обновлять существующие пакеты, чтобы они собирались под Android, и интегрировать Swift-код в существующие приложения на Kotlin / Java.

Embedded Swift тоже получил улучшения: отладка, линковка, интероп с C - все это стало стабильнее.

Вывод:


Swift 6.3 - это не про очередные фичи для iOS-разработки. Это про то, чтобы Swift стал языком, на котором можно писать везде: от встраиваемых систем до Android-приложений. C-интероп через @c открывает прямой доступ к огромной экосистеме библиотек. А улучшения в SwiftPM и Swift Testing делают разработку более предсказуемой. Для тех, кто пишет кроссплатформенный код или работает с низкоуровневыми библиотеками, этот релиз - важный шаг вперед.
01.04.2026 25 242