This repository is for my notes and code for the 100DaysOfSwiftUI program by @twostraws.
After learning the basics of UIKit, I am jumping ship to SwiftUI. The challenge of practicing everyday demands consistency and I am all for it. I have been following Paul's work for a long time now and I trust his guidance in learning this framework. The Hacking With Swift community is a great place to be and learn!
Core skills, Extension skills and Common beginner mistakes discussed on Day 0.
- 🏁 Day 0 > Introduction and tips
- 🔠 Day 1 > Why Swift? Integers, Strings and Decimals in Swift
- 🔠 Day 2 > Booleans and String interpolation - Checkpoint 1
- 🔠 Day 3 > Arrays, Dictionaries, Sets and Enums
- 🔠 Day 4 > Type Annotations - Checkpoint 2
- 🔠 Day 5 > Conditionals in Swift
- 🔠 Day 6 > Loops in Swift
- 🔠 Day 7 > Functions
- 🔠 Day 8 > Error handling and Default parameter values - Checkpoint 4
- 🔠 Day 9 > Closures - Checkpoint 5
- 🔠 Day 10 > Structs, computed properties and init
- 🔠 Day 11 > Access Modifiers, Static properties - Checkpoint 6
- 🔠 Day 12 > Classes, inheritance and deinitailizers- Checkpoint 7
- 🔠 Day 13 > Protocols, extensions, Opaque return types - Checkpoint 8
- 🔠 Day 14 > Optionals and optional unwrapping - Checkpoint 9
- 🔠 Day 15 > Swift Review (Refer Notes from Day 1-14)
- 👨💻 Day 16 > Project 1 - WeSplit | Link to Notes | Link to Project repo
- 👨💻 Day 17 > WeSplit continued | Link to Notes | Link to Project repo
- 👨💻 Day 18 > WeSplit review | Link to Notes | Link to Project repo
- 👨💻 Day 19 > Challenge Day - Bad At Lengths!
- 👨💻 Day 20 > Project 2 - GuessTheFlag | Link to Notes | Link to Project repo
- 👨💻 Day 21 > GuessTheFlag continued | Link to Project repo
- 👨💻 Day 22 > GuessTheFlag challenges | Link to Project repo
- 👨💻 Day 23 > Technicalities behind SwiftUI, exploring modifiers
- 👨💻 Day 24 > Day 23 review and challenges | Link to Notes
- 👨💻 Day 25 > Project 1-3 milestone & Challenge Day - RockPaperScissorsBrain!
- 🛠 Day 26 > Project 4 Begins - BetterRest | Link to Notes | Link to Project repo
- 🛠 Day 27 > BetterRest continued | Link to Project repo
- 🛠 Day 28 > BetterRest Review and Challenges | Link to Notes | Link to Project repo
- 🛠 Day 29 > Project 5 Begins - WordScramble | Link to Notes | Link to Project repo
- 🛠 Day 30 > WordScramble continued | Link to Project repo
- 🛠 Day 31 > WordScramble Review and Challenges | Link to Notes | Link to Project repo
- 🛠 Day 32 > Technical Project - Animations | Link to Notes
- 🛠 Day 33 > Technical Project - Animations continued | Link to Notes
- 🛠 Day 34 > Animations Review and Challenges | Link to Notes #incomplete
- 🛠 Day 35 > Milestorn projects 4-6 | Challenge project WIP
- ⬆️ Day 36 > Project iExpense Begins - @StateObject, sheet, onDelete, UserDefaults
- ⬆️ Day 37 > iExpense continued - UUID | Link to Project Repo
- ⬆️ Day 38 > iExpense Review and Challenges (WIP) | Link to Notes | Link to Project Repo
- ⬆️ Day 39 > MoonShot - Proj 8 | ScrollView, Lazy Stacks, NavigationLink, Scrolling Grids
- ⬆️ Day 40 > MoonShot continued - Generics with Codable, Date formatter, Custom colours
- ⬆️ Day 41 > MoonShot continued - Adding more views to the app
- ⬆️ Day 42 > MoonShot review and challenge | Link to Notes
- ⬆️ Day 43 > Drawing Introduction | Link to Notes
- ⬆️ Day 44 > CGAffineTransform, Even-Odd fill, ImagePaint, Metal | Link to Notes
- ⬆️ Day 45 > Special effects, animatableData, AnimatablePair, Spriograph | Link to Notes
- ⬆️ Day 46 > Drawing review and challenges | Link to Notes
- ⬆️ Day 47 > Milestone day for Projects 7-9 | Challenge - HabitTracker (WIP)
- ⬆️ Day 48 > Star Wars themed presentation by Paul Hudson and a message from Steve Wozniak
- 🔎 Day 49 > URLSession, AsyncImages, Validating inputs, more on Codable | Link to Notes
- 🔎 Day 50 > Building basic UI for Cupcake Corner | Link to Notes
- 🔎 Day 51 > Adding networking calls to Cupcake Corner
- 🔎 Day 52 > Cupcake Corner review and Challenges | Link to Notes
- 🔎 Day 53 > Start of Bookworm - CoreData, Binding, TextEditor | Link to Notes
- 🔎 Day 54 > Bookworm - Custom UI component, Fetching data | Link to Notes
- 🔎 Day 55 > Bookworm - Detail View, Dismissing page using alerts, SortDescriptor | Link to Notes
- 🔎 Day 56 > Bookworm review and Challenges | Link to Notes
- 🔎 Day 57 > CoreData technique project -
\.self
, Custom subclasses, conditional save, constraints | Link to Notes - 🔎 Day 58 > NSPredicate, Dynamic FetchRequest, One-to-Many relationships | Link to Notes
- 🔎 Day 59 > Technique Project review and Challenge day
- 🔎 Day 60 > Milestone and Challenge Project (Link to repo coming soon...)
- 🔎 Day 61 > Challenge continued - implementing CoreData inside Milestone project
- 📲 Day 62 > Wrappers and Structs, onChange, confirmationDialog | Link to Notes
- 📲 Day 63 > Implementing CoreImage, Integrating UIViewControllers with SwiftUI Views | Link to Notes
- 📲 Day 64 > Coordinators, UIImageWriteToSavedPhotosAlbum() | Link to Notes
- 📲 Day 65 > Basic UI for Instafilter
- 📲 Day 66 > Adding more filters, Save functionality | Template files
- 📲 Day 67 > Challenge and Review for Instafilter | Link to Notes
- 📲 Day 68 > BucketList - Operator Overloading, using document directory | Link to Notes
- 📲 Day 69 > Introduction to Mapkit, Biometric Authentication | Link to Notes
- 📲 Day 70 > @escaping, init for State vars, MapAnnotations | Link to Notes
- 📲 Day 71 > Downloading data from Wikipedia, Comparable Usecase | Link to Notes
- 📲 Day 72 > MVVM, using MainActor | Link to Notes
- 📲 Day 73 > BucketList Review and Challenges
- 📲 Day 74 > Accessiblity labels and modifiers, Adustable actions | Link to Notes
- 📲 Day 75 > Fixing past projects to support accessibility
- 📲 Day 76 > Accessiblity Review and Challenges
- 📲 Day 77 >
- 📲 Day 78 >
- 🕹 Day 79 >
- 🕹 Day 80 >
- 🕹 Day 81 >
- 🕹 Day 82 >
- 🕹 Day 83 >
- 🕹 Day 84 >
- 🕹 Day 85 >
- 🕹 Day 86 >
- 🕹 Day 87 >
- 🕹 Day 88 >
- 🕹 Day 89 >
- 🕹 Day 90 >
- 🕹 Day 91 >
- 🕹 Day 92 >
- 🕹 Day 93 >
- 🕹 Day 94 >
- 🕹 Day 95 >
- 🕺 Day 96 >
- 🕺 Day 97 >
- 🕺 Day 98 >
- 🕺 Day 99 >
- 🏆 Day 100 >