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 a Reminder
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
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.
Please login to leave a review
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