Swift 5 является пятым основным выпуском языка для разработки приложений, разработан Apple Inc., заменив Swift 4.2.1. Первая стабильная версия была выпущена в апреле 2019 года.

Язык программирования Apple Swift 5.0

Apple Swift 5 — это следующий крупный релиз Swift, и его задача наконец обеспечить стабильность ABI со стандартными библиотеками.

В версии 5.0 заявлена стабильная работа ABI со стандартными библиотеками (Swift Dynamic Library), поддержка регулярных выражений и первоклассное решение для параллельной обработки данных с асинхронным режимом обработки async/await.

Режим совместимости со Swift 3 исключен. Поддерживаемые версии Swift — 4, 4.2 и 5.

Улучшения

  • Ускорение запуска и производительности приложений
  • Приложения весят меньше
  • Стабильность ABI
  • «Сырые строки»
  • Обработка будущих кейсов перечисления
  • Проверка кратности целому числу 
  • Динамически вызываемые типы
  • Поддержка регулярных выражений
  • Тип Result в стандартной библиотеке
  • Обновленная интерполяция строк
  • Метод compactMapValues в Dictionary
  • Изменение поведения try?
  • Атрибут @dynamicCallable
  • Поддержка оператора «меньше» в директивах проверки версии компилятора и языка
  • Параллельная обработка данных с асинхронным режимом
  • Улучшенные фреймворки: ARKit 2 для дополненной реальности и Core ML 2 для машинного обучения и построения нейронных сетей

Новое в Swift 5.1

  • Модульная стабильность;
  • Универсальный Self;
  • Предупреждения в случае двусмысленности варианта none;
  • Сопоставление optional и non-optional перечислений;
  • Сравнение упорядоченных коллекций;
  • Создание неинициализированных массивов;
  • Новые фреймворки: RealityKit и Reality Composer;
  • Улучшенные фреймворки: ARKit 3 для дополненной реальности и Core ML 3 для машинного обучения и построения нейронных сетей.

Новое в Swift 5.2

  • Значения у определяемых пользователем типов;
  • Использование KeyPath выражения как функции;
  • У Subscript можно объявить аргументы по умолчанию;
  • Новая и улучшенная диагностика ошибок.
  • Модульная стабильность;
  • Универсальный Self;
  • Предупреждения в случае двусмысленности варианта none;
  • Сопоставление optional и non-optional перечислений;
  • Сравнение упорядоченных коллекций;
  • Создание неинициализированных массивов;
  • Новые фреймворки: RealityKit и Reality Composer;
  • Улучшенные фреймворки: ARKit 3 для дополненной реальности и Core ML 3 для машинного обучения и построения нейронных сетей.

Новое в Swift 5.3 

Улучшения
  • Усовершенствованный пользовательский интерфейс;
  • Компиляция кода вышла на новый уровень с упрощенным интерфейсом, который работает быстрее;
  • Производительность для SwiftUI была улучшена во всем, и новый «ленивый просмотр» может эффективно обрабатывать огромные наборы данных;
  • Улучшенная диагностика компилятора Swift значительно облегчает поиск ошибок в коде;
  • Улучшенные фреймворки: ARKit 4 для дополненной реальности и Core ML 4 для машинного обучения и построения нейронных сетей;
  • Введена Float16 плавающая точка половинной точности;
  • Теперь можно опускать self в тех местах, где это больше не нужно.
Новое
  • Клипы приложений ( App Clips ) – это небольшая часть приложения, которую можно загрузить за считанные секунды и быстро запустить;
  • WidgetKit использует SwiftUI для создания новых красивых виджетов, которые пользователи могут
    установить непосредственно на домашнем экране iPhone или iPad;
  • StoreKit Testing framework и менеджер транзакций облегчают тестирование и отладку покупок в приложении.

Новое в Swift 5.4

  • Улучшенный синтаксис неявных членов;
  • Параметры с переменным числом аргументов в функциях;
  • Строители результатов;
  • Локальные функции теперь поддерживают перегрузку;
  • Обёртки свойств теперь поддерживаются для локальных переменных;
  • Пакеты теперь могут объявлять исполняемые target.

