Wireless Development Tools
You can lay out and test an interface design in the presentation mode of PowerPoint, and on Apple computers with HyperCard and SuperCard. However, there are special third-party wireless development and design tools available and coming to market. Wireless handheld and handset companies like computer companies offer an SDK. They sometimes include it in an integrated development environment (IDE). These tools let you write applications, call operating system functions, and round out the software development production process. Every successful handset and handheld maker offers an SDK and support program, usually with the cooperation of a software tools company like Microsoft or Metroworks. Many devices, like those of the Symbian family, can be programmed in multiple programming languages. But not all runtime programs you make will work within the popular operating system. For example, although you can program a Linux application for a popular handheld, your end user may not want to install Linux because it takes some programming skill. It will also kill any of the other PocketPC applications.
Today's popular wireless programming languages are C, C++, and Java. Writing code on an SDK must be tested on the target device. To speed this up, the SDK provides emulators that simulate the device on a PC. Many emulators let you debug the device memory model from the PC as well. Within the operating system of the wireless device are libraries of code with special application programming interfaces (APIs), the most obviously unique being the phone call interfaces for the telephone. Well thought-out handheld devices offer libraries that include communications, data handling, and synchronization. They provide a mobile interface and mobile components, and some define a high-level application control. The most advanced tools are Rapid Application Development (RAD) tools, which can save weeks of time. If the manufacturer does not have a RAD tool, check the third-party tools. We will look at many of the best tools in the next chapters.
Foundation tools are sometimes required. And you need good engineers to build them. Foundation tools are core pieces of software that let you produce other parts of the system and end up helping to make the entire wireless system work. This may mean having to write modules of code for your device, which could include memory managers, XML parsers, display components, Bluetooth drivers, mapping modelers, and record synchronization subsystems. It could also mean having to build special system tools. For example, for your application to deliver wireless content, you may need tools for the content experts. These back-office tools help collect source information, "clean up" odd pieces of data, and maintain the integrity of the content. It is worth pausing to consider if they are necessary. They do take time to build, however, they often improve the quality of content or save time when the system is deployed. Of course, you can spare engineers the task of inventing tools by checking on commercial as well as Open Source suppliers. You can often download trial versions of tools. Then you can determine if they are good enough or if engineering needs to go the extra mile to create special quality tools.