Now that Swift has been around for several years there’s no shortage of teaching material to help you learn it quickly and efficiently. Even better, there are some high-quality books, blogs, and video resources that are available free of charge, so if you want to dive in there is no excuse other than being unsure where to start.
The truth is that everyone learns differently: what works for you might not work for someone else. So, I’ve tried to split learners into eight broad categories, and for each category list a free resource to help you get started.
Hopefully you can find something useful below, but if there’s some other way you like to learn get in touch!
When the first beta of Swift 1.0 was announced, I remember downloading Apple’s official guidebook and reading it cover to cover. It’s quite dry (by design!), but it is as comprehensive as you can get, and both clear and concise.
If you’re the kind of person who just wants the cold, hard facts of the language, the official Swift reference is exactly what you want – just don’t complain to me if it sometimes feels like you’re reading a dictionary.
You might also find my glossary of common Swift terms a useful companion – it's a quick reference to help you remember words such as closures, conditional conformance, and protocol extension.
There’s a huge collection of open source Swift code out there to read and learn from, and in fact I’d say you’re spoiled for choice.
You could if you were so inclined just search GitHub for Swift projects, but a much easier thing to do is read this huge list of open source Swift projects that was assembled collaboratively.
I've released on GitHub a collection of projects from some of my Swift books for different platforms:
Keep in mind that everyone writes Swift a little differently, so try to refer to a good Swift style guide as you go.
I’m a practical learner myself, meaning that I learn best when I use things in a real-world context. Not only does it make it more interesting to read (because let’s face it: we’ve all read enough tutorials that use
bar for variable names), but it also helps me fit concepts together into a bigger jigsaw puzzle that I can then apply in my own work.
So, it should come as no surprise that the resource I recommend here is one I wrote myself: Hacking with Swift. It’s made up of 39 complete projects that teach you Swift alongside iOS, plus a large language introduction that teaches you all the essentials.
Hacking with Swift is free to read online, but I also sell a premium edition that includes some bonus material beyond the projects.
Many people prefer to watch livestreams or recorded videos to see real Swift in action, which is why I created my Swift in Sixty Seconds series – it breaks down the fundamentals of Swift into videos lasting one minute or less, so there's no time for waffle and no chance to get bored. I also post videos to YouTube about a variety of Swift topics such as architecture and internals – you might want to subscribe to my YouTube channel.
As for other videos, I can highly recommend the work of Sean Allen on YouTube. He posts news, tutorials, and tips on a regular basis, and is never short of fresh ideas.
There are lots of Swift podcasts out there you might want to try, all with varying lengths and difficulty levels. Try a few and see which suits your taste:
A common way of learning is to get regular news and tutorials delivered to your inbox, and in the Swift world we’re lucky enough to have several to choose from.
By far the largest and most popular is Dave Verwer’s iOS Dev Weekly, and with good reason: Dave and his team work hard to find a good mix of material that covers both code as well as business topics.
For a more technical alternative, Jesse Squires’s Swift Weekly Brief delivers news and discussion on the evolution of Swift itself, and makes for mandatory reading if you’re keen to stay up to date with the language.
You might also want to subscribe to my Swift newsletter, which goes out once a month.
If you’re looking for a more formal classroom setting, Stanford publishes a course that teaches iOS app development using Swift. The course is available through iTunes, and gives you both videos, slides, and demo code to work through.
This course is hugely popular with folks who prefer the structure that a classroom approach offers, but be warned: Stanford list the prerequisites as being “C language and object-oriented programming experience exceeding Programming Abstractions level (a different class), and completion of Programming Paradigms (another different class).” So, don’t be surprised to be find that this class assumes you already know a lot.
Also, check the publication dates before you start: this class usually trails official Swift releases by about six months.
Thanks largely to Objective-C’s long history, Apple developers have a huge selection of conferences to choose from. Here are some from around the world:
Feel free to get in touch if I missed your conference!
Sometimes reading code can be the fastest way to learn, and in the Swift world that’s especially true because so many developers are coming from Objective-C and really just want a Swift translation guide.
If you’re this kind of learner I have some good news: I wrote the Swift Knowledge Base to provide over 300 code samples and language tips to help people learn Swift. The code is organized into categories such as Arrays, Strings, UIKit, and Xcode, but you can also search for specific APIs to get right to something that interests you.
SPONSOR Tired of wasting time debugging your Swift app? Instabug’s SDK is here to help you minimize your debugging time by providing you with complete device details, network logs, and reproduction steps with every bug report. All data is attached automatically. It only takes a line of code to setup. Get started for free.
Paul Hudson is the creator of Hacking with Swift, the most comprehensive series of Swift books in the world. He's also the editor of Swift Developer News, the maintainer of the Swift Knowledge Base, and Mario Kart world champion. OK, so that last part isn't true. If you're curious you can learn more here.