«Что нового в Swift» — кураторский дайджест релизов, видео и обсуждений в проекте и сообществе Swift.

Июнь был насыщенным месяцем для Swift: анонсы на WWDC и мероприятия сообщества по всему миру. Мы пригласили организаторов одного из них поделиться своими впечатлениями:

Привет, это Микаэла и Адриан. Мы организаторы CommunityKit, конференции, организованной сообществом, которая проходит на той же неделе, что и WWDC, и iOSDevHappyHour, ежемесячной онлайн-встречи, которая поддерживает связь с сообществом круглый год. Мы приезжаем в Купертино уже пятый год подряд, и нам нравится создавать условия для развития сообщества, независимо от того, где живут разработчики.

CommunityKit собрал более 250 разработчиков в реальной жизни, чтобы ознакомиться с анонсами, поддержать сообщество и атмосферу, посмотреть, что все создают, и поучиться друг у друга. Одними из самых ярких событий этого года стали Indie Fair, на которой разработчики представили свои приложения; Watch Party - наша ежегодная встреча, на которой мы вместе смотрим презентации; и завершающая неделю мастер-класс по изготовлению открыток “Сделай что-нибудь, не отправляя ничего”. В этом году мы также провели семинары, в том числе “Инклюзивный дизайн” от Даниэль Льюис, а для сообщества Swift - “Пиши быстрее и умнее в Swift” от Пола Хадсона.

Нам не терпится узнать о том, что каждый из них создаст и представит на инди-ярмарке в следующем году, и мы надеемся увидеть вас на CommunityKit и iOSDevHappyHour!

Основные моменты WWDC26

На конференции WWDC26 Apple поделилась обновлениями о внедрении Swift и сделала ряд новых анонсов, связанных с этим языком. Вот некоторые из них:

  • На Platforms State of the Union Apple объявила, что части ядра основной операционной системы будут написаны на Swift в предстоящих релизах.

  • В сессии What’s new in Swift были представлены изменения в языке с прошлого года, включая превью того, что готовится в Swift 6.4: например, ускорение парсинга URL до 4 раз и поддержка асинхронного кода в блоках defer.

  • Транспортный уровень QUIC в сетевом стеке Apple был переписан на Swift. Проект открыт и доступен для кроссплатформенного использования через интеграцию со SwiftNIO.

  • Выпущен новый пакет Swift — Foundation Models framework utilities — с инструментами для работы с LLM, включая пользовательские навыки и помощники для управления контекстом. Работает на платформах Apple и на выбранных дистрибутивах Linux.

  • Сам Foundation Models framework будет открыт в будущем, что означает, что те же Swift API, которые вы используете в приложении, смогут работать и на сервере.

  • Container Machine — новый инструмент, предоставляющий лёгкое постоянное окружение Linux на Mac. В отличие от контейнера, который моделируется по образу приложения, container machine моделируется по образу самого окружения. Container machines разделяют окружение хоста, включая домашний каталог и конфигурацию. Написан на Swift и имеет открытый исходный код.

Видео к просмотру

Яркие моменты из сообщества

  • Swift Package Index присоединился к Apple и остаётся открытым исходным кодом. Команда сообщает, что они работают вместе над созданием комплексного реестра пакетов для сообщества Swift.

  • Yeo Kheng Meng написал в блоге о переносе Swift на Apple II — с REPL, компилятором, файловым браузером и редактором. Это подмножество Swift, созданное с помощью ИИ.

  • Apple опубликовала в блоге Swift историю внедрения: Migrating the TrueType Hinting Interpreter, — о том, как интерпретатор TrueType hinting в macOS и iOS был переписан с C на Swift. В среднем работает на 13% быстрее.

  • Swift Ecosystem Steering Group объявил о создании рабочей группы по сетевым технологиям (Networking workgroup). Эта группа будет работать над унифицированным сетевым стеком для Swift — от низкоуровневых примитивов ввода-вывода через общие протоколы до современного HTTP-клиента и серверного API.

Новые выпуски пакетов

  • Выпущены новые Swift-привязки для Java-библиотеки OkHttp. Если вы используете Swift на Android и ищете HTTP-клиент — это может быть полезно. Проект сгенерирован с помощью swift-java.

  • Kiln — новый движок документации, написанный на Swift. Создан для замены сайтов документации на базе MkDocs, он предоставляет сообществу Swift больше возможностей для рендеринга документации наряду с проектом DocC, используемым для официальной документации Swift. Kiln можно увидеть в действии на сайте документации Vapor.

  • Выпущена версия 0.4.0 Elementary UI — фронтенд-фреймворка для нативного запуска Swift-приложений в браузере.

Эволюция Swift

Проект Swift добавляет новые языковые возможности через процесс Swift Evolution. Вот некоторые предложения, которые в настоящее время находятся на стадии рассмотрения или недавно приняты для будущего выпуска Swift.

На стадии активного рассмотрения:

  • SE-0526 withDeadline — Асинхронные операции в Swift могут выполняться бесконечно, а реализация временных ограничений вручную с помощью групп задач и операций сна часов получается многословной и подверженной ошибкам. Это предложение добавляет withDeadline — функцию, которая выполняет асинхронную операцию с композитным абсолютным временным ограничением, указанным как момент времени часов, отменяя операцию, если она не завершилась вовремя. Оно также позволяет нескольким вложенным операциям разделять один и тот же дедлайн, избегая дрейфа, который накапливается при передаче относительных длительностей через слои вызовов.

Недавно принятые:

  • SE-0474 Yielding Accessors — Когда вы вызываете мутирующий метод на вычисляемом свойстве, Swift создаёт иллюзию изменения на месте, получая копию, мутируя её и затем устанавливая обратно. Это вызывает ненужное дублирование буфера copy-on-write для типов вроде String и невозможно для noncopyable типов, которые вообще нельзя скопировать. Это предложение добавляет yielding borrow и yielding mutate — два новых способа реализации вычисляемых свойств и сабскриптов, которые вместо этого предоставляют вызывающей стороне прямой доступ к базовому значению без копирования.

Недавно принятые с изменениями:

  • SE-0529 Add FilePath to the Standard LibraryFilePath в пакете swift-system разбирает платформенно-специфичный синтаксис путей от имени разработчика, предоставляет нормализованное представление компонентов пути и позволяет разрешение файловой системы. Однако поскольку он поставляется во внешнем пакете, стандартная библиотека, рантайм Swift и инструментальные библиотеки вроде Foundation не могут зависеть от него. Это предложение добавляет FilePath и связанные с ним типы в модуль Swift, наряду с основной функциональностью для конструирования, декомпозиции, разрешения и совместимости с C.

  • SE-0527 UniqueArrayArray в Swift не может хранить noncopyable элементы без компрометации семантики copy-on-write или предсказуемости производительности. Это предложение добавляет два новых типа в новый модуль Containers: RigidArray — массив фиксированной ёмкости, который прерывает выполнение при переполнении, и UniqueArray — динамически растущий массив, который обеспечивает уникальное владение, будучи сам noncopyable.

Комментарии (0)