Developing Mobile Software for the Pocket PC
Michael B. Hamsa Technical Director GeoSpatial Innovations, Inc. 2307 London Lane Cedar Park, TX 78613 Telephone: (512) 635-7873 Fax: (512) 219-5898 Email: mhamsa@gsiworks.com Abstract In today’s world, Geospatial Information Systems are becoming more mainstream, providing spatially enabled data to different people in the utility organization. IT departments are faced with the ongoing problem of trying to produce GIS based applications that are suited for desktop use as well as field use with varying types of computer based clients. Development of multi-tiered and distributed applications is causing IT costs to skyrocket and development timelines to run longer than estimated. Initial baselines for application requirements, post-development maintenance, and special customizations are usually never fully realized. With technology changing almost daily, applications conceived as three-tiered clientserver are required to support web environments before the original development plan is complete. By spending the proper amount of time up front, these applications can provide core services that will support both desktop and distributed browser based clients. Interface based programming and component design, along with transactional programming, is making this kind of multi-use development a reality. By properly partitioning the design of the application, multiple types of clients can access the same data without doubling the development effort. As always, detailed knowledge of the technology, as well as the application being designed, is a necessity to provide efficient development timelines. Say Hello to Windows CE and the Pocket PC Windows CE is one of the newest operating system initiatives from Microsoft developed to compete directly with the Palm OS and has been gaining ground very quickly over the past year. Microsoft has taken great steps with its latest version of this operating system to make sure it fits into the corporate enterprise easily and efficiently, looking at everything from networking to applications. Usability groups have been formed using a wide variety of user settings to gain valuable input into the upcoming releases of the operating system. The Windows CE family of operating systems has five basic flavors: Pocket PC, Palm PC, Handheld PC, Mobile Phone, and the Automotive PC. Each variety has the same basic core, but adapts to different hardware that may be available in each application. The Pocket PC has come to the forefront because of its size and flexibility and is in use by many organizations across the world. The Pocket PC is a device about 5.5 inches tall by 3 inches wide and a little more than 0.5 inches thick. It weighs about 6 ounces and is a little bigger than comparably equipped Palm OS device. These devices normally come with a color LCD screen that is 240 x 320 pixels in size. The latest devices from Compaq and HP come with 64 mb of memory and 206 mHZ Intel processors. Mobile devices have been rapidly advancing and it is becoming apparent that users want the flexibility provided by applications that can be taken into the field. Up until this point, the solution to a complete mobile application was to package it in such a way that it could be used in the field on a laptop. The evolution on the Pocket PC and Windows CE has made it possible to use relativity small handheld devices in the field with the ease and performance of a larger more expensive laptop computer. The Pocket PC Development Environment The fact that Windows CE and the Pocket PC have moved past the Palm devices in the marketplace is largely based in the development environment. Microsoft has a history of making it easy for developers to design and develop applications for the operating systems and this has led to their dominance. Microsoft development tools such as Visual C++ and Visual Basic can be used to write applications for this operating system and developers around the world have started turning out products. Developers trained with either of these tools can easily use them to rapidly develop custom applications that can be used by enterprises and organizations to enhance productivity in the workplace. One of the first issues to consider when beginning development of an application for the Pocket PC is the size of the screen. At 320x240 pixels, it is much smaller than a 15 or 17 inch monitor, yet still required to present the same basic application information to the user as its larger counterpart. The basic idea behind UI development for this platform is simplicity. It is important to provide all the functionality that the user expects out of the application, but it must be easy to navigate and require fewer responses. ![]() Since a keyboard is normally not available, users begin to rely on a few new input methods for supplying data to the application. The first basic input method is simply tapping on the screen in response to questions. The second, more complete form of input is the Soft Input Panel (SIP). The SIP supplied with the operating system contains two forms of input - the soft keyboard, which resembles a standard keyboard, and the character recognizer, which allows the user to physically write a letter in the space provided, and then tries to determine which letter was written. Both of these SIP methods can be used to provide text for entry fields on user interfaces. Custom SIPs can be developed by third parties to provide alternate forms of input for the application, but normally these two methods are sufficient. ![]() Since screen space is very important, Microsoft has added a new class to MFC specifically for Windows CE / Pocket PC development that combines the standard menu bar and tool bar into a single Command Bar. Combining these two components saves valuable real estate and leaves more space for other important application information. ![]() As in most application design and development, what gets presented to the user is very important and should be planned thoroughly. Now that the application has to be presented to the user on a much smaller level, even more consideration should be taken. The Pocket PC environment is robust enough at this point to provide very functional applications to users and an aesthetically simple User Interface will make the difference between happy users and unwilling users. Synchronizing Data with the Desktop Windows CE and the Pocket PC provide a lot of database functionality with versions of Access and SQL Server available for developers. Microsoft has made ActiveX Data Object (ADO) available to developers and these programming components allow database enabled applications to be developed very rapidly. Storing data in a database on the Pocket PC isn’t as much an issue as getting data off of the Pocket PC and back into the enterprise. To address this problem, there are a couple of different ways data in a database can be replicated with a computer or server in the corporate network. Using a product called ActiveSync, (delivered with every Pocket PC) an Access database can be easily setup for replication between the Pocket PC and a computer or laptop. Replication occurs bi-directionally, in that data modified on the computer or laptop moves to the Pocket PC and data modified or added on the Pocket PC moves to the computer or laptop. This built-in functionality provided out-of-the-box allows very powerful applications to be developed quickly and easily. Developing with GIS and GPS in Mind When working with energy organizations, GIS and GPS enabled applications come to the top of the list very quickly. Enabling field users with GPS and GIS tools on a lightweight mobile device is a goal of every IT department and a number one item on every user’s wish list. Obviously, a fully featured multi-user GIS application isn’t really a possibility in the field, but it probably isn’t required either. More than likely, users need view, update, delete, and add capability in the field and aren’t really going to be using the same complex data maintenance applications that are used in the office. Web (or wireless) based applications are a solution, but wireless connectivity isn’t always available in specific areas, so the only real viable solution in this case is a stand-alone application that can provide users with the required functionality. Several GIS vendors have already provided mobile Pocket PC-based tools that can be used in the field. GPS services are also becoming available on these miniaturized devices and the development tools are also offered for integrating these services into custom applications easily and efficiently. Using a GPS receiver in combination with a Pocket PC allows an application to make accurate positional calculations and use this type of data in a variety of ways. Determining the distance from the current location to a device in the field, or plotting the best course between the current location and another location becomes a reality when GPS is combined with GIS. Simplicity and Functionality The key to developing applications for the Pocket PC is to remember that simplicity is a mobile user’s best friend. Providing a fully functional application that is difficult to use, even in the best conditions, is more of a nuisance to the mobile user then an assistance. Keeping the user’s environment in mind when designing the application is very important and should be taken into consideration when planning how things will fit together. Working in adverse conditions outdoors, high light or heat, windy or cloudy weather, all impact the user’s appreciation for the ease in which he or she interacts with the application. If a user struggles to complete tasks or has trouble entering data, then the experience will not be good and the user will be unhappy. | ||
|
|