Chapter 17: Going Offline
The iPhone can connect to the Internet from nearly anywhere. Most iOS apps use this capability, which makes it one of the best Internet-powered devices ever made. However, because it’s constantly on the move, connectivity, reception, or both can be poor. This poses a problem for iOS developers, who should ensure that their apps’ perceived response time remains more or less constant, as though the complete content were available locally. You do this by caching your data locally. Caching data means saving it temporarily so that it can be accessed faster than making a round trip to the server.
This chapter shows you the caching techniques you could use for solving the problem of slow performance caused when connectivity is poor or unavailable. As you saw in Chapter 10, Internet-connected apps fall into two major categories. In the first category are apps that behave like a front end to an online web service, and in this chapter you begin by designing a caching subsystem for the web service-based app you developed in Chapter 10 (the iHotel app). The second category of apps synchronizes user-generated content with a remote server. In iOS 5, Apple introduced a new cloud platform for syncing data across all Apple devices the user owns, and later in this chapter you look at different ways of syncing users’ data across their devices through the new iCloud service.
Reasons for Going Offline
The main reason why your app might need to work offline is to improve ...