What’s the difference between a singleton and a shared instance in Swift?

The Singleton pattern is a well-known design pattern that aims to allow exactly one single instantiation of a type. A similar pattern often used in iOS development is to create a shared instance of an object that can be accessed from anywhere in a project. In this short post, Donny Wals explains the subtle difference between the two.