views:

189

answers:

3

I've tested my app thoroughly on the simulator, but I don't have an iphone/ipad/ipod touch on which to test the app. Are there likely to be bugs that dont expose themselves until I test it on the device?

if i had a macbook, id take my code along with me and meet up with a friend or a stranger to test the app, but im working with a mac mini :(

Thanks for the input.

+5  A: 

The one major concern is performance. Devices, especially older ones, have orders of magnitude worse performance than Mac mini, both in terms of CPU and memory. It is possible that your app is crazy slow on a device, yet runs fine in simulator.

Other areas to think about:

  • network connectivity, performance in poor/no network conditions (good way to test in simulator: yank out ethernet/turn off airport... but some reachability code works differently in device and simulator I think, and you cannot simulate mobile-only [no wifi] situation)

As Rengers said, you should get your friends' device IDs and then create a provisioning profile so they can run the test version of your app which you can e.g just zip up and email to them.

Jaanus
Major +1 for performance. The iPhone Simulator doesn't simulate the device's CPU speed at all - it runs as fast as the computer hosting it will tolerate.
ceejayoz
Absolutely @ceejayoz. And not only might you find that your performance is unacceptably slow on the real device, you can also find bugs that you weren't able to cause on the simulator BECAUSE the device is so much slower. Eg, delegate calls returning to deallocated objects. Often on the sim, the process that calls its delegate is to fast for you to get in there and back out of that viewcontroller, for instance. On the device, though, that's an easy error to catch.
Dan Ray
+4  A: 

Yes, there are bugs that will only show on the device. It depends on the complexity of your app. For a fairly simple application, chances a bug will show up on the device only will be a little lower.

However, I strongly recommend to test on the device. Bugs aside, you can't get a good measure of performance on the simulator. A real devices has much tighter ram and cpu constraints.

If you have a developers account, afaik you can distribute apps to testers. Perhaps someone else with an 'iDevice' is willing to test for you?

Rengers
+4  A: 

You will really want to pick up a device, an iPod Touch isn't that expensive, and you can even get iPhone 3GSs for less than $100 now at some retailers (contract required). The reason for this is that there have been many cases of the simulator doing one thing while a device does another, in addition to the resource differences (both in terms of available cpu time and memory)

jer
The only reason I havent already picked up an iphone is that im in the middle of a contract with verizon and i cant afford to spend more money that necessary. i think my best option is to get an ipod touch. will this be sufficient for testing?
culov
iPod touch is fine for testing performance. Different generations have different performance and all of them are comparable with some iPhone generation.
Jaanus
Agreed. As I elaborate on in this response to a similar question: http://stackoverflow.com/questions/3116766/macbook-and-iphone-development-advice-needed/3118004#3118004 never, never submit an application or even an update to an application without testing on a device. Ignoring performance differences, you interact with a touch-based handheld differently than a mouse-based desktop, and something that looks good on a screen may not work at all on a smaller portable display.
Brad Larson
Of course, if your app uses the camera, you really want an iPhone for testing.
tc.