Swift is a general-purpose programming language developed by Apple Inc first released in 2014 for its platforms and Linux. Swift is open-source. Use the tag only for questions about language features or requiring code in Swift. Use the tags [ios], [ipados], [macos], [watch-os], [tvos], [swiftui], [cocoa-touch], and [cocoa] for (language-agnostic) questions about the platforms or frameworks.
Swift is an application and systems programming language introduced by Apple on June 2, 2014, and distributed as open source. Swift interoperates with Objective-C and Cocoa/Cocoa Touch APIs for Apple's iOS, macOS, watchOS, tvOS, and iPadOS operating systems.
Current stable version is Swift 5.9.1 released on October 19, 2023 (download).
- Swift is open-source, available on GitHub
- Swift >=2.2 includes support for Swift on a Linux platform.
- Swift >=5.3 includes support for Swift on a Windows platform.
Please use the openstack-swift tag for questions relating to OpenStack's object/blob store, and the swift-scripting tag for questions relating to the parallel scripting language.
Swift promises to modernize the developer experience over what Objective-C provides, offering features like:
- Generics
- Type safety
- Type inference
- Namespaces
- Improved safety (some protection from overflow, use-before-initialization, etc.)
- Higher-order functions (map, filter, sort)
among others.
The Swift syntax retains some elements from Objective-C while providing an extensive new vocabulary for its new features.
The language can use existing iOS and macOS frameworks, like Cocoa and Cocoa Touch, and can sit side-by-side with Objective-C in applications. Swift applications compile into standard binaries and can be run on OS X 10.9, iOS 7 (or higher), tvOS and watchOS.
Timeline
Swift 2.0 was introduced by Apple at WWDC on 8th June 2015. They added new features like the "Error handling model" with
try
,throw
andcatch
.Swift 2.2 was introduced with Xcode 7.3 on 21st March 2016. (release notes)
Swift 3.0 was introduced by Apple at WWDC on 13th June 2016, with the news that Swift will come to non-Apple platforms (Windows, Linux, Android, Raspberry Pi, and so on). (release notes)
Swift 3.1 was introduced with Xcode 8.3 on 27th March 2017. (release notes)
Swift 4.0 was introduced by Apple at WWDC on 5th June 2017. (release notes)
Swift 4.1 was introduced with Xcode 9.3 on 29th March 2018. (release notes)
Swift 4.2 was introduced by Apple at WWDC on 4th June 2018. (release notes)
Swift 5.0 was introduced with Xcode 10.2 on 25th March 2019. (release notes)
Swift 5.1 was introduced with Xcode 11 on 20th September 2019. (release notes)
Swift 5.2 was introduced with Xcode 11.4 on 24th March 2020. (release notes)
Swift 5.3 was introduced with Xcode 12 on 16th September 2020. (release notes)
Swift 5.4 was introduced with Xcode 12.5 on 26th April 2021. (release notes)
Swift 5.5 was introduced with Xcode 13 on 20th September 2021. (release notes)
Swift 5.6 was introduced with Xcode 13.3 on 14th March 2022. (release notes)
Swift 5.7 was introduced with Xcode 14 on 12th September 2022. (release notes)
Swift 5.8 was introduced with Xcode 14.3 on 30th March 2023. (release notes)
Swift 5.9 was introduced with Xcode 15 on 18th September 2023. (release notes)
Resources
References
- Introduction to Swift
- A Swift Tour
- Welcome to Swift.org
- Using Swift with Objective-C
- Swift Blog by Apple
- Swift Resources
- Swift tutorial Blog
- Developing iOS 11 Apps with Swift By Stanford
Books
- The Swift Programming Language (iBooks)
- Swift Standard Library Reference
- Using Swift with Cocoa and Objective-C (iBooks)
- App Development With Swift
- Pro Design Patterns in Swift
- Swift by Example
- Swift for Programmers (Deitel Developer Series)
- Learning Swift Building Apps for OS X and iOS
- iOS Development in Swift
Other resources
- Swift Tutorials
- Swift Playgrounds by Apple Inc
- Awesome Swift - A collaborative list of awesome Swift libraries and resources
Related Tags
- objective-c
- swift swift2 swift2.1 swift2.2 swift2.3 swift3 swift3.1 swift4 swift4.1 swift4.2 swift5.0 swift5.1 swift5.2 swift5.3 swift5.4 swift5.5 swift5.6 swift5.7
- swiftui
- swift-concurrency
- swift-package-manager
- swift-playground
- swift-protocols
- xcode
- cocoapods
- carthage
- cocoa cocoa-touch
- ios macos watch-os tvos iphone vapor ipados