Some applications can reside entirely on a mobile device, with no ongoing server or personal computer data storage. This is about all the other applications. Email, games' high scores, social networking, calendar, presentations, messaging, media.
A key architecture decision that affects user experience is where to store data and application logic. Traditional web sites store both on the server only. AJAX enables a small local cache, mostly of application logic; the Gmail client does the same. Some applications, such as music players, stores a subset of the data locally, usually with access to the complete data online. Finally, many on-device applications are basically local applications with some server or desktop connection. Examples include Nokia Wallet, which stores receipts on the device only.This architecture decision impacts three key aspects of user experience:
- interaction flow, or the rhythm of user reaction and system response
- data freshness, or the confidence that the data being viewed is the most up to date data available
- data availability, or the degree to which crucial data can be accessed across a variety of situations, including airplanes and coverage holes
To best make this decision, carefully consider the needs of your users and the capabilities of the devices and platforms. A stock price application clearly values high data freshness above all; calendar users need to reliably be able to glance at calendar data ... quickly.
|Server only||Local cache||Local subset||Local|
|Data freshness||High||Mostly high||Medium||Low|
- local applications keep data safe only if the device is intact or a good backup/sync program is in place.
It might help a little bit to understand this with an abstracted visualization. I've assigned numeric values to the above tables. Note the distinct trends, but no architecture is perfect.
So what we see is that local applications excel at rapid interaction (flow) and data availability, but have a risk of low data freshness; these applications are also subject to the storage limitations of the device.
Different platforms lend themselves to different parts of the data storage spectrum. Web sites can support server and transient local. Flash and Java excel at transient local, local subset, and occasionally local only. Native applications excel at local only but can theoretically support the entire spectrum.
Widgets of various flavors are good at displaying a subset of data; the balance of the data could be local or on the server.
Note that using SMS to interact with an application is an application with server only data, and ends up with the weaknesses of both local and server applications. This is actually acceptable for certain types of application, and the asynchronous nature of communications can even enhance certain user behaviors.