Новое в Swift 5.5

  • Async/await вводит в Swift асинхронные функции, которые позволяют запускать сложный асинхронный код почти так же, как если бы он был синхронным;
  • Перебор значений асинхронных коллекций с использованием нового протокола AsyncSequence;
  • Улучшены свойства, доступные только для чтения. Теперь они поддерживают ключевые слова async и throws, как по отдельности так и вместе;
  • Использование простого синтаксиса async let дает возможность создавать и ожидать дочерние задачи;
  • Continuations для взаимодействия асинхронных задач с синхронным кодом;
  • Новый тип данных — Актор. Акторы концептуально похожи на классы, которые можно безопасно использовать в параллельных средах;
  • Возможность изолировать с помощью акторов глобальное состояние потока данных от состояния гонки;
  • Поддержка «отправляемых» данных, то есть данных, которые можно безопасно передавать в другой поток. Это достигается с помощью нового протокола Sendable и атрибута @Sendable для функций;
  • Возможность использовать условия #if в выражениях с постфиксными членами;
  • Теперь есть возможность неявно конвертировать значения с типом CGFloat в Double;
  • Улучшение протокола Codable до поддержки перечислений со связанными значениями;
  • Ключевое слово lazy позволяет осуществлять отложенную инициализацию свойства;
  • Оболочки над свойствами теперь можно применять к параметрам функций и замыканий;
  • Статический поиск членов протоколов в дженерик функциях;
  • Улучшенные фреймворки: ARKit 5 для дополненной реальности, RealityKit 2 для создания 3D-модели.

На чём основан

Разработка языка Swift началась в 2010 году Крисом Латтнером, руководителем отдела разработки инструментов для создания программного обеспечения Apple и одним из основных разработчиков LLVM (Low Level Virtual Machine).

Swift заимствовал идеи из «Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, и ещё из многих языков». Первоначально для нового языка использовали название Shiny.

История версий Swift 5

  • Swift 5.0 — апрель 2019 года
    • Swift 5.0.1 — апрель 2019 года
    • Swift 5.0.2 — июль 2019 года — только для Linux
    • Swift 5.0.3 — август 2019 года — только для Linux
  • Swift 5.1 — сентябрь 2019 года
    • Swift 5.1.1 — октябрь 2019 года — только для Linux
    • Swift 5.1.2 — ноябрь 2019 года
    • Swift 5.1.3 — декабрь 2019 года
    • Swift 5.1.4 — январь 2020 года — только для Linux
    • Swift 5.1.5 — март 2020 года — только для Linux
  • Swift 5.2 — март 2020 года
    • Swift 5.2.1 — март 2020 года — только для Linux
    • Swift 5.2.2 — апрель 2020 года
    • Swift 5.2.3 — апрель 2020 года — только для Linux
    • Swift 5.2.4 — май 2020 года — только для Linux
    • Swift 5.2.5 — август 2020 года — только для Linux
  • Swift 5.3 — сентябрь 2020 года
    • Swift 5.3.1 — ноябрь 2020 года
    • Swift 5.3.2 — декабрь 2020 года
    • Swift 5.3.3 — январь 2021 годатолько для Linux и Windows
  • Swift 5.4 — апрель 2021 года
    • Swift 5.4.1 — май 2021 годатолько для Linux и Windows
    • Swift 5.4.2 — июнь 2021 года
    • Swift 5.4.3 — сентябрь 2021 годатолько для Linux и Windows
  • Swift 5.5 — сентябрь 2021 года

Версии Xcode работающие на Swift 5

  • Xcode 10.2 – Xcode 10.3;
  • Xcode 11 – Xcode 11.7;
  • Xcode 12.0 – Xcode 12.5.1.
  • Xcode 13.0

Предыдущая версия языка Apple Swift 4 вышла в сентябре 2017 года

Apple Swift
Apple Swift