Stage 1 of 7 · 10 lessons · ~2 months
Swift fundamentals
Learn the language your apps will be written in before touching UI code. Null safety, collections and async code matter more on mobile than most beginners expect.
Start: Constants, variables and typesLessons· one lesson for each topic, in this order
- 1Constants, variables and typesLesson
- 2Optionals and unwrappingLesson
- 3Functions and closuresLesson
- 4Structs versus classesLesson
- 5Enums with associated valuesLesson
- 6Protocols and extensionsLesson
- 7Arrays, dictionaries and setsLesson
- 8Error handlingLesson
- 9async/await basicsLesson
- 10Swift Package ManagerOptionalLesson
Start with
- CourseFree100 Days of SwiftUI
Paul Hudson (Hacking with Swift) · Beginner
Days 1 to 15 teach Swift, with a checkpoint exercise every other day
Practise
Keep handy
Also worth your time
Before moving on: Solve 15 exercises on Exercism in your language, then write a small console program, such as a to-do list or a grade calculator, that uses classes, collections, error handling and one async call.

iOS development needs a Mac with a recent Xcode, so sort that out before you start. Spend real time on optionals and on structs versus classes, because SwiftUI is built on value types and they will confuse you later otherwise.