Differences between iPhone OS v2 and v4? - iphone

Can any one say difference between the iPhone OS 2+ till 4 and what's the main difference in the OS as well as the development in xcode..
Thanks

For the difference between the versions go to http://developer.apple.com/iphone/library/navigation/index.html#section=Resource%20Types&topic=Release%20Notes and see the Documents called iOS x.x API Diffs

In Release notes section of iOS Reference Library you can find "API diffs" docs for every iOS version starting from 2.1.

The answer of this question should be very much in detail but may be following my answer in other post will help you to understand how apple world is working:
Are there any Hardware Requirements to test iPhone Apps on your iPhone

Related

Will my app work with a new iOS?

I have made an app for iOS 5.1..
Will the app work with iOS 6 also? Or do I have do to any updates in the code or something?
Thanks!
Apple has good backward and forward compatibility so it should work with no problem
There are cases when you use some specific libraries that your app will need a resubmission
but 99% of the cases your app will just work good
One point to note here: is if apple will change the resolution of their next devices you may find some icons that are low quality (happend when iphone 4 was first release)
But regardless of that your app should work.
Usually the OS versions are backward compatible for the apps.

Testing iPhone apps in iOS 3.0

Officially Apple let developers deploy apps that's compatible with iOS 3.0 to iOS 4.2. However there are some APIs and some hardware features that's not present in some devices or in some iOS versions.
However if you only have one testing device, and you want to try to install a clean iOS 3.0 to that, for testing purposes, what is the official way to do it? I tried looking all over Apple developer website and it does not give me anything.
I asked a similar question before: A TimeMachine taking my iDevice back to 3.1.2?
After that I did a thorough research on this topic. It finally turned out, that actually there is no official way for a developer to downgrade her or his own device back to an earlier iOS. Apple just doesn't allow that to happen.
However, in your code, there are many things you can do to make sure your app is supported in an old version iOS. Check this great post: http://cocoawithlove.com/2010/07/tips-tricks-for-conditional-ios3-ios32.html
If testing on the iOS Simulator is enough, you can achieve that by installing previous versions of the SDK which contains the older versions of iOS.
As for device, there is no quick way to switch between iOS versions on a single device.
I struggled with this for a while, and eventually gave up on downgrading and bought a used 1st gen iPod Touch, which can't be upgraded to 4.x so it's guaranteed to be 2.x or 3.x (2.x is easily upgraded to 3.x).
Now I test on that. Added benefit is that when testing on it you're at the same time checking the performance on a slower (slowest?) iOS device too.

iPhone OS 4.0 backwards compatible with 3.1/.2

I'm building an iPhone application with a base SDK target of 3.1.x. I've got a friend who offered to test it on the OS 4.0 beta, but I'm wondering in advance if I should bother. Will my application run under 4.0 or is it not backwards compatible? I have to imagine it will since apps built for 2.x run on 3.x just fine AFAIK. Any gotchas?
This information is still under NDA and therefore cannot be discussed here, except what was mentioned at th keynote and is thus public.
That said...
I can see the announced multitasking as a gotcha in terms of memory, performance and application state. Testing on OS 4 seems like a good idea in light of that. However, I your friend's device is not a latest-gen hardware device (iPhone 3GS or iPod touch 3rd generation), you will not get test results that deal with multitasking.
Also, remember that when installing the iPhone OS beta, you will need to add your friends UDID to your list of testing devices in your devloper portal or else the device will lock up when you upgrade.
In case you or someone reading this needs to know:
To upgrade, you can either use XCode's Organizer or simply use iTunes. Hold the "option" key and click on the "restore" button. A window will pop up asking you what firmware to use.
Again, thes kind of questions are not yet really legal outside of Apple's develope forum.
I hope this helps. Good luck and happy developing!!
I've been using 4.0 beta for a few weeks now, and haven't run into any problems with my / App Store OS 3 apps. I don't think there were any changes in OS 4 that would break existing OS 3 apps but I can't say so with complete certainty.
Most likely any features from 3.0+ will be in 4.0. Features in 2.x may be removed.
No way to know for certain unless you can use the beta or wait until the official release.
You should always test on as many devices as possible. As mentioned, OS 4 is particularly good to test with just to make sure you interact well with the new multitasking features (which is public knowledge so it's not like saying anything about that would go against the NDA).

comparison between iphone OS 3.0 and 3.1.3?

i want to know in Detail comparison between iPhone OS 3.0 and 3.1.3 and also want to to about all newly added features in OS 4.0 so please give a link or some source which gives the comparison and Newly added features in details with Description.
Just read the version history on wikipedia.
iPhone OS 4.0 is still under NDA. I can't provide you with the details of the changes, but any result Google will return is spot on.
The changes between iPhone OS versions which have been released are available on the iPhone developer site.

Testing iPhone Software on Different Versions Of OS

Before submitting my app I want to test it on devices with the full range of iPhone OS available. So, I have 2 questions that I am struggling with and would greatly appreciate any help or advice.
What versions of the OS are in use?
I know that the App Store will only accept apps for 2.2.1 and 3 but all the features I'm using have been available since 2.0. Is it safe to assume that everyone is running at least 2.2.1?
Where can I find the other OS disk images, so that I can do the test?
The iPhone Development Guide (p43) says search the developer website but I can't find them.
Searching the internet just seems to throw up jailbreak sites.
I can see some dmg files that were installed with the SDK at:
Macintosh HD/Developer/Platforms/iPhoneOS.platform/DeviceSupport/x.x
but XCode Organizer ignores them.
Any help or advice would be greatly appreciated.
Many thanks in advance.
If you just need to test it on the simulator (which is a good approximation of the actual iPhone OS as far as API's are concerned) you can change the OS version by going to Hardware > Versions and selecting your version on the iPhone Simulator app. For me, I see 2.0, 2.1, 2.2, 2.2.1 and 3.0.
Edit: Here's a site that has older versions of the iPhone firmware:
http://www.felixbruns.de/iPod/firmware/
Theoretically you can just "restore" to these older firmware through iTunes, although I haven't tried doing it myself.
What versions of the OS are in use?
Unfortunately this information isn't readily available. I'd love to know. It's clear that virtually all iPhone owners will have moved to 3.0, since it's a free download and there's no good reason not to. For iPod touch users it's not quite as clear, but my guess is that a good chunk of them have not upgraded. I would speculate that there is a strong correlation between the people who have upgraded at the kind of people who pay for applications, but speculation isn't necessarily a very good business case!
Where can I find the other OS disk images, so that I can do the test?
If you want to be all official and above board, you actually can't downgrade an iPhone or iPod touch to an earlier OS release. There are ways of doing it but I can't tell you what works and what doesn't as I've never tried.
The way I do it is test on my handset which usually has the last released version or a late beta. I then use the Simulator and my beta testers to check out how it works on older versions.