Welcome to the 100 Days of Swift! This is a free collection of videos, tutorials, tests, and more, all drawn from around my existing work here on Hacking with Swift, and all designed to help you learn Swift.

It’s aimed squarely at beginners who want to learn to build real iOS apps, but struggle to find a good, free course that can help them achieve their goals. If that’s you, welcome – I hope you’re ready to show the iOS world what you’re made of!

PS: If you have questions, ask me – I’m here to help!



If you want to make a success of this course, there are only two rules:

  1. Every day you spend one hour reading or watching Swift tutorials, or writing Swift code.
  2. Every day you post about your progress to the social media site of your choosing. Tell people!

I’ll be providing all the material you need to follow along, so all you need to do is show up ready to learn.



I’ve met so many who have tried and failed Swift, often multiple times, and if you’re here there’s a good chance you’ve already had a few false starts already.

Not this time. This time you’re going to learn it for real, and in just 100 days you’ll have built several full apps that you can be proud of.

You’ve already read the two rules of these 100 days, but to maximize your chance of rocking this course I have a few tips:

  1. It’s a marathon, not a sprint. Don’t charge ahead thinking you’re “learning faster”, because there’s a high chance you’ll get lost. Take your time!
  2. Don’t fall prey to shiny object syndrome. The lure of spending $50 on another course is high, I know, but you don’t learn anything by buying books. Your best chance of success is sticking with the 100 days shown here and really make it work.
  3. Don’t lone wolf it. You aren’t learning by yourself – I’m here to help as are many others. If you have questions, tweet me at @twostraws and I’ll do my best to help!
  4. Use the consolidation days. These are spaced throughout the 100 days to give you time to review what you’ve learned and make it really sink in. Use them to go back over days you weren’t sure about, complete any homework you missed, or just do some free coding.
  5. I have a glossary of common Swift terms that you should bookmark for easy reference.


Days 1-12: Introduction to Swift

The first 12 days provide a gentle warm up for your Swift learning. You’ll watch about a selection of one-minute videos every day, and complete short quizzes about each of those videos.

  • Day 1 – variables, simple data types, and string interpolation
  • Day 2 – arrays, dictionaries, sets, and enums
  • Day 3 – operators and conditions
  • Day 4 – loops, loops, and more loops
  • Day 5 – functions, parameters, and errors
  • Day 6 – closures part one
  • Day 7 – closures part two
  • Day 8 – structs, properties, and methods
  • Day 9 – access control, static properties, and laziness
  • Day 10 – classes and inheritance
  • Day 11 – protocols, extensions, and protocol extensions
  • Day 12 – optionals, unwrapping, and typecasting


Days 13-15: Consolidation I

You just learned a lot about Swift in only 12 days, so before we continue it's important you reflect on what you've learned: look for weak spots, re-watch videos, re-take tests, and so on, until you feel comfortable that you have mastered all the Swift language fundamentals covered in days 1-12.

  • Day 13 – Swift review, day one
  • Day 14 – Swift review, day two
  • Day 15 – Swift review, day three


Days 16-22: Starting iOS

Now that you’ve mastered the basics of Swift, in these days you’ll start building real iOS apps using what you learned.

  • Day 16 – Project 1, part one
Click here to visit the Hacking with Swift store >>