Considerations for handheld development

来源:互联网 发布:买火车票软件 编辑:程序博客网 时间:2024/04/29 03:34

Considerations for handheld development

        When developing software for a handheld computer, you need to take into consideration a variety of things that can be largely bypassed in desktop development. Some of the main issues are the user interface and the rather limited permanent storage space. These two things will probably have the largest influence on the development process, but there are other factors to consider as well. The available memory and processing power sets its limits, as well as the fact that the device is most likely battery operated, so low-power considerations come into play as well. The developer should strive to find a proper balance between these issues when designing the software.
        In most cases, the user interface is the part that needs most consideration. Since the screen size on handheld devices is rather small, and often has different proportions than a conventional computer screen, and the input devices are usually limited to a trackpad-button combination and/or a stylus or a touch screen, care must be taken to provide the necessary functionality. These input devices are not as precise as a mouse or a drawing tablet, nor do they have the same functionality (e.g. multiple mouse buttons) so the user interface must be clear and uncluttered to remain user friendly. Although some handhelds might provide the user with more advanced input devices, the user interface should still, in the name of portability, be designed in a way that allows it to be used with less capable devices. It is recommendable to design the applications with the stylus/touch screen user in mind, and use the “advanced” input features to provide menu shortcuts or other similar functionality.
        The fact that the available storage space is rather limited has some implications on the applications as well. Applications should avoid permanently storing data on the device unless specifically requested. An email application, for example, should not automatically download and store all messages from the mail server, but e.g. instead only retrieving the headers and presenting the user with the subjects of the messages, which could then be downloaded and stored on demand. This also means that applications should account for the fact that some data might not always be available, but is instead stored on some remote location, e.g. a desktop computer. In this case, the application should alert the user to this, and perhaps suggest its retrieval.
The available memory and processing power sets of course its own limitations on the applications. Because handhelds are quite limited in their processing capacity, the applications should be designed with this in mind. This means that some resource hungry applications are not very suitable for these platforms. Instead, the design should focus on “lean and mean” personal utilities, which are much better suited for handheld computers. If the design absolutely calls for processor intensive calculations, the developer should consider doing these calculations remotely on a more powerful computer. The handheld device would in this scenario function as a device for gathering data and then presenting the results of the processing. In delegating the more resource needing parts of applications to remote servers, the handheld device can focus on tasks that it is better suited for.
        Limited battery power is also something that differs handhelds from their desktop counterparts, but this is usually something that the application developer does not need to consider. The power management is done at system level, and should be transparent to the applications. Of course, the use of unnecessary CPU cycles (busy waiting, superfluous eye-candy, etc.) should be avoided. Also, applications should react properly to a low power situation (if the underlying system provides a way to warn the applications of this) by saving open files and writing their data to the permanent storage. Other than this, there is not much else that can be done from a power management perspective.