Save for later

Design Patterns in Swift

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.

Get Details and Enroll Now

OpenCourser is an affiliate partner of Udemy and may earn a commission when you buy through our links.

Get a Reminder

Send to:
Rating 4.2 based on 60 ratings
Length 8.5 total hours
Starts On Demand (Start anytime)
Cost $14
From Udemy
Instructor Dmitri Nesteruk
Download Videos Only via the Udemy mobile app
Language English
Subjects Programming
Tags Programming Languages Development

Get a Reminder

Send to:

Similar Courses

What people are saying

design patterns

The course seemed more of a 'refresh' for software architects than a foundational base for programmers wanting to better understand design patterns.

Since I asked for a tutorial on Design patterns using swift and xcode, I expected the practical part to be done using xcode The course is very good.

Really enjoy this course and helped me understand why to use design patterns.

Good explanation of design patterns with code samples written in Swift.

In-depth knowledge of design patterns very useful examples perfect A challenging course but gives a solid understanding of patterns.

The explanations of design patterns are helping to put all the syntax in context.

I'm not new to design patterns in theory as I have a background in Computer Engineering and have implemented the most common design patterns explicitly in my area of work such as singleton, protocol delegation, dependency injection and to some degree the observer but I've always had a desire to explore more design patterns and this course is absolutely fantastic for this purpose.

Some design patterns do get a bit overwhelming sometimes but well... that's design patterns for you.

Курс хороший и очень полезный для тех кто хочет разобраться в Design Patterns 2.

It goes into great detail concerning Design Patterns in Swift an offers plenty of opportunities to expand and practice this knowledge!

I’m a desktop and mobile developer from years and I discovered on my skin that design patterns are fundamentals for a full knowledge and thay can help you a lot during each phase of development... just a must!

Read more

like the way

- I like the way that all design patterns concept are explained very transparently with respective examples.

Dmitri may sound a bit robotic at 1.0x so 1.25x works well with me and I really like the way he explains the design patterns through easy to understand use-cases while coding at the same time.

Read more

Careers

An overview of related careers and their average salaries in the US. Bars indicate income percentile.

Research Tech, Design/Production Specialist $43k

Freelance Interior design $47k

Account Design Specialist $58k

Web Design Contractor $77k

Set Renderer/ Prop Design $80k

switchgear design and construction $95k

Mold Design Engineering (CAD) $104k

LNG Pressure Vessel & Mechanical Design Engineer Lead $124k

Senior Substation Design/P&C/Relay/Automation/SCADA Engineer $127k

Project Manager, Systems Design & Development $132k

ASIC Design Engineer 3 $185k

Software Design Engineer in Test Contractor 2 $203k

Write a review

Your opinion matters. Tell us what you think.

Rating 4.2 based on 60 ratings
Length 8.5 total hours
Starts On Demand (Start anytime)
Cost $14
From Udemy
Instructor Dmitri Nesteruk
Download Videos Only via the Udemy mobile app
Language English
Subjects Programming
Tags Programming Languages Development

Similar Courses

Sorted by relevance

Like this course?

Here's what to do next:

  • Save this course for later
  • Get more details from the course provider
  • Enroll in this course
Enroll Now