2

I am new to iPhone/iPad development and I am close to finishing up my first app and I am looking for some general advice.

I know it is important to test on actual devices and not just the simulator. What are the types of things people generally encounter when testing on a deal device that they don't see in the simulator?

The app itself is mainly a way to track online deals and that type of thing. It doesn't need anything special in term of using things like the camera or GPS.

user1591020
  • 53
  • 1
  • 5

4 Answers4

9

It's just general usage testing. The device performs in an entirely different environment than your computer, and it's the best way to make sure if you push your app out to devices, that nothing unexpected will happen. For example, the phone/pad may have limited data coverage, low memory situations, incoming calls etc.. These situations are a lot more common on devices, then when people emulate it though the simulator.

On a hardware point of view, the device uses a different processor architecture than your Mac, which also needs to be accounted for (not as much as other cases, but you need to cover your bases). The Mac also cannot reliably emulate RAM, Disc Space, Processor Speed etc...hence testing on the device is useful here also.

Obviously there are some features you can only test on devices, such as Camera, GPS (and not so obviously iPod library usage), and if your app uses them it'd be careless not to test on a device.

Overall if you're intending to release your application to the App Store, or to devices at least, it's worth testing on the device itself. Only then can you be sure that it will act and perform as expected on the platform you intend to target. The simulator is only a simulator after all, not the real thing!

WDUK
  • 18,870
  • 3
  • 64
  • 72
  • Are there somethings you can test only on one type device and we certain it would work on all devices like disk space? Can you for example test on an IPad2 and a iPhone 4 and then do things like a resolution tests in the simulator? Or should you test on every single device out there? – user1591020 Nov 06 '12 at 19:04
  • Is it possible to get away with only on a single iPhone? – user1591020 Nov 06 '12 at 19:33
  • Properly testing incoming phone calls can only really be done on a physical phone. On the whole...it depends on how much risk you want to take. Naturally for the standalone developer, they won't have the full selection of devices available to them, so they can only test a limited subset. You'd be OK with an iPad 2 and iPhone 4, that's a decent spread. You'd be missing retina iPad, which can cause performance issues if your app is `QuartzCore` heavy. I do strongly recommend testing on at least one phone and one 'pad' device, otherwise you're completely missing a platform. – WDUK Nov 06 '12 at 19:43
  • Personally, I test on the lowest spec device I want to target, and the highest spec (for both phone and pad, minimum 4 devices), and any devices inbetween if they're lying around. Also the iPod Touch can't be forgotten about for performance testing, which primarily targets game apps. – WDUK Nov 06 '12 at 19:45
  • Fortunately our app is not too dependent on hardware and is mostly just retrieving data to display from our servers. So even testing only with low end devices I think would be fine for performance testing. – user1591020 Nov 06 '12 at 20:18
1

First of all: the user experience is very different.

The mouse based interaction is very different from a touch interaction. focusing at a monitor feels very different then looking on a device on the palm of your hand.

Also the experience of animations running on the simulator and the real device can be very different.

And the usage in the simulator won't tell you anything about the battery consumptions to be witnessed on the real device.

My opinion: every app that will be shipped to the App Store or customer for testing should be tested several different real devices. No excuses.

vikingosegundo
  • 52,040
  • 14
  • 137
  • 178
0
  • Simulator runs a lot slower than the real device.
  • Real device could run out of memory when Simulator doesn't or vice versa.
SurvivalMachine
  • 7,946
  • 15
  • 57
  • 87
0
  • In app purchases, if you have included them
  • Orientations (not that they are unavailable on simulator, but it is easy to forget it there!)
  • App life cycle testing - bringing your app to foreground and background.
  • Network access - can matter when you access the network from device through wireless or cellular network vs LAN/wifi on your mac. There is a huge testing to be done under the umbrella called Reachability if your app uses any of the resources across the net. You are bound to provide an alert if network is unreachable before using any such resources, as per app store requirements.
Nirav Bhatt
  • 6,940
  • 5
  • 45
  • 89