I'm trying to find ways to reduce load times for a large application. Here is some background: The app uses a lot of the iphone frameworks (openGL,mapping,location,quartz,audio) as well a few libraries from other sources (JSON, ARKit, Flurry, Facebook connect) The code + nib size is around 3.5MB with about 150 source files. The app compresses to around 2.5MB. Load times are around 13s on an iPhone 3GS. The actual time spent in my code is only around 1s. (from the start of main() to the end of applicationDidFinishLaunching) The app delegate has references to most of the view controllers in the app as they are referenced from many places and often store persistent information. Everything in the app is already lazily initialised so I can't just do things later on.
Is there anything I can do to reduce the load times in this case or is this just how long the device takes to load all the code into memory? I don't know very much about how compilers/linkers work so I was wondering if there are any coding practices that can reduce load times?