Background: I'm a front-end web developer and designer with 10 years experience.
Day 1: Nothing too new here from JavaScript except that "let" not variable like it is in JS.
Day 2: I accidentally continued through to Day 2 and completed the checkpoint. Again, feels similar to JS and TypeScript which is nice. I like that Swift is strict about mixing types with the addition operator.
Day 3: Sets are neat. JS has these too, but now I feel I've neglected the feature and maybe I should use them more.
Day 4: Completed Checkpoint 2 and feeling good. I'm sure that in a few weeks I'll be missing these easier lessons.
Day 5: Nothing too new 🤷♂️ I might cheat and do Day 6 this evening.
Day 6: I skipped ahead to Day 6 and completed the FizzBuzz checkpoint.
Day 7: Tuples! I like it.
Day 8: I continued and did Day 8 too with Checkpoint 4. I stumbled across the pattern match operator which is a pretty nice convenience feature. (e.g. 0...100 ~= number)
Day 9: Closures and the trailing closure shorthand are awesome. Love it.
Day 10: Also love reactivity built into the language with computed properties and observers.
Day 11: Starting to get a little harder now in Checkpoint 6. The access control features for structs are something new to me because I never found myself using classes much in JS.
Day 12: Checkpoint 7 complete 💪 I also sidetracked myself by watching Apple's designing for visionOS videos. I'm very excited to explore that platform after this course.
Day 13: Protocols with extensions hurt my brain a bit.
Day 14: Took me some time to get used to the if let and guard let syntax. Seems neat though! And the other stuff like nil coalescing and optional changing are the same as in JS so nothing new there. This felt like a little bit of a mental rest day after that extension stuff.
Day 15: Easy recap day. Except, I accidentally went to the Day 25 Rock/Paper/Scissors challenge and nearly completed it until I got to the view bits. Whoops.
Day 16...18: Project 1 was simple and fun. Loving the clean readability of SwiftUI templates.
Day 19: Unit conversion challenge complete. Absolutely love that units and conversion are built right into SwiftUI—so convenient! This would have taken so much longer in JavaScript.
Day 20...22: Aww yeah, got to flex my creativity with Project 2's Flag Game. Went a bit off the rails and added a fun spinning rainbow effect to the background.
Day 23...24: Project 3 was a nice recap. I really appreciated the explanation about ViewBuilder, TupleView and all of that because that felt like rule-breaking magic before. Now it makes sense what's happening under the hood.
Day 25: Came back to the rock/paper/scissors challenge and didn't quite have the steam to complete it. Gonna come back to this.
Day 26...28: Had no idea machine learning would be incorporated so early into the course, but that was neat! Making training data seems by far the hardest part—the process of using it was a breeze. Very cool stuff.
Day 29...31: I don't like the ominous sound of "this is the last easy project" but I enjoyed making this word game nonetheless. Also, withAnimation is absolute magic and I love it so so much.
Day 32...34: Yeah animations in SwiftUI are dope. Easy and performant like I'm used to with CSS animations, but more easily made to react to UI state changes.
Day 35: I got stumped on this challenge for a while. The biggest issue was that I goofed the number formatter for an input, and then went down a rabbit hole with the data structure because I assumed that was the issue. I have a basic solution working, but I'd like to come back to this and polish it.
Day 36...38: Codable is very interesting and not what I would have expected data syncing to look like. Love the simplicity though. Just take the data, encode it and save it on the device.
Day 39...42: Moonshot project complete ✅ And I got to learn about the SFSymbols app when doing the challenge prompts at the end. Pretty amazing icon library and now it has animations baked in? So cool!
Day 43...46: Learning about drawing shapes was neat. Truthfully though, I skimmed this part a bit because I don't see myself using it too often.
Day 47: This challenge felt like a bit of re-tread but it was good to refresh that knowledge!
Day 48: I'm not much of a Star Wars guy so I think the appeal of this video was lost on me, haha. Lots of good info—some of which went over my head—that I'm looking forward to learning more about in the coming lessons.
I'll keep editing this post as I go along to share my progress!