Device Limitations You Should Know for iOS App Development

By Neal Goldstein, Dave Wilson

Along with all the amazing features, the iPhone, and even the iPad, have some limitations. The key to successful iOS app development — and to not making yourself too crazy — is to understand those limitations, live and program within them, and even learn to love them. (It can be done. Honest.) These constraints help you understand the kinds of apps that are right for this device.

Often, it’s likely that if you can’t do something (easily, anyway) because of device limitations, maybe you shouldn’t.

  • Users have fat fingers. You may think that the iPad’s larger display makes that relatively easy to deal with, but keep in mind that you may want to design a multiuser app for the iPad that takes into account multiple fingers. (Anyone for a nice game of Touch Hockey?)

  • Memory and battery power are limited. This limitation may or may not be a decisive factor, depending on what kind of app you want to create, but smaller apps generally perform better.

Design for fingers

Although the Multi-Touch interface is a feature of the iPad, iPhone, and iPod touch, it brings with it some limitations.

First of all, fingers aren’t as precise as a mouse pointer, which makes some operations even more difficult on an iPhone or iPod touch than on an iPad (text selection, for example). Still, due to fat fingers, user-interface elements need to be large enough and spaced far enough apart so that users’ fingers can find their way around the interface comfortably.

Apple recommends that anything a user has to select or manipulate with a finger be a minimum of 44 x 44 points in size.

Because it’s much easier to make a mistake using fingers, you also need to ensure that you implement a robust — yet unobtrusive — Undo mechanism. You don’t want to have your users confirm every action, but on the other hand, you don’t want your app to let anybody mistakenly delete a page without asking, “Are you sure this is what you really want to do?” Lost work is worse than tediousness.

Balancing memory and battery life

As an app designer, you have several balancing acts to keep in mind:

  • Limited memory: When compared to the original Macintosh’s standards, the computer power and amount of memory on the iPad may seem significant … but that is so yesterday. No ifs, ands, or buts; the computer power and amount of memory on the iPhone and iPad are limited. But this is an issue much more with older devices. The newer iPhones and iPads do have fairly large amounts of memory.

    However, as experienced developers know, the actual amount of memory is pretty much irrelevant: there is never enough for you to relax.

  • Limited battery power: Access to the Internet can mitigate the device’s power and memory limitations by storing data and (sometimes) offloading processing to a server, but those Internet operations eat up the battery faster.

    Although it’s true that the iOS power-management system conserves power by shutting down any hardware features that aren’t currently being used, a developer must manage the trade-off between all those busy features and a shorter battery life. Any app that takes advantage of Internet access, core location, and the accelerometer is going to eat up the batteries.

As with memory, there is never enough power that you can afford not to think about it.

iOS devices are particularly unforgiving when it comes to memory usage. If you run out of memory, in order to prevent corruption of other apps and memory, the system will simply shut down your app.