Learn Swift with Bob: The intermediate Swift course
4.9 (84 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
351 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learn Swift with Bob: The intermediate Swift course to your Wishlist.

Add to Wishlist

Learn Swift with Bob: The intermediate Swift course

Swift 3 with Generic Protocols, Memory Management, Advanced Enums, Swift Protocols, Advanced Swift
4.9 (84 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
351 students enrolled
Created by Bob Lee
Last updated 5/2017
English
Price: $50
30-Day Money-Back Guarantee
Includes:
  • 11.5 hours on-demand video
  • 1 Article
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Learn the difference between classes and structs and which one to use
  • Learn how to create generic enums, structs, classes, protocols
  • Get a taste of functional programming with trailing, auto, and escaping closures
  • Understand how objects are created and removed through Automatic Reference Counting
  • Understand potential retain cycle in closures, delegate, and class variables
  • Understand Swift is a protocol oriented programming language
  • Apply protocols such as Equatable, Comparable, Sequence, and IteratorProtocol
  • Execute Swift files using Terminal/Command Line
View Curriculum
Requirements
  • You have a basic understanding of Object Oriented Programming
  • You have MacOS and Xcode Installed
Description

Why I Created Learn Swift with Bob

As a developer whose first programming language is Swift, I've taken online courses from major platforms. However, I have been frustrated by a lack of detailed explanation from instructors. They tend to focus on final products, thus missing out the fundamentals. I was confused by which design principles to follow, and why. Soon after I've been blogging for the last 5 months, I've discovered this isn't the only problem of mine. I've received hundreds of emails and questions regarding how to write code that does not violate principles such as DRY, modularity, and readability. As a result, I've decided to create this course dedicated for my younger self. I believe it all comes down to the fundamentals which I lacked in the beginning.

Course Overview

There are 8 chapters in this course. From Chapter 1 to 4, you will get a firm understanding of both Intro to Functional, and protocol, and Object Oriented Programming. In Chapter 5, you will fully understand how objects are created and removed. In Chapter 6 and 7, you will learn how to create value oriented swift code along with protocol generics and enums. In the last chapter, you will acquire various advanced and hidden tips about the Swift Programming Language.

Prerequisites

This course is designed for Swift intermediates. So, I won't cover the basics. You may visit the lecture notes and go to prerequisites. You will find a list of items you are expected to know. There is a YouTube video for each concept, so if you ever get stuck, you can always learn and come back. In a nutshell, you should be already be familiar with switch statement, conditional statement, basic operators, functions, and basic object oriented programming. 

Questions

Do you know why Swift engineers have implemented optionals? Do you know what completion handlers and how to design one for your project? Do you know retain cycle within closures and delegates? Do you know the difference between autoclosures, trailing closures, and @escaping closures? Do you know how to create custom operators. Do you truly understand the statement, "Swift is a protocol oriented programming language", and know how to use default protocols such as EquatableComparableSequence, and Iterator Protocol. Lastly, do you know the difference between normal and recursive enums? If you can't answer all of these questions, I recommend you to take this course and start learning with me. 

Course Resources

  • Group Chat 
  • Lecture Notes
  • Source Code
  • Explanations 
  • Supporting Tutorials 


Bob the Developer

Over thousands of daily visitors from students and iOS developers all around the world. Less than half a year, I became one of the top bloggers standing right next to big named brands. You don't have to question my quality of content. The growth and reputation speak for themselves. 

p.s: Lecture notes, source code, explanations are available at any time. They are created, prepared, and edited by Bob the Developer.

Who is the target audience?
  • Anyone who wants to take his/her game to the next level
  • Anyone who wants to know how to use enums
  • Anyone who wants to learn how to use closures and generics protocols
  • Anyone who has a hard time dealing with error messages from ? and !
Curriculum For This Course
71 Lectures
11:21:23
+
Introduction
2 Lectures 04:49
+
Chatper 1: The Swift Fundamentals
14 Lectures 02:46:59

Lesson 1: Optionals
15:28

Lesson 2: Optional Chainings
11:38

Lesson 3: Guard and Defer Statement
18:09

Lesson 4: Intro to Error Handling
18:33

Lesson 5: Type Casting
19:10

Lesson 6: Intro to Generics
18:47

Lesson 7: Subscripts
09:11

Lesson 8: Class vs Struct
12:17

Lesson 9: Set and Tuple
19:21

Lesson 10: Extension
09:02

Lesson 11: Intro to Operators
08:08

Lesson 12: Typealias
05:02

Conclusion
01:12
+
Chapter 2: Object Oriented Swift
10 Lectures 01:29:17
Introduction
00:52

Lesson 1: Convenience Init
12:05

Lesson 2: Computed Property
15:11

Lesson 3: Property Observers
12:54

Lesson 4: Failable Init
06:20

Lesson 5: Override Method, Init, Property
16:17

Lesson 6: Two Phase Init
04:44

Lesson 7: Type Property and Method
10:33

Lesson 8: Singleton Pattern
09:34

Conclusion
00:47
+
Chapter 3: Intro to Functional Swift
8 Lectures 01:16:21
Introduction
02:09

Lesson 1: Intro to Closures Part 1
14:07

Lesson 2: Intro to Closures Part 2
10:19

Lesson 3: Lazy Init with Closures
17:10

Lesson 4: Capture Lists
10:27

Lesson 5: Trailing Closures
10:46

Lesson 6: Completion Handlers
10:26

Conclusion
00:57
+
Chapter 4: Protocol Oriented Swift
6 Lectures 40:15
Introduction
00:28

Lesson 1: Intro to Protocols
13:14

Lesson 2: Protocol Extension
08:12

Lesson 3: Protocol as Type
09:48

Lesson 4: Delegate
07:31

Conclusion
01:02
+
Chapter 5: Memory Management
6 Lectures 01:10:09
Introduction
00:34


Lesson 2: Delegate Retain Cycle
13:40


Lesson 4: Escaping and Autoclosures
17:56

Conclusion
01:22
+
Chapter 6: Generic Protocols
7 Lectures 48:36
Introduction
00:40

Lesson 1: Intro to Associated Type
07:40

Lesson 2: Protocol Extension and Type Constraints
07:43

Lesson 3: Override Protocol Associated Type
06:35

Lesson 4: Protocol Pitfalls
11:19

Lesson 5: Type Eraser
13:26

Conclusion
01:13
+
Chapter 7: Advanced Enums
9 Lectures 01:29:36
Introduction
01:00

Lesson 1: The Enum Basics
14:39

Lesson 2: Static and Mutating Methods with self
18:31

Lesson 3: Nested Enum
10:05

Lesson 4: Protocol Oriented Enum
10:44

Lesson 5: Recursive Enum
15:02

Lesson 6: Generic Enum
08:25

Lesson 7: Error Handling with Result Type
09:53

Conclusion
01:17
+
Chapter 8: Advanced Swift
8 Lectures 01:31:56
Introduction
01:14


Lesson 2: Advanced Operators
16:41

Lesson 3: Advanced Error Handling
07:24

Lesson 4: Equatable and Comparable Protocol
11:48

Lesson 5: Sequence and Iterator Protocol
15:48

Lesson 6: Intro to Test Driven Swift
15:27

Conclusion
01:02
+
Bonus Lecture
1 Lecture 03:25
What's Next?
03:25
About the Instructor
Bob Lee
4.9 Average rating
84 Reviews
351 Students
1 Course
iOS Instructor | Bob the Developer

Hey guys, I'm is Bob(by) from Korea. I'am an iOS blogger at "Bob the Developer". I focus on the fundamentals of iOS development which often developers neglect. I believe most problems can be solved by understanding the root. My teaching philosophy is to provide as many as practical problems within each lesson and then students are able to apply in their own projects. I love teaching because it is the only way I can have great impact on people's lives at this point of my life. I work towards building long-term relationships with THE students over short-term sales.