If you are like me and have a year or less of experience developing iOS apps, there might be some concepts that you use in code without realizing what they are or why you’ve used them—I’m talking about design patterns. These patterns allow our app’s codebase to be more readable and resilient, help guide us when structuring our apps, and allow us to create objects and govern how those objects communicate with each other. Chances are, you’ve used many of these patterns without realizing it—like MVC, MVVM, Singleton, and Observer.