Games like Karateka (which uses UDK) seem to be able to asynchronously load GL assets as well as display animation.
The splash is incredibly short, then presumably their glView shows up.
I can think of 2 ways to simultaneously load textures, models and assets into OpenGL:
1) Create 2 contexts: the "real" one (which is doing the loading) and a "fake" one (which will be on a separate viewcontroller.. on a separate thread.) I'm not sure if this will work however as I don't know if you can create a 2nd GL context on not the main thread.
2) Cut the load sequence into small, small jobs. Each iteration of your draw loop, load one tiny asset (like a single texture or a single model).
The effect of this is probably a much longer total loading time!
Are either of these 2 right or are they both wrong? Is there another way to do it?