Here we go! This is the home of the efforts at taking on Hacking Swift's 100 Days of Swift challenge
Everything that is marked in comment (
.md
format> text
or/```swift/
blocks) is Paul Hudsons work I am taking notes on, and not my original thought unless otherwise indicated
Days organized by folders containing
- ressources consulted
- notes sheet in markdown
playground
and other Xcode run code files used for practice
- Markdown and custom snippets
- Swift
- Xcode (playgrounds)
- Asses from Hacking Swift Github project repo
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.
Challenge day | Calendar day | Within goaltime? | What was new? |
---|---|---|---|
Day 01 | March 30 - 31 | ~ | Review of pre-challenge practice |
Day 02 | March 31 – April 1 | ~ | Recall tuples and dictionaries, how to create empty collections |
Day 03 | April 3 | ✅ | Allowed to write with _ as a seperator |
Day 04 | April 6, 9 | ~ | Looping ranges |
Day 05 | April 9 | ✅ | Parameter labels, default params, throwing functions, inout params |
Day 06 | April 11 | ✅ | Closures 💣 |
Day 07 | April 14, 19, 21 | ~ | Shorthand params, closures as params when they return values, returning closures |
Day 08 | April 21, 22, 23 | ~ | Property observers |
Day 09 | April 23, 29, 30 | ~ | lazy properties, static properties |
Day 10 | April 30, May 14 | ~ | to be reviewed... |
Day 11 | May 14, 25 | ~ | to be reviewed... |
Day 12 | May 26, 27, 28 | ~ | to be reviewed... |
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.
Challenge day | Calendar day | Within goaltime? | What was new? |
---|---|---|---|
Day 13 | June 4 | ✅ | to be reviewed... |
Day 14 | June 4, 5 | ~ | to be reviewed... |
Day 15 | June 5 | ✅ | to be reviewed... |
Now that you’ve mastered the basics of Swift, in these days you’ll start building real iOS apps using what you learned.
Challenge day | Calendar day | Within goaltime? | What was new? |
---|---|---|---|
Day 16 | June 8 | ✅ | to be reviewed... |
Day 17 | June 11, 12, 15 | ~ | to be reviewed... |
Day 18 | June 17 | ✅ | Unwrapped with guard if faster than I expected! yay! |
Day 19 | June 18 | ✅ | Shortcuts to Auto Layout constraints cgColor |
Day 20 | June 25 | ✅ | Shuffle flags, correct score, quiz insights |
Day 21 | July 8 | ✅ | Project 2 challenges complete; Connecting all the right information at the right moment in the control of flow based on previous challenges. |
Day 22 | July 8, 17, August 6, 13 | ~ | Project 3 and chapter wrap up challenges; UIActivityControllers from start to finish |
In the last few days we covered some of the fundamentals of iOS development, and before we move on to the next set of projects it’s important to take a step back and review what you’ve learned.
Challenge day | Calendar day | Within goaltime? | What was new? |
---|---|---|---|
Day 23 | August 13, 20, September 17 | ~ | Consolidation II : Starting iOS Milestones; 💥 tricky figuring out how to programatically fill in the table view with file manager in a clean way |
The next three projects we’re looking at will push your iOS skills further as you create some user interface in code, manage table views more carefully, and get some experience with closures.
Challenge day | Calendar day | Within goaltime? | What was new? |
---|---|---|---|
Day 24 | September 24 | ✅ | Web Views, Project 4, part i; Very familiar because of FTV work |
Day 25 | October 1, 8, 14 | ~ | Web Views, Project 4, part ii; 🌐 WKNavigationActionPolicy and handling networking traffic in the view |
Day 26 | October 15 | ✅ | Web Views, Project 4, part iii; Wrap up quiz |
Day 27 | October 15, 17 | ~ | User Input, Project 5, part i; Much needed closure review |
Day 28 | October 20 | ✅ | User Input, Project 5, part ii; UITextChcker & rangeOfMisspelledWord(in:) ✨ is a whole toolbox |
Day 29 | October 22 | ✅ | User Input, Project 5, part iii; attention to case sensitivity |
Day 30 | October 29 | ✅ | Auto Layout, Project 6, part i; Drag and drop on Interface Builder, Auto Layout Visual Format Language (VFL) |
Day 31 | October 29, November 5 | ~ | Auto Layout, Project 6, part ii; VFL pushed further |
You’ve learned about WebKit, UIAlertController, Auto Layout, and more – some more fundamentals of iOS development. Before we continue on to more projects, let’s take a moment to review what you’ve learned.
Challenge day | Calendar day | Within goaltime? | What was new? |
---|---|---|---|
Day 32 | November 5, 12 | ~ | Review fundamentals and ShoppingList app challenge |
The next three projects we’ll be building projects where you meet some of the most important topics in iOS development: working with data from the internet, and taking advantage of the raw power of iOS devices. Of course, you’ll also be making useful products along the way!
Challenge day | Calendar day | Within goaltime? | What was new? |
---|---|---|---|
Day 33 | November 19 | ✅ | Project 7, part i. Review of codable, and parsing which was what I first learned. Embedding tabs was new! :) |
Day 34 | November 25, 29, December 10 | ✋ | Project 7, part ii had major issue 💣 with SceneDelegate since examples were in Swift 4.2 rather than 5 – got help from FTV Guild |
Day 35 | December 10, 12, 13 | 👍 | Project 7, part iii, challenges were easy to go over. |
Day 36 | January 1, 7 | ~ | Project 8, part i, first playable project without storyboard, NSLayoutConstraints activation on views added programatically, different anchors |
Day 37 | January 8 | 👍 | Project 8, part ii, added button targets and game mechanics |
Day 38 | January 9, 10 | ~ | Project 8, part iii, challenge to add outline to view, negative score and errors messaging |
Day 39 | January 10 | ✅ | Project 9, part i, learned about the different types of threads and performSelector as alternative to DispatchQues |
Day 40 | January 12 | 👍 | Project 9, part ii, review what's dispatchable in previous projects (1, 7, 8) |
- Big thanks to France Télévisions Mobile development guild for the inspiration to take up the challenge, and carving out the time to encourage me.