Manager
public protocol Manager : AnyObject, ClassName
Simplifies Managers start and reset routine. All managers could be then started/reseted on apropriate point in app, e.g. on user login/logout.
To get all Managers in some place (e.g. ApplicationManager) you could use following construction:
private var managers: [Manager.Type] = {
return g_getClassesConformToProtocol(Manager.self)
}()