Udemyallen

Mastering Design Patterns and Software Design - Swift, iOS

Master software design & design patterns! Learn with real-world examples to build robust, scalable applications. Become a proficient software designer.

4.5(38)
293students
5h 38m
Certificate
El Edtech
El EdtechSenior Software Engineer

Course Content

Mastering Design Patterns and Software Design - Swift, iOS is an all-levels Udemy course taught by El Edtech. It runs 5h 38m, is taught in English, and includes a certificate of completion. Learners rate it 4.5 out of 5 from 38 reviews, with 293 students enrolled. It is a paid course, first published August 2021.

Unlock the secrets to building robust and maintainable code with this practical course on Design Patterns and Software Design! Gain the skills to develop flexible and extendable applications.

This course provides a comprehensive understanding and practical application of essential Design Patterns using Swift Programming. You'll learn through visualizations of how each pattern works internally and implement them with scenario-based examples and a step-by-step approach.

We'll delve into key concepts of Swift, Objective-C, and the iOS SDK to gain deeper insights into the inner workings of these technologies. Develop the confidence to excel in senior technical interviews focused on Design Patterns and Software Design.

You'll also master crucial Design Principles for writing reusable and robust code.

Specifically, you'll explore:

  • Creational Design Patterns: Efficiently create objects with patterns like:

    • Singleton: Ensuring only one instance of a class exists.
    • Prototype: Creating new objects by cloning existing ones.
    • Factory: Creating objects without specifying the exact class to instantiate.
    • Abstract Factory: Providing an interface for creating families of related objects.
    • Builder: Separating object construction from its representation.
    • Object Pool: Reusing objects to reduce object creation overhead.
  • Structural Design Patterns: Assemble classes and objects for larger structures with:

    • Adapter: Allowing incompatible interfaces to work together.
    • Bridge: Decoupling an abstraction from its implementation.
    • Composite: Treating individual objects and compositions of objects uniformly.
    • Decorator: Dynamically adding responsibilities to an object.
    • Flyweight: Sharing common parts of large objects to reduce memory usage.
    • Proxy: Providing a surrogate or placeholder for another object.
    • Facade: Providing a simplified interface to a complex subsystem.
  • Behavioral Design Patterns: Establish communication between objects in a flexible and loosely coupled way using:

    • Chain of Responsibility: Passing a request along a chain of handlers.
    • Strategy: Defining a family of algorithms and making them interchangeable.
    • Template Method: Defining the skeleton of an algorithm in a method, deferring some steps to subclasses.
    • Observer: Defining a one-to-many dependency between objects.
    • Command: Encapsulating a request as an object.
    • State: Allowing an object to change its behavior based on its internal state.
    • Visitor: Representing an operation to be performed on elements of a structure.
    • Mediator: Defining an object that encapsulates how a set of objects interact.

Finally, you'll learn common Software Design Core Concepts and Terminology used for designing reusable, flexible, and extendable software components – essential for daily software development.

$ whoami — the devs behind tutorialsearch.io

Need a web app built? Hire the team behind TutorialSearch.io

We ship fast, production-grade full-stack apps (Next.js, React, edge infra) — the same stack that powers this site.