Chapter 8. Progressive Enhancement

Mobile devices are used in highly variable situations. Users are often outside the controlled, predictable confines of home or office, and they often have spotty or no access to networks. The basic operation of the iPhone doesn’t require any network access (save for the telephony functionality), and custom applications should attempt to provide value in the absence of connectivity.

The term for developing baseline functionality with few external requirements and enabling additional functionality in more supportive contexts is progressive enhancement. The key topics or functional areas for using progressive enhancement on the iPhone are:

  • Network connectivity

  • Location awareness

  • Accelerometer support

  • Rotation support

  • Audio support

  • Vibration support

You will notice that some topics are related to communication while others focus on interaction. The general rule for connectivity is to require the bare minimum and provide additional features as conditions allow. For interactivity, it’s best to assume the most chaotic environment for use and provide additional options for users who can interact with multiple fingers or both hands, or with the stability to use the accelerometer for physical gestures.

Use cases can help find functionality that you can shift from requirements to enhancements. You should define several use cases, with special consideration of the environments in which the user will interact with the application and with the device. Will the ...

Get Programming the iPhone User Experience now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.