I see singletons used a lot in Swift projects. These things are, by definition, global state. That means they can be accessed from any context - any thread or actor - at any time. And this property makes them a common source of problems when used with Concurrency.