100 Days Of SwiftUI Challenge by Paul Hudson
Days 1-12: Introduction to Swift
- Day 1 – variables, simple data types, and string interpolation
- Day 2 – arrays, dictionaries, sets, and enums
- Day 3 – operators and conditions
- Day 4 – loops, loops, and more loops
- Day 5 – functions, parameters, and errors
- Day 6 – closures part one
- Day 7 – closures part two
- Day 8 – structs, properties, and methods
- Day 9 – access control, static properties, and laziness
- Day 10 – classes and inheritance
- Day 11 – protocols, extensions, and protocol extensions
- Day 12 – optionals, unwrapping, and typecasting
Days 13-15: Consolidation I
- Day 13 – Swift review, day one
- Day 14 – Swift review, day two
- Day 15 – Swift review, day three
Days 16-24: Starting SwiftUI
- Day 16 – Project 1, part one
- Day 17 – Project 1, part two
- Day 18 – Project 1, part three
- Day 19 – Challenge day
- Day 20 – Project 2, part one
- Day 21 – Project 2, part two
- Day 22 – Project 2, part three
- Day 23 – Project 3, part one
- Day 24 – Project 3, part two
Day 25: Consolidation II
- Day 25 – Milestone: Projects 1-3
Days 26-34: Expanding your skills
- Day 26 – Project 4, part one
- Day 27 – Project 4, part two
- Day 28 – Project 4, part three
- Day 29 – Project 5, part one
- Day 30 – Project 5, part two
- Day 31 – Project 5, part three
- Day 32 – Project 6, part one
- Day 33 – Project 6, part two
- Day 34 – Project 6, part three
Day 35: Consolidation III
- Day 35 – Milestone: Projects 4-6
Days 36-46: Scaling up to bigger apps
- Day 36 – Project 7, part one
- Day 37 – Project 7, part two
- Day 38 – Project 7, part three
- Day 39 – Project 8, part one
- Day 40 – Project 8, part two
- Day 41 – Project 8, part three
- Day 42 – Project 8, part four
- Day 43 – Project 9, part one
- Day 44 – Project 9, part two
- Day 45 – Project 9, part three
- Day 46 – Project 9, part four
Days 47-48: Consolidation IV
- Day 47 – Milestone: Projects 7-9
- Day 48 – Expanding your horizons
Days 49-59: Focus on data
- Day 49 – Project 10, part one
- Day 50 – Project 10, part two
- Day 51 – Project 10, part three
- Day 52 – Project 10, part four
- Day 53 – Project 11, part one
- Day 54 – Project 11, part two
- Day 55 – Project 11, part three
- Day 56 – Project 11, part four
- Day 57 – Project 12, part one
- Day 58 – Project 12, part two
- Day 59 – Project 12, part three
Days 60-61: Consolidation V
- Day 60 – Milestone: Projects 10-12
- Day 61 – Time for Core Data
Days 62-76: Views and view controllers
- Day 62 – Project 13, part one
- Day 63 – Project 13, part two
- Day 64 – Project 13, part three
- Day 65 – Project 13, part four
- Day 66 – Project 13, part five
- Day 67 – Project 13, part six
- Day 68 – Project 14, part one
- Day 69 – Project 14, part two
- Day 70 – Project 14, part three
- Day 71 – Project 14, part four
- Day 72 – Project 14, part five
- Day 73 – Project 14, part six
- Day 74 – Project 15, part one
- Day 75 – Project 15, part two
- Day 76 – Project 15, part three
Days 77-78: Consolidation VI
- Day 77 – Milestone: Projects 13-15
- Day 78 – Time for MapKit
Days 79-94: Controlling UI flow
- Day 79 – Project 16, part one
- Day 80 – Project 16, part two
- Day 81 – Project 16, part three
- Day 82 – Project 16, part four
- Day 83 – Project 16, part five
- Day 84 – Project 16, part six
- Day 85 – Project 16, part seven
- Day 86 – Project 17, part one
- Day 87 – Project 17, part two
- Day 88 – Project 17, part three
- Day 89 – Project 17, part four
- Day 90 – Project 17, part five
- Day 91 – Project 17, part six
- Day 92 – Project 18, part one
- Day 93 – Project 18, part two
- Day 94 – Project 18, part three
Days 95: Consolidation VII
- Day 95 – Milestone: Projects 16-18
Days 96-99: One last project
- Day 96 – Project 19, part one
- Day 97 – Project 19, part two
- Day 98 – Project 19, part three
- Day 99 – Project 19, part four
Day 100: Wrap up
- Day 100 – Final exam