Incipia blog

A Letter on Swift 3.0

Gabe Kwakyi | August 9, 2016

Feature Image Credit: Apple

In a recent email on Friday, July 29th, Chris Lattner (famous Swift author and director of Apple's Developer Tools department) addressed some key topics regarding the Swift 3 release. The email started off with a retrospective on the development cycle, alluding to open source being more or less a double edged sword (though more beneficial than not) based on the Swift team's experience thus far. While the core Swift team is grateful to be working with such a vibrant, talented and enthusiastic community, they’re still tackling the ways in which some of the ongoing problems are being solved, such as:

  • software scheduling
  • managing which and how many topics for the community to focus on
  • maintaining clear and realistic goals
  • prioritizing features
After the work put into Swift 3, the priorities for Swift 4 have made themselves clear: source stability and ABI stability for the standard library. The current plan is to divide the next year into two stages:

Stage #1: Work on features that require structural changes to the ABI of existing features, or imply an ABI-breaking change to the standard library. This stage is anticipated to last until the Spring.

Stage #2: Depending on how much time there is left, work on some of the following features:
  • data reflection
  • first class concurrency (actors, async/await, atomicity, memory model, and related topics)
  • generics improvements
  • .swiftmodule stability
  • new scripting features (regex, multi-line string literals, etc.)
  • property behaviors
  • syntactic sugar
  • several other additive features
A list of API design modifications that have been made for Swift 3 includes:
  • first parameter label (e.g. indexOf(object: AnyObject) is now index(of: AnyObject))
  • needless words omitted (e.g. UIColor.blueColor() is now UIColor.blue())
  • modernized GCD and Core Graphics
  • lowerCamelCase for enums
  • methods that return or modify are more consistently named (a method that has a noun for its name will return a value, whereas methods that are named as imperative verbs will perform an action, or in other words, will modify in place)
A full overview of what’s been added to Swift 3 can be viewed here.

Developers are already free to use Swift 3 to write apps, but in order to do so, they must use Xcode 8. The caveat there is that, as of August 1st, the most recent version of Xcode 8 is still in beta (Xcode 8 beta 4), and in order to release an app to the App Store, the app must be submitted with a non-beta version of Xcode. It’s anticipated that Xcode will achieve GM in late 2016, and it’s recommended that developers hold off from using it if they are planning to release apps to the App Store before then.

The upcoming release plan for Swift is quite simple; Swift 3.x is scheduled to be released in the Spring of 2017, and Swift 4 is scheduled to be released in the Fall of 2017.

The bottom line: The core Swift team has been making vast improvements to the language, meaning that future migrations will be much less jarring. Open sourcing Swift has proven to be a good decision but still comes with its own set of challenges – all of which are being thoroughly reflected upon and addressed at the beginning of each release cycle. While developers can write in Swift 3 using the current beta version of Xcode 8, they will not be able to release apps to the App Store unless the app was submitted with a GM version of Xcode, which at the moment only includes Xcode 7 and previous versions.

Incipia is a mobile app development and marketing agency that builds and markets apps for companies with a development specialty in high-quality code architecture and keyword-based marketing optimizations. For business please contact us.

Browse our tags and categories for more related to iOS development news.