Important Characteristics of Mobile Applications
This chapter has spent a fair amount of time and space comparing and contrasting mobile devices and their applications with their desktop and server counterparts. It is now appropriate to specifically list the things that define great mobile applications.
Startup Time
Quick startup time is an important characteristic of mobile applications. Because users tend to use mobile devices frequently and for short durations, the ability to quickly start up a mobile application is imperative. It may be undesirable to sit at a desk staring at a word processor, encyclopedia, or development tool splash screen for 6 seconds as it starts up, but this is a minor annoyance compared to the overall time you will spend using the application. For a mobile device application that the user wants to use for 20 seconds to check or update some small piece of information, 6 seconds is an outrageously long time to wait. A good rule of thumb is that the user's session time with an application must be much longer than any startup time he or she endures. Desktop applications have long session times, so users are willing to suffer larger startup times. Mobile applications have short session times, so proportionately shorter startup times are required. Startup time is important for desktop applications, but it is critical for mobile devices because people use them intermittently and for short durations.
Responsiveness
A mobile device looks like a small mechanical tool that fits in your pocket, and people expect it to behave that way. When people tap it, push a button, or do anything physical to it, they expect a physical response. If they do not get an immediate response, they will become impatient and try again. This can cause problems when the second tap, click, or poke is processed by your application or another application that errantly gets the second click. Therefore, it is of utmost importance that users receive some type of acknowledgment immediately upon performing an action on a device. The best kind of acknowledgment is the completion of the requested action; nothing tops that. The second best response is an acknowledgment that the request has been received and is being processed in the background, leaving the application ready to take another request. The third best response is to acknowledge the request and show something like a wait cursor to let users know their request is being worked on; the application is not responsive, but users receive some indication that work has been initiated and is being done on their behalf. The worst response is to do nothing and leave users wondering whether their action was registered. As with some other characteristics we will explore, this requirement is not unique to mobile devices, but it does have a special relevance because of the way people work with devices and expect them to work for them.
Focused Purpose
Focused purpose is another characteristic of a successful mobile application. The application must have a clearly defined set of things it does very well; it must do them with a minimum number of clicks, taps, or other user gestures; and it must do them quickly. The importance to mobile devices of focused purpose is often exemplified by having special buttons on the devices that are assigned to specific tasks (for example, a button to jump right to the stored contacts database, a button to view schedules, or a button to read in a bar code number and send it to a specific application). Your mobile application should strive to identify which common tasks it is going to make as easy as absolutely possible. This is true for high-level application features as well as low-level tasks that are commonly performed by users working with your application. If your mobile application needs to enable users to enter dates quickly, for example, make sure that choosing dates is as easy (and quick) as possible and measure the effectiveness of this process. If your mobile application needs to enable users to choose locations on regional street maps to give them directions on how to get somewhere, make sure the user's experience in doing this is as quick as possible. A common error in building mobile applications it to write as little code as possible with the intention of keeping the application as small as possible. This is a noble goal but should not be done at the expense of user productivity. Spend the time to write the extra code to make sure your application has a focused purpose and enables users to achieve their goals as quickly as possible.
Customized Interactions with Off-Device Information Sources
It is important to understand that building a great mobile application is not just a matter of getting the code that runs on the device right. Thought must also be given to the off-device software that the mobile application interacts with. Information sources that expose services to mobile devices should be given proper consideration in the application's design to ensure that they are returning information in a way that is appropriate for mobile devices. A good example of this is e-mail services for mobile devices. Rich e-mail applications require server- and client-side software. The client accesses the server to get information about incoming messages and then downloads the relevant content to the local devices. Because mobile devices tend to utilize network connections that are intermittent in availability, lower bandwidth, and often more expensive than those personal computers use, the e-mail server services for mobile devices should be tailored to meet these constraints. This typically means providing server facilities to limit the size of content being downloaded or specifying filters to identify the information that is truly useful to a mobile user. A server-side service originally designed for desktop access may need to be extended to effectively support mobile scenarios. In addition, configuration mechanisms must be designed to run on servers, desktops, or the mobile devices themselves that enable users to specify their information needs and tune the information filters to suit their requirements. Design for mobile applications often extends well beyond the physical boundaries of the devices themselves.
Consistency of Experience
Because mobile devices are compact and self-contained, users naturally view the whole device as a single unified experience. Each mobile device has its own gestalt. Typically, successful mobile applications do not appear so much as discrete applications but rather as natural feature extensions of the mobile device's experience. For this reason, following style guidelines for each specific device you are building mobile applications for is important. How a user starts, stops, navigates through the features of a mobile device, and answers common prompts are very specific and learned behaviors unique to the target device. Users adapt unconsciously to a mobile device's user interface metaphors, and deviations from these patterns become very uncomfortable. Consistency of experience is important for desktop applications as well, but because desktop applications offer such rich experiences there are often multiple ways to accomplish a given task (such as keystrokes, mouse clicks, menus, and toolbars). For mobile applications, there is often only one way to accomplish a given task, and the user gets implicitly trained on how to do this. It is far better to have four different versions of your device application, each tuned to the user interface metaphors of specific devices, than it is to have one general application that does not integrate well into any of the target devices. |