Starting App development, advice needed about hardware/devices

Hi,

So I’m considering getting into App development for iOS, i’ve searched the forums, read quite a few threads and acquired a good idea of the various components needed to start iOS development, but I’ve still got a bunch of questions mainly focused around the hardware/devices.

I have two reasons for getting into App development. Firstly existing clients are increasingly asking about it, though to date no firm commitments, but it can only be a matter of time. So it would be beneficial to be in a position where I can give more informative replies to their questions concerning feasibility of projects show them demo’s etc

Secondly I’d like to get into the App market, there is a strong appeal to returning to short little games/entertainment projects that I used to do in a browser. Having a new hardware line to develop for would bring back some of the fun and challenge. Of course i’d hope to make it profitable, although worse case just cover the start up costs, especially if it leads to client projects down the line.

In both cases I have the same problem;

  • What would be considered the most appropriate device to start with?
  • How many devices/generations you realistically need for good testing/debugging?
  • Realistically what devices/generations should you expect to have to support?
  • Any gotcha’s to watch out for?

So it would just be nice to get some advice or opinions.

1. First Device
What would be a good starting device, iPhone, iPod Touch, iPad?
Are they any differences that need to be taken into account in selecting one?

My problem here is that I don’t ‘need’ any of them, I’d probably use the phone the most (i.e calls), but I really like the iPad 2 esp as I think its the best in terms of performance currently (maybe not with iPhone 4S?). I would use an iPod Touch as I have a huge music catalogue, but then couldn’t I just use the phone to do the same?

So basically I guess I have no real preference, so looking to see what other criteria might be important in selecting one.

2. iPad 3G
If I were to go for an iPad is it necessary to get the 3G version?
I was only considering the basic wi-fi model, but I guess if you did anything multi-player you’d need to test via 3G too?
How about general net stuff, downloading data, would wi-fi be sufficient for testing that?

I guess I’m unsure if I need to go for the 3G version or what reasons there might be to do so?

3. Old vs Current
Should I start with an old version or jump straight in with one of the latest?

I think my problem here is whichever I go for I’m eventually going to need one from the opposite end for testing.
So i guess the question is do you go for the latest, getting the best performance so as not to ‘cramp your style’ on any App you make, or is it better to get an older version with less performance to make sure it will work?

4. Device/Generation support
There appears to be far more versions/generations than I expected, would you really target them all?
Where would you realistically put the cut-off in terms of which to support?
Is there a massive difference between the latest vs oldest you might support in terms of capabilities?

e.g

  • iPhone 4 and iPad2
  • iPhone 3G, iPad 1, iPod Touch (3rd gen?)
  • Other?

5. Gryo Accelerometer
What devices/generations offer support for accelerometer and gyro?
I assume that accelerometer is on all devices/generations, but the gyro is a later addition?
Am I right in thinking that the gyro allows you to ‘rotate’ the device, whilst the accelerometer can detect tilt in 2 axis?

I think I’d like access to both, which would suggest getting a newer model.

6. Software SDK
Is there a minimum xcode, sdk I need to use?
Are there any problems with using the latest xcode/sdk?

Little worried as iOS 5 has been released, whether I’ll be forced to use xcode/sdk that supports it and then find its incompatible with Unity or something? Is there a recommended sdk version to go with for now?

7. What is the minimum OSX version for development of Apps?

I have 10.5 (Leopard I think?) will that work, or will I need to upgrade to snow leopard/Lion?

Thanks for any input.

If you are planning to cover pretty much every possible combination, I would suggest that you buy those:
1. iPod Touch 1st generation
This is probably the cheapest way to get a device for iOS programming, alternatively you can use the iPhone of course, but the iPod is less expensive. It is also the absolute least powerful iOS device (after the iPhone 1st gen), which means, that every app that can run on this device, pretty much runs on all of them.

