Lesson 1: Optionals
Lesson 2: Optional Chainings
Lesson 3: Guard and Defer Statement
Lesson 4: Intro to Error Handling
Lesson 5: Type Casting
Lesson 6: Intro to Generics
Lesson 7: Subscripts
Lesson 8: Class vs Struct
Lesson 9: Set and Tuple
Lesson 10: Extension
Lesson 11: Intro to Operators
Lesson 12: Typealias
Lesson 1: Convenience Init
Lesson 2: Computed Property
Lesson 3: Property Observers
Lesson 4: Failable Init
Lesson 5: Override Method, Init, Property
Lesson 6: Two Phase Init
Lesson 7: Type Property and Method
Lesson 8: Singleton Pattern
Lesson 1: Intro to Closures Part 1
Lesson 2: Intro to Closures Part 2
Lesson 3: Lazy Init with Closures
Lesson 4: Capture Lists
Lesson 5: Trailing Closures
Lesson 6: Completion Handlers
Lesson 1: Intro to Protocols
Lesson 2: Protocol Extension
Lesson 3: Protocol as Type
Lesson 4: Delegate
Lesson 1: Automatic Reference Counting
Lesson 2: Delegate Retain Cycle
Lesson 3: Closure Retain Cycle
Lesson 4: Escape and Autoclosures
Lesson 1: Intro to Associated Type
Lesson 2: Protocol Extension and Type Constraints
Lesson 3: Override Protocol Associated Type
Lesson 4: Protocol Pitfalls
Lesson 5: Type Eraser
Lesson 1: The Enum Basics
Lesson 2: Static and Mutating Methods with self
Lesson 3: Nested Enum
Lesson 4: Protocol Oriented Enum
Lesson 5: Recursive Enum
Lesson 6: Generic Enum
Lesson 7: Error Handling with Result Type
Lesson 1: Nested Generics and Recursive Enum
Lesson 2: Advanced Operators
Lesson 3: Advanced Error Handling
Lesson 4: Equatable and Comparable Protocol
Lesson 5: Sequence and Iterator Protocol
Lesson 6: Intro to Test Driven Swift
Note: Learn Swift with Bob is available on Udemy. If you wish to receive a discount link, you may sign up here.