We may earn an affiliate commission when you visit our partners.
Course image
Bob Lee

Attention

*Please note the course is no longer maintained since 2017.

Why I Created Learn Swift with Bob

Read more

Attention

*Please note the course is no longer maintained since 2017.

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 10 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 Equatable, Comparable, Sequence, 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.

Enroll now

What's inside

Learning objectives

  • 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
  • Functional programming

Syllabus

Introduction
Course Overview
Chatper 1: The Swift Fundamentals
Lesson 1: Optionals
Read more
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
Conclusion
Chapter 2: Object Oriented Swift
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
Chapter 3: Intro to Functional Swift
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
Chapter 4: Protocol Oriented Swift
Lesson 1: Intro to Protocols
Lesson 2: Protocol Extension
Lesson 3: Protocol as Type
Lesson 4: The Delegate Pattern
Lesson 5: The Data Source Pattern
Chapter 5: Memory Management
Lesson 1: Automatic Reference Counting
Lesson 2: Delegate Retain Cycle
Lesson 3: Closure Retain Cycle
Lesson 4: Escaping and Autoclosures
Chapter 6: Functional Programming
Lesson 1: Intro to Functional Paradigm
Lesson 2: Filter
Lesson 3: Map
Lesson 4: Reduce
Chapter 7: Generic Protocols
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
Chapter 8: Advanced Enums
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
Chapter 9: What's New in Swift 4
Lesson 1: Access Control
Lesson 2: Keypaths
Lesson 3: Generic Subscripts
Lesson 4: JSON Parsing with Codable
Lesson 5: Advanced Codable
Lesson 6: Advanced Dictionary
Chapter 10: Advanced Swift
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

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Demystifies the principles of Swift programming by addressing foundational concepts overlooked by other courses
Suitable for Swift practitioners, focusing on advanced concepts like protocol-oriented programming and functional programming
Covers essential aspects of Swift, such as object-oriented programming, generics, and memory management, making it a valuable resource for developers
Provides practical guidance through real-world examples and hands-on exercises
Course has not been updated since 2017, which may limit its relevance to the latest Swift versions and industry practices

Save this course

Save Learn Swift 4 with Bob: The Intermediate to Advanced Swift to your list so you can find it easily later:
Save

Reviews summary

Swift course - intermediate/advanced

Learners say this advanced Swift course greatly improved their code bases and expanded their knowledge of the Swift language.
This course's advanced topics helped expand my knowledge base.
"Great course with more advanced topics over the swift language."
"Really helped improve my code base on my personal projects."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Learn Swift 4 with Bob: The Intermediate to Advanced Swift with these activities:
Swift Basics Refresher
Review Swift basics, such as variables, data types, control flow, and functions, to ensure a solid foundation for the course.
Show steps
  • Review variables, data types, operators and control flow
  • Practice writing simple functions
  • Solve beginner-level Swift coding challenges
Read 'Swift Programming Language'
Deepen your understanding of Swift by reading the official language guide, exploring advanced topics, and clarifying concepts.
Show steps
  • Read through the book, focusing on chapters relevant to the course
  • Take notes and highlight important concepts
  • Refer back to the book as needed during the course
Dive into Swift Error Handling
Explore error handling techniques in Swift, including error types, try-catch blocks, and custom error messages, to enhance code reliability.
Browse courses on Error Handling
Show steps
  • Follow tutorials on error handling in Swift
  • Experiment with different ways of handling errors
  • Implement error handling in a small Swift project
Show all three activities

Career center

