I realize singletons being used in things as UserDefaults and so on. What escapes me however is why they exist at all. A singleton creates one instance. On this instance all (non-static) methods are called. The instance is created through a static property. Why not simply render all methods and properties static? Hence not creating the singleton but work via static methods and properties.