You're right, KT, but I'm an absollute newbie at this and I don't expect to be offering anything useable to anyone anytime soon. My interest is in learning how to develop for the ios, and now that the iPhone 4G has dropped to under $100 on a 3-year plan, I thought I might use it as a learning tool. I'm also trying to get more comfortable converting my web designs for mobile display, and I thought the iPhone G4 would be useful for that purpose as well. What has eased my mind somewhat is that the new ios (5) will run on all iPhones from 3Gs to 4Gs, which means my iPhone G4 won't become instantly obsolete when the new operating system is delivered.
You asked if a 4S was mandatory....
If the question is instead how to budget for applicable testing mules, the answer is to do what fits for you. Everyone has different development needs, skills, budgets etc.
If you target an OS that is not on a device you own, you won't be able to test it. Not testing creates the situation I outlined above.
When you submit an app to the store, you set the maximum and mimimum OS range supported. If you have an iOS5-only device, but your code is designed with specific code for earlier iOSs, you can't test on those iOSs. If you're not concerned with older iOSs at all, then don't support them and don't test on them.
Many devs only have one device for testing. Some devs have many devices. Again, do what works for you.
Good advice. Thanks.
Actually, I had posted my question before I knew that ios5 was imminent, and that it would run on a variety of iPhones all the way back to the 3Gs. I'm just getting involved in this area, so I imagine a whole volume of questions will be popping up in my mind. I have a couple of books on order that should help me navigate the uncharted (for me) world of ios development.
When ios5 is introduced, would all iPhones from 3Gs to 4Gs not automatically download the upgrade, or do users have a choice? I've never owned an iPhone, so I don't know what the protocol is. If they do all upgrade, wouldn't an app developed on a 4G running ios5 be compatible with any iPhone also running ios5.
Sorry if the questions seem dumb, but I really am a newbie in this area.
- Users can choose not to upgrade their iOS to a new release.
- Older hardware may not be able to run a newer release, e.g. iPhone2's are stuck at 3.1.3.
- Apple is very good a making the new release of iOS compatible with existing apps without the need to recompile them.
- A developer should have at least two iOS devices, one for beta testing new iOS versions for app compatibility.
- Always have the real device for testing if you are using new hardware features or features not available with the simulator such as accelerometer use.
- Users will always find something they don't like or a bug you missed.
>I have a couple of books on order that should help me navigate the uncharted (for me) world of ios development.
Unless they deal strictly with Obj-C or Cocoa, send them back. They'll frustrate you with out of date info, taking your money without support, sending you back here with pointless questions.
>When ios5 is introduced, would all iPhones from 3Gs to 4Gs not automatically download the upgrade, or do users have a choice?
It isn't automatic. Those users can choose not to upgrade, but since it will be no cost and leverage iCloud, etc. it is a good bet that uptake will follow trends and climb within a few months. Apple pushes users forward - devs need to work with that as a trend, I believe.
>If they do all upgrade, wouldn't an app developed on a 4G running ios5 be compatible with any iPhone also running ios5.
Loaded question...in general, yes, but is 'in general' good enough to promise your app in particular will be compatible? If your users test for you and complain in the store, those reviews can be hard to shake. You should consider it due diligence to perform whatever testing is needed to your own app so that it doesn't fall flat in the store. Again, what that means depends entirely on your app and what device features it may or may not require.