Daniel Pfeiffer: Offline is Not a Special Case
"More than ever, apps exist beyond the bounds of the device. Apps have server-side infrastructure, social components, and other features requiring the device to have an Internet connection. Unfortunately, our reality is that although our devices are always with us, the Internet is not. Even in areas where we have a connection, the network may be so burdened that any sort of meaningful communication is impossible.
Understanding this reality, how should we approach developing applications that require some sort of server communication? The trick is rethinking how our apps should work offline—offline is, in fact, not a special case. To help contextualize this, we’ll go over strategies for caching responses from network requests in core data or flat files, queuing network requests until an Internet connection is available, and even tips for designing API endpoints for the most efficient interactions with mobile devices."