Originally Posted by hrminer92
The issue isn't with native (or not native) code: media companies are starting to launch webapp versions of their apps for iPhone, and they're actually faster than the Cocoa versions.
The issue is, in most cases, a perception issue. When a iOS app launches follows this flow:
- the app starts launching
- while the app loads into memory the OS makes an animation of a frame resizing from the app icon to full screen. While this happens, the app loads a bitmap that is a exact representation of the app's startup UI. If the app doesn't have a "loading" screen, the image is an empty window, but with all the buttons, bars, and so on.
- the OS shows this image (not the actual app).
- the app loads it's preferences and initial setup, and starts running.
Actually, it takes between 1 to 3 seconds (depending on the app, of course) to the app to really load, but the user thinks that what they have in front of them is the real app, while they really only have a bitmap. Also, iOS PIM and browser apps are always open, so they really aren't opening each time (look at webOS' browser and email apps as reference, they are always running).
On webOS, the loading proccess is different. webOS loads the app in minimized state, showing a glowing icon until the app load is completed. The dev can replace the gray background of the app with a bitmap, but that approach doesn't look like an instant load. It really takes (practically, and obviously depending on how heavy the app is, and how it's developed) the same time to open an app on iOS or webOS, but the user doesn't have the same feeling.
I've been able to truly instant load (less than a second) of one of my apps just with a few tricks, like the ones iOS uses, but as the loading method is different, it has it's own issues (like UI flashing).