An mobile device is not a desktop or laptop computer, and a mobile application is not the same as a desktop application. Although these seem merely common-sense statements, it is nonetheless paramount to keep them in mind as you embark on developing software for these devices.
Designing software for mobile devices requires a state of mind that may or may not be second nature to you. In particular, if the bulk of your experience lies in developing desktop applications, you should be aware of the significant differences between designing software for a mobile device and for a computer.
This section summarizes the concrete differences that have the highest potential impact on your design decisions. For detailed information on how to handle these and other issues in your mobile application development process.
Screen Size is Compact
The small, high-resolution screens of mobile devices make them powerful display devices that fit into users’ pockets. But that very advantage to users may be challenging to you, the developer, because it means that you must design a user interface that may be very different from those you’re accustomed to designing. Use the compact screen size as a motivation to focus the user interface on the essentials. You don’t have the room to include design elements that aren’t absolutely necessary, and crowding user interface elements makes your application unattractive and difficult to use.
Memory is Limited
Memory is a critical resource in mobile, so managing memory in your application is crucial. Because the mobile virtual memory model does not include disk swap space, you must take care to avoid allocating more memory than is available on the device. When low-memory conditions occur, mobile warns the running application and may terminate the application if the problem persists. Be sure your application is responsive to memory usage warnings and cleans up memory in a timely manner.
As you design your application, strive to reduce the application’s memory footprint by, for example, eliminating memory leaks, making resource files as small as possible, and loading resources lazily. See mobile Application Programming Guide for extensive information about how to design mobile applications that handle memory appropriately.
People See One Screen at a Time
One of the biggest differences between the mobile environment and the computer environment is the window paradigm. With the exceptions of some modal views, users see a single application screen at a time on an mobile device. mobile applications can contain as many different screens as necessary, but users access and see them sequentially, not simultaneously.
If the desktop version of your application requires users to see several windows simultaneously, you need to decide if there’s a different way users can accomplish the same task in a single screen or a sequence of screens. If not, you should focus your mobile application on a single subtask of your computer application, instead of trying to replicate a wider feature set.
People Interact with One Application at a Time
Only one application is visible in the foreground at a time. When people switch from one application to another, the previous application quits and its user interface goes away. This meant that the quitting application was immediately removed from memory. The quitting application transitions to the background, where it may or may not continue running. This feature, called multitasking, allows applications to remain in the background until they are launched again or until they are terminated.
Most applications enter a suspended state when they transition to the background. When people restart a suspended application, it can instantly resume running from the point where it quit, without having to reload its user interface.
Some applications might need to continue running in the background while users run another application in the foreground. For example, users might want an application that plays audio to continue playing even while they’re using a different application to check their calendar or handle email.
Onscreen User Help is Minimal
Mobile users don’t have the time to read through a lot of help content before they can use your application. What’s more, you don’t want to give up valuable space to display or store it. A hallmark of the design of mobile devices is ease of use, so it’s crucial that you meet users’ expectations and make the use of your application immediately obvious. There are a few things you can do to achieve this:
- Use standard controls correctly. Users are familiar with the standard controls they see in the built-in applications, so they already know how to use them in your application.
- Be sure the path through the information you present is logical and easy for users to predict. In addition, be sure to provide markers, such as back buttons, that users can use to find out where they are and how to retrace their steps.