Learners who complete Learn Swift 4 with Bob: The Intermediate to Advanced Swift will develop knowledge and skills that may be useful to these careers:
Data Architect
Data Architects design and develop data systems. This course may be useful as a foundation for a career as a Data Architect, since it covers topics such as protocol-oriented development and memory management, which are important topics in data architecture.
Computer Systems Analyst
Computer Systems Analysts design and implement computer systems. This course may be useful as a foundation for a career as a Computer Systems Analyst, since it covers advanced topics such as protocol-oriented development and memory management, which are important topics in systems analysis.
Software Architect
Software Architects design and develop software systems. This course may be useful as a foundation for a career as a Software Architect, since it covers advanced topics such as protocol-oriented development and memory management, which are important topics in software architecture.
Cloud Engineer
Cloud Engineers design, build, and maintain cloud computing systems. This course may be useful as a foundation for a career as a Cloud Engineer, since it covers protocols and how to use them, as well as memory management, which are important topics in cloud engineering.
Mobile App Developer
Mobile App Developers design, develop, build, test, and maintain software for smartphones and tablets. This course covers the second programming language of choice for mobile app developers. Although it is not specific to mobile app development, topics covered such as memory management, closures, optional chaining, computed properties, and advanced enums may be applicable.
Technical Project Manager
Technical Project Managers plan and manage software development projects. This course may be useful as a foundation for a career as a Technical Project Manager, since it covers topics such as memory management and error handling, which are important topics in project management.
Information Security Analyst
Information Security Analysts plan and implement security measures to protect computer systems and data. This course may be useful as a foundation for a career as an Information Security Analyst, since it covers topics such as memory management and error handling, which are important topics in information security.
DevOps Engineer
DevOps Engineers manage and maintain the software development lifecycle. This course may be useful as a foundation for a career as a DevOps Engineer, since it covers topics such as memory management and error handling, which are important topics in DevOps.
Systems Administrator
Systems Administrators manage and maintain computer systems, including software, hardware, and networks. This course may be useful as a foundation for a career as a Systems Administrator, since it covers memory management and error handling, which are important topics in systems administration.
Quality Assurance Analyst
Quality Assurance Analysts test and evaluate software to ensure it meets quality standards. This course may be useful as a foundation for a career as a Quality Assurance Analyst, since it covers advanced testing topics such as error handling and memory management, which are important topics in QA.
Database Administrator
Database Administrators manage and maintain databases. This course may be useful as a foundation for a career as a Database Administrator, since it covers topics such as error handling and memory management, which are important topics in database administration.
Web Developer
Web Developers design, build, and maintain websites and web applications. This course may be useful as a foundation for developing web applications, since it covers topics such as protocol-oriented programming, generics, and functional programming. Additionally, some of the source code used in the course explores web development with Swift.
Computer Programmer
Computer Programmers create, modify, and test software programs. This course may be useful as a foundation for a career as a Computer Programmer, since it covers advanced topics such as protocol-oriented development, which many computer programmers will encounter.
Data Scientist
Data Scientists gather, analyze, and interpret data to extract meaningful insights. This course may be useful in gaining a stronger foundation in computer programming and data analysis. Functional programming is a popular paradigm used by data scientists.
Software Engineer
Software Engineers design, develop, build, test, and maintain software. This course is not specifically targeted toward Software Engineers, but it does explore multiple advanced topics used daily by these professionals. Topics covered include static and mutating methods used with self, nested enums, protocol-oriented enums (Полезная In designing architecture), and error handling with result types.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Learn Swift 4 with Bob: The Intermediate to Advanced Swift.
By three Swift engineers from Japan covers both the theoretical background of Swift and practical know-how. It is meant as a comprehensive, in-depth reference to the Swift language.
A broad treatment of Swift suitable for intermediate to advanced programmers. The book is particularly good on Swift's memory management system.
Covers the fundamental concepts of algorithms and data structures, implemented in Swift.
Provides insight into the broader set of topics beyond just the differences between C++ and Swift, but offers advice on foundational programming concepts that can be applied to Swift as well.
Provides guidance on how to write better code in general.
Provides a good introduction to TDD, although it is written in Java. It is recommended to help understand how TDD makes writing code more robust.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Learn Swift 4 with Bob: The Intermediate to Advanced Swift.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser