Summary Mobile devices differ significantly from desktop computers and laptops. Because of this, applications for mobile devices differ from desktop applications in significant ways. Desktop applications tend to get used in long sessions, and great desktop applications offer the user an exploratory environment for the information they work with. Mobile device applications tend to be used in short spurts, frequently, but for short session durations. Because of this, great mobile device applications offer a focused and efficient experience for accomplishing specific tasks rather than a general exploratory environment.Quick startup time, responsiveness, and focused purpose are the hallmarks of good mobile application design. All these things amount to a highly productive user experience when using mobile devices. Keep these goals in mind when designing, building, and testing your mobile device application.Architecturally, mobile devices differ from desktop and laptop computers in that most mobile devices do not have a hard drive and often use the available RAM for both program execution and file storage. Increasingly, mobile devices can use flash memory for long-term file storage. Flash offers good long-term storage capability but is typically not used as an extension of program RAM the way desktop computers offer a disk-based paging file for virtual RAM extension. This means that efficient memory management is more important for mobile devices than it is for desktops because execution RAM is a more limited resource.With regard to the need for reliability, mobile devices have more in common with servers than they do with desktop computers. Like servers, the available RAM drives the overall performance of the system, and devices are often left on for weeks or months at a time without rebooting unless the user detects that things have gone drastically wrong. Ensuring that your applications efficiently manage their resources and particularly that they do not leak memory will have a significant impact on the overall performance of the device and the satisfaction of end users. Managed-code run-time environments can be a great aid in this effort.A useful metaphor is to think of personal computers as being analogous to big houses in the countryside with lots of available storage space. Mobile devices are analogous to apartments in a metropolis, small and efficient. Both can offer comfortable living environments with their own advantages, but to live effectively accommodations must be made to meet the physical realities of the space available. |