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