How To Keep Up With Swift Changes

Written by Reinder de Vries on April 18 2018 in App Development

How To Keep Up With Swift Changes

How do you deal with Swift changes as you’re learning how to code iOS apps?

It’s a frustration that many beginner iOS developers share. When I recently asked iOS developers for their biggest challenges, here’s a comment I got:

The fact that Apple is CONSTANTLY changing Swift!!!

The liberal use of all-caps and exclamation marks says a lot…

The Swift programming language is young, innovative and (seemingly) always in flux. How do you keep up, avoid learning outdated information, and stay up-to-date on latest developments?

We’ll find out in this article!

  1. How Often Does Swift Change?
  2. Exhibit #1: Outdated And Confusing Information
  3. How To Keep Up With Swift Changes
  4. Further Reading

How Often Does Swift Change?

But is Apple constantly changing Swift? Here’s the version history for every major Swift version since the language’s inception in 2014:

Date Version
September 9, 2014 Swift 1.0
October 22, 2014 Swift 1.1
April 8, 2015 Swift 1.2
September 21, 2015 Swift 2.0
March 21, 2016 Swift 2.2
September 13, 2016 Swift 3.0
September 19, 2016 Swift 4.0
March 29, 2018 Swift 4.1
Late 2018 Swift 5.0

When looking at the release dates, a few patterns stand out:

  • Major versions, i.e. 1.0, 2.0, etc. are released in September
  • Minor versions, i.e. 1.x, 4.x, etc. are released in the spring
  • Since 2014, Swift has mostly changed once a year

So where does the idea that Swift constantly changes come from? I think there are a few reasons:

  • In 2016 Swift 2.2 and 2.3 were released, leading up to the release of Swift 3.0. The changes between Swift 2 and 3 were incompatible (called “breaking”), and that meant you’d have to rewrite several parts of your code to upgrade. Without these upgrades, your code wouldn’t compile or run.
  • Xcode has a “migration tool” that can help you upgrade your code to a new Swift version. Even though the tool is helpful, it isn’t 100% automatic. You’ll have to review every change it suggest, and it doesn’t always spot every required upgrade.
  • The upgrade from Swift 2 to Swift 3 affected functions that matter to beginner iOS developers, because they renamed and restructured a lot of Swift and Objective-C functions. If you were learning Swift when the change between 2 and 3 happened, you most likely had to relearn a whole lot of things.

The improvements of the Swift programming language between versions 2 and 3 largely focused on so-called “ABI stability”. ABI stability enables binary compatibility between apps compiled with different Swift versions.

Without going too deeply into this topic, it basically ensures your app, compiled with an older version of Swift, still runs on a device that has a newer version of Swift. And that matters, a lot!

Swift 4.0, and the upcoming Swift 5.0, don’t have those breaking changes. Swift 3.0 is interchangeable with Swift 4.0, so you can use both in the same Xcode project. That means your code still runs, even when you upgrade, and you can slowly incorporate new syntax in your old codebase.

Moreover, the Swift 4.0 update didn’t touch on syntax and features that beginner iOS developers are likely to interact with.

Note: Apple uses their bi-yearly product marketing schedule for the Swift language too. In the spring, Apple has their Worldwide Developers Conference, and in the fall, they often have a Special Event or keynote with product upgrades. New Swift versions follow the same structure.

Exhibit #1: Outdated And Confusing Information

Beginner iOS developers often rely on StackOverflow to get help with coding problems. In fact – many developers simply look up Swift syntax on StackOverflow, and copy-and-paste the code they find straight into Xcode.

Guess what happened when Swift 3.0 was released? The code you found on StackOverflow wouldn’t work, because it was written in Swift 2.1. Your Xcode needed Swift 3.0, so you were stuck rewriting a bit of code to the newer version. And that sucks!

I also think that the various “What’s Changed In Swift 3?” blog posts were a contributing factor to the confusion. These articles mostly list changes in Swift on a conceptual basis.

