Software design patterns are standard, proven ways to solve various problems programmers encounter. In this course, Design Patterns in Swift: Creational, you'll learn about the creational patterns using UML diagrams and practical Swift code examples. You'll begin the course with an introductory module about the history of design patterns, the values they provide, and their limitations. A brief Unified Modeling Language Primer will introduce the concepts and the diagrams used throughout this course. Next, you'll jump right into the creational patterns, which will feature the Singleton first. You'll explore thread safety using Grand Central Dispatch, generics, and readers. Then, you'll discover the Prototype pattern and concepts like the cloning of value and reference types, the difference between shallow and deep copying of objects, and under-the-hood optimizations like the copy-on-write. Finally, you'll learn the Builder pattern followed by the Factory Method design pattern. By the end of this course, you will be better prepared to implement creational design patterns in Swift.