There are seperate builds for iPhone/iPad devices. You don't load an iPhone firmware file on an iPad and visa-versa.
Not to mention even if you have the same "version" of software, that doesn't mean the software has the same capabilities. Frankly, I don't think the iPhone 3G ever got iOS 4, even though it got a release with version 4.0.
"Look, the iPhone 3G runs iOS 4!" some people would say... hum... not really.
Heck, people think iOS is magical and that the devs don't need to deal with fragmentation at all. Quite frankly, those people never wrote a single line of code for iOS obviously.
Detecting the retina display :
Code:
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] == YES && [[UIScreen mainScreen] scale] == 2.00) {
// RETINA DISPLAY
}
(required to scale your views appropriately so that your HD application will work on the 3GS and your non-HD version will work on the 4 and 4S).
Detecting multi-tasking :
Code:
UIDevice* device = [UIDevice currentDevice];
BOOL backgroundSupported = NO;
if ([device respondsToSelector:@selector(isMultitaskingSupported)])
backgroundSupported = device.multitaskingSupported;
So, you have to liter your code with these little "detection routines" to find out if the device you're running on is capable of this stuff. Sure, vanilla iOS 2.0 and the original SDK had none of this non-sense, since of course, Apple hadn't released things like the iPad or many devices that were different (the original iPhone and the iPhone 3G were basically the same device after all, aside from the 3G radio).
----------
I believe Android would have been a QWERTY phone OS if the iPhone didn't exist.
You're mistaking Android the software and the hardware it runs on. Android never was a "qwerty phone OS". But it can run on QWERTY phones. Android "touch screen" support traces back to even the earliest SDK releases, not something Andy Rubin just threw together in light of the iPhone.
Android always was meant to be hardware agnostic. It's not a "Touchscreen OS", it's not a "QWERTY phone OS", it's simply an "OS" with input drivers. Just like any proper OS.