But what launch sequence i want to avoid? -> The normal app delegate (and eventually application:didFinishLaunchingWithOptions) It depends on your app, but it’s not unusual for it to doing things like:
- Set up all your default data if missing (with Core Data/NSUserDefaults/NSUbiquitousKeyValueStore/Realm/[write yours here])
- If there is some stored data reconfigure necessary things, like scheduled local notifications
- Check network reachability
- Configure the root view controller (in our case if it's the first time there appears a wizard)
- Retrieve from a server some configuration
- ... N tasks
An then in our "main", if the class is available, lets use it : Our "QNTestingAppDelegate" Looks like: QNTestingAppDelegate.h QNTestingAppDelegate.m And that's all folks.