NEW: Nominations are now open for the 2019 Swift Community Awards! >>

Learn Swift 5.1 for free.

With more free Swift tutorials than any other site, Hacking with Swift will help you master app development with UIKit and SwiftUI. Search the site, or choose a learning path below.

Laptop with an iPhone and iPad next to it.

Start Learning

Ready to take your first steps with app development? We have a massive curriculum that teaches Swift 5.1 with both SwiftUI and UIKit using real-world projects – all free.

Books in a bookcase.

Find Answers

If you're stuck with a coding problem, we have over 600 searchable answers to common questions, code examples, and Swift tips and tricks that are sure to help.

A busy, modern city.

Build Your Career

Review your knowledge, take interactive Swift tests, try answering common interview questions, and get advice from industry experts to ace your next interview.

“Great to see free intro to Swift programming content that is so well done!”

Chris Lattner, creator of Swift

Join over 55,000 readers today

Airbnb Apple BBC Cisco eBay GitHub Google IBM Intel Microsoft Nike Salesforce

Latest Articles

The Best Swift and iOS conferences in 2020
COMMUNITY

The Best Swift and iOS conferences in 2020

Our community has a huge number of awesome conferences around the world, so regardless of where you live there's usually a conference nearby. Of course, there are also many conferences far away too, so if you want to combine learning Swift with some sightseeing it's a double win!

Continue reading…

What’s the difference between map(), flatMap() and compactMap()?
CODE

What’s the difference between map(), flatMap() and compactMap()?

Swift gives us map(), compactMap() and flatMap() methods, but although they might sound similar they do very different things. So, in this article we’ll look at map() vs compactMap() vs flatMap() to help you understand what each one does and when it’s useful.

Continue reading…

How to use Core Image filters the type-safe way
CODE

How to use Core Image filters the type-safe way

iOS 13 introduced new type-safe initializers for Core Image filters that allow us to use them much more easily – and without having to hope that our code works at runtime. Previously much of Core Image was stringly typed, meaning that we would create filters using strings, which in turn meant that Swift couldn't be sure that when we asked for a value to be set that it would actually exist. iOS 13 replaces that with a much better implementation, and you'll never want to go back to the old way.

Continue reading…

Subscribe to my monthly newsletter

Get a free book delivered to your inbox, plus more discounts in the future!

The Slack logo

Join us on Slack!

Got questions? We have answers. Join the free Hacking with Swift community on Slack to solve problems, share knowledge, and make friends – we're here to help!

Learn the smart way

Hacking with Swift builds on extensive research into learning and memory, to help you learn app development faster and more thoroughly.

Spaced Repetition

Our courses cover the important topics of app development, and repeat them at spaced intervals to help them sink into your long-term memory.

Interactive Review

We have thousands of questions and challenges to test your knowledge at every point along the way, ensuring you can apply what you've learned.

Hands-on Coding

It's not enough just to follow tutorials, which is why we get you writing your own apps as fast as possible – all with careful guidance and support.

An iPad in landscape orientation.

Go Further

The vast amount of free content on Hacking with Swift is supported through the sale of books and courses that teach a wide range of more advanced topics. So, when you're ready to take your skills further check out the books below – and thank you for your support!

Free Swift Updates

Swift moves fast, and with our lifetime free Swift update policy you get updates for the books you purchase at no cost, protecting your investment.

Free Bonus Content

When you buy Hacking with Swift books you unlock bonus content over and above what you paid for, and the more you collect the more you unlock!

Simple Refund Policy

We have a 30-day No Questions Asked refund policy. Not learning fast enough? Did life take a different direction? Just bought the wrong thing by accident? No problem!

Marc Aupont

“The projects in this course are created in a way to expose you to real-world code – very practical and extensible! Highly recommended.”

★★★★★

Marc Aupont on Hacking with Swift

Anton Novoselov

“Just finished reading Swift Design Patterns. It's awesome, just like other books by Paul. It helped me a lot to understand some iOS aspects deeply.”

★★★★★

Anton Novoselov on Swift Design Patterns

Mario Esposito

“Paul's is a warranty of quality. He writes books at a speed that always surprises me for its timing and effectiveness. This book represents all that!”

★★★★★

Mario Esposito on Hacking with watchOS

Julio Ryuuzaki

“I'm a huge fan of Paul Hudson – more than an in-depth source of technical information, its super easy to understand and learning from him is inspiring!”

★★★★★

Julio Ryuuzaki on Hacking with macOS

John Gallaugher

“Paul Hudson is a Swift community treasure. I regularly turn to Pro Swift and Paul's other books for reference and inspiration. Thank you!”

★★★★★

John Gallaugher on Pro Swift

Caleb Basinger

“I love the work Paul does. He has a real talent for making complex topics obtainable, fun, and engaging!”

★★★★★

Caleb Basinger on Hacking with Swift

Dan O’Leary

“The entire Hacking with Swift series is great! Swift Coding Challenges forces me to think abstractly and dig into the code more than ever.”

★★★★★

Dan O’Leary on Swift Coding Challenges

Jimmy McDermott

“Paul's book does an amazing job teaching beginners how to use server-side Swift in an effective, testable, efficient way.”

★★★★★

Jimmy McDermott on Server-Side Swift

Zach Fuller

“Everything that you need, nothing that you don't. Paul does a great job of explaining even the most advanced concepts in an easy to understand manner.”

★★★★★

Zach Fuller on Pro Swift

The Unwrap logo.

Get the app!

Learn Swift right on your iPhone and iPad with Unwrap: an app that gives you videos, articles, interactive tests, and more, and best of all is completely free with no in-app purchases!

Download on the App Store
Hello, my name is Paul and I think Swift is awesome.

About Me

My name is Paul Hudson, and I wrote Hacking with Swift to help you learn to make apps for iOS, macOS, watchOS, and more.

On this site you can find my free Swift tutorials, lots of other awesome Swift books I wrote, a huge collection of Swift example code, plus Swift news, tips, and tutorials to help take your learning further.

I've already helped thousands of people to learn Swift coding, and I'd love to help you too. Feel free to get in touch if you have questions – you can email me at paul@hackingwithswift.com or tweet me @twostraws.

Want to know more about me? Click here.