Reflecting on 100 Days of SwiftUI
A few months ago, I started the 100 Days of SwiftUI course. This post is a reflection on why I think anyone interested in Swift development should go through the course, and some tricks to making the most out of it.
My background: I’m an experienced web developer who last worked with Objective-C in the iOS 6 days. I wanted to learn Swift, and even though I have experience with UIKit, I figured SwiftUI would be an easier way to get started.
The course
The first couple weeks are solely focused on learning the ins and outs of Swift—no UI and no Xcode required (Swift Playground is all you need).
The point of the course is to complete one day every day for the 100 days. I found myself itching to move faster in these first couple weeks… which in retrospect, I think you can get away with doubling up on the days if you’re already an experienced programmer and mainly learning Swift’s syntax.
Then, the meat of the course is focused around projects where you build small apps.
Most of the course follows the same basic pattern for projects:
- One or more days of learning material with sample code to copy into your project and play with.
- One “wrap up” day with a review quiz and a “challenge” prompt (given some requirements, write a part of the app on your own, with a couple extra hints if you get stuck but no final code to check yourself against).
The learning material days are easier to get through because they are written explanations with code examples that you can copy, run, and test to see how they work. Sometimes I would do a couple of these in a single day to “catch up” to where I was supposed to be in the whole 100 days. Don’t tell anyone. 🤫
I liked the quizzes as a way to double check what I had learned and reinforce the correct terminology.
The challenges were a mix of pure fun (when they were easier) to the real drudge of working as a software developer. That said, I thought they were really great to get me actually coding and practicing what I had learned, and that’s the real value of the course.
The course had a few other types of days throughout:
- Challenge: Build an app from scratch (based on the given requirements).
- Milestone: Same as Challenge days, but with some extra review material to summarize the content from previous days (which I found really useful for reference).
I also appreciated that, throughout the entire course, we were building “real” apps: unit conversion, a “guess the flag” game, finance tracker, e-commerce and more (there were nineteen projects altogether).
The course exposes you to a lot of different APIs too: Core ML, accessibility, gestures, and a whole lot more.
Tips and tricks
For anyone else taking the course, I have some tips:
-
Really try to do one day every day, but it’s ok if you can’t. 100 days for me actually took 120, and that included some cheat “catch up” days where I did a couple days in one.
-
Download the project source code and search it when you need help. I found myself going back to the examples for reference.
-
Keep around your test code with tab bars (we eventually learned how to use them, but not until later). Don’t shy away from creating a lot of view files for each day of learning material and displaying those views in a tab bar. Example.
-
If you are blogging about it (you should!), post screenshots of your progress. It makes it a lot more fun to look back at what you’ve built. #100DaysOfSwiftUI