If you’re a beginner, and you read that the increment/decrement operators have been replaced in favour of the addition assignment operator, do you really know what is going on?

When learning something new, you need a “hook” to connect new information onto. This is how our mind works. When you don’t have that hook, i.e. when you can’t place a Swift change, you’re less likely to learn something.

To summarise:

  • The Swift programming language doesn’t change that much, except that in 2016 it changed a lot, and in big ways
  • Developers often copy-and-paste code from StackOverflow, and when that code is written for an older Swift version, it’s likely to produce errors
  • “What’s Changed?” blog posts explained exactly what their titles said they would, except that they didn’t help beginner iOS developers adopt these changes in their learning

Learn how to build iOS apps

Get started with iOS 12 and Swift 5

Sign up for our iOS development course Zero to App Store and learn how to build professional iOS 12 apps with Swift 5 and Xcode 10.

How To Keep Up With Swift Changes

And that, fellow developer, is how the idea that Swift constantly changes got into this world. It doesn’t even change that often – but when it does, the world is slow to adopt the change…

So how do you keep up with Swift changes? Swift 5.0 is around the corner, and a ton of tutorials and StackOverflow answers are still written for Swift 3. In fact, they have never been updated!

How do you deal with that?

1. Invest In A Good Course Or Book
First off, I recommend you invest in a premium course or book on iOS development. When you solely rely on free iOS tutorials to learn app development, you’re guaranteed to find outdated information.

Most websites that have iOS tutorials make money from advertisements. This doesn’t incentivise them to update these tutorials, because they don’t make money when the information is helpful – only when it’s seen by a visitor.

Courses that promise you to keep information up-to-date have an incentive to update their information, because no customer pays money for outdated information. Likewise, books need to get a regular updates, or sales go down.

If you’re looking for an immersive course that has support, a community, and real-world projects, I recommend our own Zero to App Store.

2. Get Better At Learning iOS Development
Second, you gotta get better at learning iOS development! Improve your mindset and become more resilient to change.

If you want to be a professional iOS developer, you better get used to things that change. Swift isn’t the only thing that changes – frameworks, libraries and SDKs change too! Alamofire, CocoaPods and tools like Fastlane change all the time.

Things that worked yesterday aren’t guaranteed to work today. In fact, I would go as far as to say that “change” is one of the biggest challenges of our profession. One day your code works, the next day it doesn’t.

Deal with it! Practice your curiosity, problem-solving skills and innovate. Things that stay the same are boring.

Oh, and stop the habit of copy-and-pasting your code. You learn nothing that way!

3. Keep An Eye Out For Updates, News And Changes
Staying up-to-date is something you need to do actively. I bet that if you learn the intricacies of a Swift version change, you’ll become a better software engineer as a result.

The necessity of needing to understand what a “nil-coalescing operator” is, is exactly what leads to a deeper understanding of a programming language.

Between Swift 3 and 4, the handling of strings changed. That was an opportunity for me to dive into UTF-8 and Unicode, and how scalars work, and why exactly Swift allows you to use emojis as variable names.

It sounds cute, but it isn’t – it’s awesome software engineering. I learned a lot that day, and that’s a habit you want to cultivate!

So where do you listen in on Swift changes? I’ve included some spots to put your ear to the ground, below.

Further Reading

I hope that you now understand that Swift doesn’t change that often, and not that much.

It’s just that the past changes had a big impact on how beginner iOS developers learn the language. It’s something you gotta embrace, because it makes you a better software engineer. And keep an eye out for next June and September!

Here’s a list of smart resources that you can check in with:

Want to learn more? Check out these resources:

Enjoyed this article? Please share it!

Reinder de Vries

Reinder de Vries

Reinder de Vries is a professional iOS developer. He teaches app developers how to build their own apps at LearnAppMaking.com. Since 2009 he has developed a few dozen apps for iOS, worked for global brands and lead development at several startups. When he’s not coding, he enjoys strong espresso and traveling.