Design Patterns in Swift

Discover the modern implementation of design patterns with Swift

4.51 (1209 reviews)
Udemy
platform
English
language
Programming Languages
category
instructor
Design Patterns in Swift
8,582
students
8.5 hours
content
Jul 2019
last update
$94.99
regular price

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

Why take this course?

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.

Screenshots

Design Patterns in Swift - Screenshot_01Design Patterns in Swift - Screenshot_02Design Patterns in Swift - Screenshot_03Design Patterns in Swift - Screenshot_04

Reviews

Aleksandra
February 27, 2024
Unfortunately, this course is not in a way for beginners. Examples and exercises are very complicated and cumbersome. Code style of the lecturer is unusual for Swift developers and he doesn't use Xcode playground. Anyways, thank you for your work.
Eduardo
February 23, 2024
Amazing material, very clear explanation but sometimes the tests goes beyond someone who wants to put in practice what have just learned.
Kushal
February 23, 2024
Though it’s not zoomed in for mobile screens, the content and narration are so good that they make up for it
Andy
October 20, 2023
Not an experienced swift developer. Writes code in a way that does not follow the guidelines in the swift documentation. Does not describe the separation of concerns properly as a class with a direct dependency on another class is not separation of concerns .
Michael
August 25, 2023
Thank you for working hard to make this course: amazing this is considered a "niche" topic in 'higher education'.
Renan
July 6, 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.
Anonymized
June 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.
John
June 23, 2023
So far very good. I've read the Design Patterns book and reference it often. I'm gaining from the instructor walking through with live coding examples of the content. Wonderful course, looking forward to working through the entire content.
David
June 21, 2023
Excellent explanations with a hard topic to learn. Will need to watch episodes again to let it sink in. Explanations are quickly discussed, but in a lot of detail. Looking forward to the rest of the course!
Samith
April 8, 2023
Its give a good understanding about the design principles and explain it through examples. most of these concepts are general but in this course it specify how these principles are using in swift.
Łukasz
January 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
Amit
December 14, 2022
The tutor is too fast and the voice is unclear the example are also not upto the mark. Found better explanations on google
ShinIl
December 8, 2022
This course is made for intermediate or higher developer. Quizzes were really difficult for me. However, examples were intuitive and helped me a lot thinking about planning architecture of system
Wayne
November 28, 2022
Examples shown in design pattern lectures do not map to real-world use cases, and trying to run the code from each lecture locally does not always work
Nitin
October 10, 2022
Very well explained with great examples, very interesting. course put all the different knowledge at one place. simply awesome.

Charts

Price

Design Patterns in Swift - Price chart

Rating

Design Patterns in Swift - Ratings chart

Enrollment distribution

Design Patterns in Swift - Distribution chart

Related Topics

1297994
udemy ID
7/19/2017
course created date
11/21/2019
course indexed date
Bot
course submited by