Go from zero to hero with my comprehensive, real-world Swift tutorial projects.
You can always be guaranteed you're learning the latest, greatest Apple technologies because all my tutorials are written for iOS 10.
Don't waste time with out of date tutorials – here you can learn smart, powerful, and expressive Swift the way it was meant to be written.
You learn Swift while you make real-world iOS projects, which means you get to apply your new skills immediately and see them work in context.
Hacking with Swift is one of the most popular Swift tutorial series online, and now you can learn Swift here too – completely free!
“Great to see free intro to Swift programming content that is so well done!”
Get an immediate $5 off the Hacking with Swift e-book, plus more discounts in the future!
Admit it: you're thinking, "this can't be free; what's the catch?"
I've written 40 complete iOS tutorials that teach you Swift 3 from scratch while you build real projects. They are all available online to read for free. I cover my hosting costs with adverts.
My approach teaches you Swift programming incredibly quickly, and you end up with a huge library of finished projects that are yours to develop further or ship to the App Store.
I sell other books that continue teaching you Swift coding. I'm confident that after you've read Hacking with Swift you'll have learned so much you want to support my work by buying a book.
If you can support my work by buying a book, it's hugely appreciated.
But I recognize that not everyone can afford to buy the e-book version of Hacking with Swift, so it's also available free online.
I've written a range of books that help you build your skills from beginner through to advanced.
“Hacking with Swift is where I started learning, with no prior knowledge or experience with Swift. Each lesson introduces you to new concepts and aspects of Swift, and does so in a way that means you learn by doing – it's a great place to start!”
“Hacking with Swift is a fun way to get into Swift. Nice projects, useful coding techniques, comfortable pace. Give it a try!”
“When I'm stuck on how to solve a problem Hacking with Swift is the first place I look - it's the best swift resource available.”
“Paul's teaching methodology of learning on a need-to-know basis worked best for me. If you are dedicated then Hacking with Swift is the best place for learning Swift.”
“Hacking with Swift is one of the best and easiest training courses. With the course you can start from complete zero, and start making your own apps as you always dreamed.”
“Really great tutorial! Learning by example and a hands-on approach is more natural and really beneficial.”
Q: What version of Swift do you use in your courses?
A: I use Xcode 8 and Swift 3 in all books, except for Objective-C for Swift Developers – that uses Objective-C. Obviously.
Q: Do I need to follow Hacking with Swift in order?
A: Yes, preferably, and definitely so if you're a beginner. Each project builds upon concepts learned in previous projects, so if you skip ahead you might get confused. Some of the technique projects return to earlier apps to fix bugs by teaching a new concept, so if you've finished project 7 (for example) and think, "boy this sucks!" then sit tight: project 9 fixes the problem.
Q: How can I read Hacking with Swift offline / without ads?
A: You can buy the complete Hacking with Swift book set for just $30. You get the same projects you can find online here, as well as my complete Swift Knowledge Base, and exclusive content: a Swift Quick Tips wall chart, a guide book containing bonus exercises and review notes, and an Xcode Tips and Tricks video.
Q: I can already program Swift – will you teach me new stuff?
A: I wrote a separate book and video course called Pro Swift which teaches advanced Swift coding. It covers functional programming, MVVM, reference and value types, closures, operator overloading, and much more, and includes 96 videos walking you through the techniques. While Hacking with Swift definitely touches on more advanced topics as you proceed, Pro Swift is all advanced, all the time.
Note: You don't need to have read Hacking with Swift in order to get the most out of Pro Swift, but it certainly helps!
Q: Is knowing Swift enough? Do I also need to know Objective-C?
A: It's true that most iOS jobs want some Objective-C knowledge, because there are over a million apps written in the language. To help you learn, I wrote a book called Objective-C for Swift Developers, which is designed to help you transfer your skills from Swift to Objective-C as quickly as possible.
Q: Do any of your books overlap?
A: No – they are all designed to be unique, standalone books. Practical iOS 10, for example, isn't just a specialized version of Hacking with Swift – it's a completely new and original book that teaches iOS 10-specific technologies, such as SiriKit and speech transcription.
Q: Can I buy your books on iBooks?
A: Yes, you can buy my books on the iBooks Store using these links:
Q: Do you offer any discounts?
A: I try to keep my books priced as low as possible; if you look around, you'll find other courses sell for twice as much, despite offering far less content. However, if you sign up to my low-volume Swift newsletter you'll get an instant $5 discount on the Hacking with Swift e-book, which contains lots of exclusive content you won't find online.
Q: Will you come and speak at my conference / user group?
A: I'm happy to deliver talks and short sessions at conferences and user groups, although you'll need to cover my travel costs from the UK. I also run hands-on Swift training courses lasting from one day to five days – please email email@example.com and let me know what you need.
Q: Can I buy all your books in a bundle?
A: I'm afraid not – Gumroad doesn't support this feature. However, when you buy Hacking with Swift or Pro Swift, you will receive an email from me with a discount code to save money on the other books. So, buy one, wait a couple of hours, then use the discount codes to buy the others.
Q: What are "Pulp Fiction brackets"?
A: Pulp Fiction brackets are < and >, also known as "angle brackets."
Q: Why didn't you cover more functional programming?
A: I cover a lot of functional programming in my Pro Swift book, including map, flat map, reduce, and more.
Q: Why don't you distinguish between parameter and argument?
A: Technically, "argument" is the data you pass into a function, and "parameter" is the data you receive, but in the books I use "parameter" exclusively. There are two reasons. First: the difference doesn't really matter, and I've never met someone who found it confusing to refer to parameters as meaning things passed in or received. Second, "argument" is A Very Silly Word, and most people new to programming will associate it with "fight" not "data being sent to a function."
Q: Your description of X is incomplete. Why don't you fix it?
A: As you climb up Wittgenstein's ladder, you'll start to realise that some of my explanations – such as optionals – have been simplified to help you get moving. This isn't me trying to deceive you! Instead, I'm just trying to build a broad cognitive framework that gives you the least you need to know to get results. Sometimes I expand on explanations in later projects, and sometimes you'll need to do extra learning yourself. But in the latter case, I do recommend you complete the series first.
Q: Why do you insist on teaching using projects?
A: My teaching method skips out a lot of theory. It skips out the smart techniques that transform 20 lines of easy-to-understand code into 1 line of near-magic. It ignores coding conventions by the dozen. And perhaps later on, once you've finished, you'll want to go back and learn all the theory I so blithely walked past. But let me tell you this: the problem with learning theory by itself is that your brain doesn't really have any interest in remembering stuff just for the sake of it.
You see, here you'll be learning to code on a Need To Know basis. Nearly everything you learn from me will have a direct, practical application to something we're working on. That way, your brain can see exactly why a certain technique is helpful and you can start using it straight away.
This series has been built on the back of my personal motto: "Programming is an art. Don't spend all your time sharpening your pencil when you should be drawing." We'll be doing some "sharpening" but a heck of a lot more "drawing" – if that doesn't suit your way of learning, Hacking with Swift isn't for you.
Q: What should I do if I spot a mistake?
A: If it's a typo or a coding error, please do email me at firstname.lastname@example.org or find me on Twitter @twostraws. However, please keep in mind that these projects were designed to be simple and digestible learning examples, not fool-proof, App Store-ready perfections. That means sometimes there are bugs that exist because some longer or more difficult code has been removed or simplified – you're welcome to fix these in your own projects, but I think it would just confuse learners to fix them here.
Q: Does Hacking with Swift have any Firefly references? I want Firefly references. Where are the Firefly references?
A: They are, quite literally, all in the official Swift reference from Apple. Shiny!