Local First Data

With a local database on the phone (something JSON-based might be preferable to Core Data or SQLite since it's 2014) it can be as simple as asking a model object to save itself. Whether the phone is in airplane mode, or on an oversubscribed 3G connection, or connected to high performance WiFi, the user will never see a difference in responsiveness.

Now if only there was a way to get the performance and reliability of local first data, without giving up the good parts of the cloud. With a sync capable local database, changes can be automatically synced to the cloud, without you writing a ton of network code. This can radically simplify mobile client applications, but the edge is only half the story. When the data arrives at the cloud something needs to decide if the changes are valid or if they should be rejected. The cloud is also responsible for deciding who can see what.