100 Days of SwiftUI – Hacking with Swift
Offered By: Independent
Course Description
Overview
Welcome to the 100 Days of SwiftUI! This is a free collection of videos, tutorials, tests, and more, all drawn from around my work here on Hacking with Swift, and all designed to help you learn SwiftUI effectively.
IMPORTANT: The 100 Days of SwiftUI is now fully updated for iOS 17, which means you should be using Xcode 15.3 or later.
It’s aimed squarely at beginners who want to learn to build real iOS apps, but struggle to find a good, free course that can help them achieve their goals. If that’s you, welcome – I hope you’re ready to show the iOS world what you’re made of!If you’re looking for my original 100 Days of Swift, click here – 100 Days of SwiftUI and 100 Days of Swift both teach you to build apps with Swift, but this one focuses on SwiftUI whereas the other teaches UIKit, SpriteKit, and more. If you’re not sure which to choose, stay here with SwiftUI.PS: If you have questions, ask me – I’m here to help! RulesIf you want to make a success of this course, there are only two rules:
IMPORTANT: The 100 Days of SwiftUI is now fully updated for iOS 17, which means you should be using Xcode 15.3 or later.
It’s aimed squarely at beginners who want to learn to build real iOS apps, but struggle to find a good, free course that can help them achieve their goals. If that’s you, welcome – I hope you’re ready to show the iOS world what you’re made of!If you’re looking for my original 100 Days of Swift, click here – 100 Days of SwiftUI and 100 Days of Swift both teach you to build apps with Swift, but this one focuses on SwiftUI whereas the other teaches UIKit, SpriteKit, and more. If you’re not sure which to choose, stay here with SwiftUI.PS: If you have questions, ask me – I’m here to help! RulesIf you want to make a success of this course, there are only two rules:
- Every day you spend one hour reading or watching SwiftUI tutorials, or writing SwiftUI code.
- Every day you post about your progress to the social media site of your choosing. Tell people!
- It’s a marathon, not a sprint. Don’t charge ahead thinking you’re “learning faster”, because there’s a high chance you’ll get lost. Take your time!
- Don’t fall prey to shiny object syndrome. The lure of spending $100 on another course is high, I know, but you don’t learn anything by buying books. Your best chance of success is sticking with the 100 days shown here and really make it work.
- Don’t lone wolf it. You aren’t learning by yourself – I’m here to help as are many others. If you have questions, tweet me at @twostraws and I’ll do my best to help!
- Use the consolidation days. These are spaced throughout the 100 days to give you time to review what you’ve learned and make it really sink in. Use them to go back over days you weren’t sure about, complete any homework you missed, or just do some free coding.
- I have a glossary of common Swift terms that you should bookmark for easy reference.
- If you get stuck with some SwiftUI code, you should refer to my free online book SwiftUI by Example – it has over 600 pages of sample code and solutions for SwiftUI.
- Download my Unwrap app from the App Store. It works on iPhone and iPad, contains alternative tutorials for the initial part of this course, and is free with no in-app purchases.
Syllabus
PreparationThis introductory day prepares you for the course, explains core concepts, and helps you avoid the most common mistakes faced by other learners.
- NEW: Day 0 – tips and advice before you start.
- NEW: Day 1 – variables, constants, strings, and numbers
- NEW: Day 2 – Booleans, string interpolation, and checkpoint 1
- NEW: Day 3 – Arrays, dictionaries, sets, and enums
- NEW: Day 4 – type annotations and checkpoint 2
- NEW: Day 5 – if, switch, and the ternary operator
- NEW: Day 6 – loops, summary, and checkpoint 3
- NEW: Day 7 – functions, parameters, and return values
- NEW: Day 8 – default values, throwing functions, and checkpoint 4
- NEW: Day 9 – closures, passing functions into functions, and checkpoint 5
- NEW: Day 10 – structs, computed properties, and property observers
- NEW: Day 11 – access control, static properties and methods, and checkpoint 6
- NEW: Day 12 – classes, inheritance, and checkpoint 7
- NEW: Day 13 – protocols, extensions, and checkpoint 8
- NEW: Day 14 – optionals, nil coalescing, and checkpoint 9
- NEW: Day 15 – Swift review
- NEW: Day 16 – Project 1, part one
- NEW: Day 17 – Project 1, part two
- NEW: Day 18 – Project 1, part three
- NEW: Day 19 – Challenge day
- NEW: Day 20 – Project 2, part one
- NEW: Day 21 – Project 2, part two
- NEW: Day 22 – Project 2, part three
- NEW: Day 23 – Project 3, part one
- NEW: Day 24 – Project 3, part two
- NEW: Day 25 – Milestone: Projects 1-3
- NEW: Day 26 – Project 4, part one
- NEW: Day 27 – Project 4, part two
- NEW: Day 28 – Project 4, part three
- NEW: Day 29 – Project 5, part one
- NEW: Day 30 – Project 5, part two
- NEW: Day 31 – Project 5, part three
- NEW: Day 32 – Project 6, part one
- NEW: Day 33 – Project 6, part two
- NEW: Day 34 – Project 6, part three
- NEW: Day 35 – Milestone: Projects 4-6
- NEW: Day 36 – Project 7, part one
- NEW: Day 37 – Project 7, part two
- NEW: Day 38 – Project 7, part three
- NEW: Day 39 – Project 8, part one
- NEW: Day 40 – Project 8, part two
- NEW: Day 41 – Project 8, part three
- NEW: Day 42 – Project 8, part four
- NEW: Day 43 – Project 9, part one
- NEW: Day 44 – Project 9, part two
- NEW: Day 45 – Project 9, part three
- NEW: Day 46 – Project 9, part four
- NEW: Day 47 – Milestone: Projects 7-9
- NEW: Day 48 – Expanding your horizons
- NEW: Day 49 – Project 10, part one
- NEW: Day 50 – Project 10, part two
- NEW: Day 51 – Project 10, part three
- NEW: Day 52 – Project 10, part four
- NEW: Day 53 – Project 11, part one
- NEW: Day 54 – Project 11, part two
- NEW: Day 55 – Project 11, part three
- NEW: Day 56 – Project 11, part four
- NEW: Day 57 – Project 12, part one
- NEW: Day 58 – Project 12, part two
- NEW: Day 59 – Project 12, part three
- NEW: Day 60 – Milestone: Projects 10-12
- NEW: Day 61 – Time for Core Data
- NEW: Day 62 – Project 13, part one
- NEW: Day 63 – Project 13, part two
- NEW: Day 64 – Project 13, part three
- NEW: Day 65 – Project 13, part four
- NEW: Day 66 – Project 13, part five
- NEW: Day 67 – Project 13, part six
- NEW: Day 68 – Project 14, part one
- NEW: Day 69 – Project 14, part two
- NEW: Day 70 – Project 14, part three
- NEW: Day 71 – Project 14, part four
- NEW: Day 72 – Project 14, part five
- NEW: Day 73 – Project 14, part six
- NEW: Day 74 – Project 15, part one
- NEW: Day 75 – Project 15, part two
- NEW: Day 76 – Project 15, part three
- NEW: Day 77 – Milestone: Projects 13-15
- NEW: Day 78 – Time for MapKit
- NEW: Day 79 – Project 16, part one
- NEW: Day 80 – Project 16, part two
- NEW: Day 81 – Project 16, part three
- NEW: Day 82 – Project 16, part four
- NEW: Day 83 – Project 16, part five
- NEW: Day 84 – Project 16, part six
- NEW: Day 85 – Project 16, part seven
- NEW: Day 86 – Project 17, part one
- NEW: Day 87 – Project 17, part two
- NEW: Day 88 – Project 17, part three
- NEW: Day 89 – Project 17, part four
- NEW: Day 90 – Project 17, part five
- NEW: Day 91 – Project 17, part six
- NEW: Day 92 – Project 18, part one
- NEW: Day 93 – Project 18, part two
- NEW: Day 94 – Project 18, part three
- NEW: Day 95 – Milestone: Projects 16-18
- NEW: Day 96 – Project 19, part one
- NEW: Day 97 – Project 19, part two
- NEW: Day 98 – Project 19, part three
- NEW: Day 99 – Project 19, part four
- NEW: Day 100 – Final exam
- NEW: Epilogue – What now?
Related Courses
Programming LanguagesUniversity of Virginia via Udacity Compilers
Stanford University via Coursera Programming Languages, Part A
University of Washington via Coursera CSCI 1730 - Introduction to Programming Languages
Brown University via Independent Intro to Java Programming
San Jose State University via Udacity