100 Days of SwiftUI
Reflecting on 100 Days of SwiftUI
Reflecting on my experience with the “100 Days of SwiftUI” course, with tips on how to make the most of it.
Woo hoo! Day 100 is “just” a final exam and I passed (with merit)! Almost hard to believe that I’ve come to the end of my #100DaysOfSwiftUI journey.

Day 99 included our last quiz and challenge: add a photo credit over the image, fill in some loading/saving methods for favorites, and add sorting to the resorts list. #100DaysOfSwiftUI

For Day 98, we implemented searching resorts, replaced the facility info with icons, added a button for the user to mark favorite resorts, and added a favorite indicator in the Resorts list. #100DaysOfSwiftUI

For Day 97 we started actually building a new project using NavigationSplitView
, NavigationLink
, and format: .list(type: .and)
(for concatenating strings). #100DaysOfSwiftUI
Day 96 and we’re looking at iPad-friendly APIs for the first time.
I’ll be honest—I had not tried running any of our previous apps in the iPad simulator, but now I see they were working fine the whole time. Pretty cool!
This screenshot looks absolutely chaotic. 👹 #100DaysOfSwiftUI

Day 94 is a review and challenge day! Graphics code can be a doozy because when you get the wrong result, it’s difficult to know what’s actually wrong in the code (or with your math). 😅 I got some help with this one. 😬 #100DaysOfSwiftUI

Day 93 was a fun walk through of using GeometryReader
, including using visualEffect()
and scrollTargetBehavior()
. #100DaysOfSwiftUI

For Day 92, we started a new project (our second to last!) and learned about how layout, alignment guides, and absolute positioning work within SwiftUI.
I really loved the explainer, starting from How layout works in SwiftUI. #100DaysOfSwiftUI

Picking #100DaysOfSwiftUI back up, and in the home stretch at Day 91! It was a challenge day with a review quiz and an open-ended prompt to fix a couple minor bugs and add a feature.

For Day 90, we made a bunch of accessibility fixes and added a view for creating new cards! #100DaysOfSwiftUI

For Day 89, we learned how to detect when our app moves to the background or foreground so we could pause and restart our timer at the right moment. #100DaysOfSwiftUI

For Day 88, we built a brand new part of the app with a stack of cards and gestures for swiping them left and right to move to the next card. #100DaysOfSwiftUI

For Day 87, we learned a little bit about the Combine framework, Timer
, and three accessibility settings: Differentiate Without Color, Reduce Motion, and Reduce Transparency. #100DaysOfSwiftUI
For Day 86, we started a brand new project and started playing with all the gesture APIs and hit testing. #100DaysOfSwiftUI

Day 85 is a challenge day! The quiz was easy but the challenge took me about an hour to complete. The “contacted” icon, link to an edit screen, and sort options are all new. #100DaysOfSwiftUI

For Day 84, we learned how to add swipe actions to list items and show local notifications using the UserNotifications
framework! #100DaysOfSwiftUI

Day 83 has this tidbit:
The CPU running our code doesn’t care about data types, comments, access control, and more, but if you want to write great software that is scalable, testable, and maintainable, you need to add some rules.
There’s a little piece of me that wishes we talked more about testing and maintainability. I know they’re more advanced topics that I’ll learn on my own, but a man can still wish.
Today we added UI to scan QR codes and multi-item editing. #100DaysOfSwiftUI

Day 82 was much easier—I don’t think there was anything new, we “just” laid the groundwork for the new tabs and added the SwiftData pieces to store the contact info. #100DaysOfSwiftUI

Today was almost smooth sailing, learning about list row swipe actions and local/scheduled notifications, but I ran into issues with the directions for adding Swift package dependencies in Xcode.
I wrote up the issue and my fix in this issue: Day 81: No such module 'SamplePackage'
#100DaysOfSwiftUI