Design Patterns in Swift (Udemy.com)
Discover the modern implementation of design patterns with Swift
Created by: Dmitri Nesteruk
Last updated July 2019
What you will learn
- Recognize and apply design patterns
- Refactor existing designs to use design patterns
- Reason about applicability and usability of design patterns
- Implement each pattern in a coding exercise
How it compares
Against the other 160 rated Udemy courses in iOS Swift on CourseDuck:
- Rating4.6 out of 5higher than 65% of them
- Reviews1,522#20 of 161 by number of reviews
- Length8.7 hoursshorter than 61% of them
- Last updatedJuly 2019earlier than 61% of them
Course Description
Course Overview
This course provides a comprehensive overview of Design Patterns in Swift from a practical perspective. This course in particular covers patterns with the use of:
- The latest versions of the Swift programming language
- Use of modern programming approaches: dependency injection, reactive programming and more
- Use of modern developer tools
- Discussions of pattern variations and alternative approaches
This course provides an overview of all the Gang of Four (GoF) design patterns as outlined in their seminal book, together with modern-day variations, adjustments, discussions of intrinsic use of patterns in the language.
What are Design Patterns?
Design Patterns are reusable solutions to common programming problems. They were popularized with the 1994 book Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, John Vlissides, Ralph Johnson and Richard Helm (who are commonly known as a Gang of Four, hence the GoF acronym).
The original book was written using C++ and Smalltalk as examples, but since then, design patterns have been adapted to every programming language imaginable: Swift, C#, Java, PHP and even programming languages that aren't strictly object-oriented, such as JavaScript.
The appeal of design patterns is immortal: we see them in libraries, some of them are intrinsic in programming languages, and you probably use them on a daily basis even if you don't realize they are there.
What Patterns Does This Course Cover?
This course covers all the GoF design patterns. In fact, here's the full list of what is covered:
- SOLID Design Principles: Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle and Dependency Inversion Principle
- Creational Design Patterns: Builder, Factories (Factory Method and Abstract Factory), Prototype and Singleton
- Structrural Design Patterns: Adapter, Bridge, Composite, Decorator, Façade, Flyweight and Proxy
- Behavioral Design Patterns: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Null Object, Observer, State, Strategy, Template Method and Visitor
Who Is the Course For?
This course is for Swift developers who want to see not just textbook examples of design patterns, but also the different variations and tricks that can be applied to implement design patterns in a modern way.
Presentation Style
This course is presented as a (very large) series of live demonstrations. All demos are single-file, so you can download the file attached to the lesson and run it in CLion, XCode or another IDE of your choice (or just on the command line).
This course does not use UML class diagrams; all of demos are live coding. I use Visual Studio Code for the demos.
Instructor Details
- 4.6 Rating
1,522 Reviews
Dmitri Nesteruk
Dmitri is a quant, developer, book author and course author. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C# and C++ programming as well high-performance computing using technologies such as CUDA and FPGAs. He has been a C# MVP since 2009.
More courses by Dmitri Nesteruk
Learn Parallel Programming with C# and .NET (2019)
4.6 (4,564 Reviews)
Provider: Udemy
Time: 5.3h
$14.99
More iOS Swift courses
iOS 12 Swift 4.2 - The Complete iOS App Development Bootcamp (2021)
4.9 (562 Reviews)
Provider: Udemy
Time: 55.4h
$109.99
Noob to App Store - iPhone Apps with Swift, SwiftUI & iOS 15 (2021)
4.9 (342 Reviews)
Provider: Udemy
Time: 7.8h
$69.99
Deep Dive iOS 27 & SwiftUI 6: 90-Hour Project-Based Course (2026)
4.8 (983 Reviews)
Provider: Udemy
Time: 88.7h
$79.99
The Swift Arcade Data Structures and Algorithms Bootcamp (2022)
4.8 (839 Reviews)
Provider: Udemy
Time: 7.2h
$84.99
How To Make An App For Beginners (iOS/Swift - 2019)
4.8 (658 Reviews)
Provider: Udemy
Time: 4.3h
Free
SwiftUI iOS13 Coffee Shop Application, Order Products Online (2020)
4.8 (158 Reviews)
Provider: Udemy
Time: 8.2h
$109.99
Reviews
By Anonymized User on 7/10/2024
The instructor really seems to know about the principles, but the way that he is explaining is just to go though the exercise. It would also be nice to have real world examples. We have to keep thinking of how it would be applied to our stack. So not that much much use. Which is a sad thing, since most of companies ask for these stuff.
By Renan Marchini on 7/5/2023
Hey, Dmitri. I just finish your course and it gave me a lot to think about and knowledge. But I have some feedback that can improve your course: Xcode is more familiar IDE for swift developers. Using autocomplete would help a lot with typos. I missed real world examples for some patterns. Sometimes the exemplo builded a not necessary complexity to be solve with the pattern. Thank you very much and I will see you in the next course.
By Anonymized User on 6/29/2023
Excellent course! The instructor gives clear explanations about Design Patterns, but also what is different when approaching with Swift. It is a theoretical course, but I did not find it hard to apply to app development. It just takes a bit more practice and, of course, critical thinking on when or where to apply the patterns. I just wish there were some book recommendations.
By Łukasz Cieślik on 1/27/2023
Świetny kurs. Wiele się nauczyłem. Jednak trzeba pamiętać, że 8.5 godziny kursu to tylko początek. Trzeba wziąć pod uwagę, że każdą część przedstawionego materiału trzeba "Przepracować" samemu. Stąd też czas potrzebny na dokończenie tego kursu trzeba pomnożyć przez co najmniej 3 :-) Ale muszę przyznać że się opłacało. Pozdrawiam
By Justus Aype Jose on 11/1/2020
Very knowledgeable instructor @nesteruk, but for some design patterns the examples were a little complicated which required multiple views. Anyway, thanks for the sessions!
By Midhun MP on 7/11/2020
Very good course. I definitely recommend this course.
One suggestion from my part is, the examples given for some patterns were too complex and it added extra complexity to the topic itself. If possible, please use simple examples.
By Jan Willem van Eijk on 6/20/2020
Aan n stuk door praten is erg onrustig en bijna niet te volgen...
By Himanshu Lanjewar on 5/26/2020
excellent
By Anonymized User on 4/21/2020
Above my skill level
By Mandar Joshi on 4/9/2020
Content is very good and all concepts are explained in detail. The development environment editor screen looks blurred due to which I couldn't see the code clearly.
By JIAYI LIU on 4/7/2020
Opened my eyes in programming, although I can't fluently use those patterns on my job yet, but I do find myself begin to recognise those patterns in my seniors' code. Looking forward to try some of these one day on my own project! Thank you so much!
By Ruben Dias on 4/6/2020
Plenty of content, but the lessons are not very well explained. I like the instructor, but I wish he'd spend more time explaining the design patterns and discussing its usage, instead of just walking us through a complicated example that often is insufficient for real understanding.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 92 / 100












