
Understand how Udemy's review system affects course visibility and standings on the marketplace. Instructors invite feedback and aim for 5-star reviews to improve the course and boost its reach.
Explore the three main design pattern types—creational, structural, and behavioral—and learn where to apply each, how they create objects, structure components, and govern interactions for efficiency and testability.
Create an Xcode app project to run Swift design patterns, add a run pattern button connected to a main function, and organize patterns into creational, structural, and behavioral groups.
Explore the singleton pattern, providing a single shared network driver for multiple components. Implemented in Swift with a static shared instance and a private initializer.
Learn how the factory method hides creation logic from the client, separating use from creation, and selects the appropriate data source, database, api, or local storage, for a single instance.
Understand the abstract factory pattern, a level above the factory method, by using dedicated database and network factories so the client accesses data without knowing its source.
Learn how the builder pattern manages many parameters, avoiding exponential growth in constructors, by building an apartment with optional sqm, rooms, city, area, and kitchen before display.
Explore the prototype design pattern by cloning objects through a dedicated protocol, enabling exact copies of a vehicle and its bicycle subclass without exposing internals, with tests and pre-production use.
Explore how the adapter design pattern converts one protocol to another to bridge legacy code with current systems, enabling data conversion and communication with a third-party display.
Demonstrate the bridge pattern by separating phone OS and apps into orthogonal components, using composition with iOS/Android and Facebook/Instagram to avoid inheritance explosion.
Discover how the facade pattern hides complex steps behind a simple interface, letting a network access facade coordinate cache, intercept, send data, receive, and convert.
Wraps an existing object to add new behavior or override functionality without modifying the original code, demonstrated with a basic coffee machine and an enhanced coffee machine.
Apply the composite design pattern to a tree of computer parts—memory, hard drive, and processor—to compute the total price by summing each component's price through leaves and nodes.
Explore the proxy pattern by wrapping a real image behind a proxy that caches access and logs operations to improve efficiency while preserving the original protocol.
Reduce memory footprint by sharing image data with a flyweight factory, while storing unique state per fighter to draw and move in a large army.
Explain the observer pattern by building a registry-driven event system with subscribe, unsubscribe, and notify for one-to-many listeners, demonstrated with file open and close events.
Explore the chain of responsibility pattern by building a handler chain that processes requests, adds headers via authentication, content type, and payload handlers, and optionally passes the request along.
Discover how the command design pattern decouples the graphical user interface from business logic by wrapping commands with required data and routing them through a command processor.
Discover the strategy design pattern by encapsulating string formats as separate strategies, switchable at runtime via an executor to apply lowercase, uppercase, or random case transformations.
Demonstrates the state design pattern as a finite state machine, where a game object changes behavior by transitioning through welcome, playing, break, and end game states with guarded transitions.
discover how the visitor design pattern extends legacy components by using visitable elements and visitors to generate monthly and yearly reports for fixed price, time and materials, and support contracts.
Learn how the mediator design pattern centralizes communication among multiple chat clients by using a central mediator, so each client talks to the mediator and messages are distributed to others.
Explore the memento design pattern to implement undo and redo by capturing and restoring states with a memento, originator, and caretaker in a text editor example.
Thank you for taking this course and exploring Swift design patterns; apply the knowledge to improve your code and applications and advance your development skills.
Knowing how to build well structured programs and apps, that are scalable and robust is essential for every developer.
That's why I've created this course on Design Patterns for Swift.
Here you will learn how to apply popular patterns to your code, such as Builder, Adapter, Abstract Factory, as well as lesser known but very useful patterns, such as Composite, Decorator, Strategy etc.
This course will teach you how to structure your code so that it is more maintainable as it grows, and that it's easier to debug and test. When building a new project, you are not trying to reinvent the wheel, but instead to implement the correct solutions to the problems that you encounter.
It will also teach you the terminology that you need when you communicate with top level developers. When they say they implemented a factory for a piece of code, or the added a builder pattern for the creation of a certain object, you will immediately know what they mean.
This course covers 3 types of design patterns
Creational
Structural
Behavioural
We will also include code samples at each step of the way, so that you already know how to implement these patterns in practice.
Sign up today, and let's learn how to use Design Patterns in Swift.