2. iPod Touch 4th generation
I would buy this, to cover also the Retina Display, OpenGL ES 2.0 and Gyro Devices. The 3rd and 4th generation have pretty much the same graphics processor, only difference is that the 4th gen uses a much bigger resolution, which means that it is, again, the weakest device for this. If it can run on the 4th generation it will also run on the 3rd.

3. iPad 1st generation
With this you also cover the iPad fraction. If it can run on the iPad 1 it will also run on the iPad 2 and so on.

As for your old vs. current question:
Apple abandoned the 1st and 2nd gen devices a long time ago. If you have a game or app, which isnt really too expensive, as the performance goes, I would recommend you targeting the older devices as well, since people still are using them. But if optimizing the game for those type of devices, is too much work or would limit the overall quality, I would settle for 3rd generation and above, since these are the devices which support OpenGL ES 2.0 and are generally a lot more powerful.

The Gyroscope was introduced in the 4th generation as well as the iPad 2.

Thanks for the reply, good information.

My only issue would be getting an iPad1. I know what you says makes sense, but if i’m spending that amount of money (not check second hand yet) i’d kinda rather spend more and get iPad2, only because i’m obviously going to try and ‘use’ whatever I buy, not just stick it in a drawer for testing. Can’t help thinking i’d be disappointed with iPad1, but again you’re spot on in terms of using it to gauge performance.

Sigh, decisions, decisions :wink:

I do wonder if knowing my interest in pushing limits and using the latest tech whether it would be viable to simply develop for the latest gen, well 4th Gen anyway. I hear its a bit difficult to ‘limit’ downloads to specific devices/generations, so there is the danger that it will be viewed on inferior hardware and suffer as a result.

The 4th generation iTouch and the iPad have basically the same specifications, since they both run on the A4 Chip. So you could steer around the iPad 2 problem.
If an application runs on both the iPad 2 and 4th generation iOS devices, it most certainly will also work on an iPad 1.
Heck you can even ditch the iPad completely, since again the hardware is almost identical to the 4th generation. The only thing that makes the iPad special in that regard is its resolution. But in Unity you can test that thoroughly in the editor. So if you want to save money, just pass the iPad completely or buy the iPad 2 since you want it to be used as more than a simple debugging device.

I can’t imagine anyone being disappointed by an iPad (of any generation). Everyone I know loves it. My wife uses ours every day, to the point that I have to ask when I want to use it even though I bought it for us and not her specifically :wink: I’ve been considering selling her MacBook since she hasn’t used it once post-iPad purchase :smile:

1. iPod Touch 1st Generation is probably not worth it (although I guess its cheap). These are end of life and not even supported by the latest XCode (its armv7 only, so second gen devices aren’t supported either). You are likely to give yourself more problems than its worth trying to get stuff to run on it.

I’d say if you had to get only one device get an iPhone 3GS. Although I’d strongly recommend getting at least two devices, 4g Touch + 3GS if you are aiming for higher end games, or 4G iPhone + 2nd gen touch if you are aiming for biggest market penetration (you mentioned “clients” so this is probably the best option).

Don’t forget you can always develop on your own devices and test on friends/colleagues devices.

ipod touch 3rd gen (3gs hardware with half the memory), and ignore 2nd gen completely. Which means for games, don’t go over 64 meg of memory or you could get your app quitted by the springboard. For 2nd gen thats as low as 20 meg graphics.

This is very useful. On a similar note, what type of Mac do I need to use Unity iPhone? I’m thinking of purchasing a used one as I would only use the Mac for app development. What’s the lowest end model I could get by with?

Thanks everyone for your replies, all very useful information.

Good point. Out of interest then, does the install process (putting your app on a device) require any additional software on the device or having to change it in anyway? I do have a number of friends with iOS devices that I’m sure would be happy to allow me to test on, as long as the process doesn’t involve installing some SDK or license onto their device.

Anything intel with a genuine GPU (not onboard intel crap) so that you’re not limited by occlusion culling not working on it. If you’re not using unity pro then any intel mac works.