This second article in a two-part introduction presents the mobile platform options currently available on the market.
Bryan Morgan is the founder and managing editor of the Wireless Developer Network (http://www.wirelessdevnet.com). He is a regular contributor to InformIT on wireless application development topics.
The previous article in this series addressed the basics of wireless application development, specifically the difference between wireless and mobile apps, communications options, and some of the unique issues that must be addressed in the development process. This article delves a bit deeper, concluding our gentle introduction to the wireless world—from here on out, we'll tackle real development issues using tools/technologies such as Java 2 Micro Edition, WAP, PalmOS, Windows CE, Symbian, VoiceXML, and SMS. But let's not get ahead of ourselves! First I'd like to take the time to present the basics of these technologies. I'll strive to point out the pros and cons of each, in hopes of equipping you with the proper tools to make a good evaluation of the competing technologies.
In general, when the term mobile computing is mentioned, most people immediately think of a Personal Digital Assistant (PDA). The Apple Newton was the first popular device in this category, but the market share is currently dominated by four major players: Palm, Handspring, Microsoft, and Symbian. Palm and Handspring (and other devices from companies such as Sony) run the PalmOS, so I'll lump them together in the same category for the purposes of this discussion. Microsoft backs the Windows CE operating system (WinCE for short); several traditional PC manufacturers (such as Hewlett-Packard and Compaq) also make "Pocket PC" devices that run the WinCE operating system. Symbian was established by Ericsson, Motorola, Nokia, Psion, and Matsushita in order to develop a mass market for wireless information devices. All of these devices can operate in a "disconnected" fashion (that is, no communications capabilities). Data accumulated on the device can be synchronized with a server application through the construction of "conduits" installed on the desktop or on an enterprise server.
The PalmOS currently holds a commanding lead in the marketplace, primarily because of the principles behind its design: It doesn't try to do everything, but what it does, it does very well. The PalmOS includes a number of useful utilities as well as features such as API support for device database access, networking, and graphics. Most professional PalmOS applications are written in C, using tools such as Metrowerks' Code Warrior, but many enterprise applications are built using tools such as Aether Software's ScoutWeb, the @Hand Software Platform, and Pumatech's Satellite Forms. Palm devices are also a favorite of corporate IT shops, so it's likely that your first mobile app will be targeted for this platform. Its primary drawbacks are that it's not a multitasking OS, and the hardware it runs on is traditionally underpowered when compared to that of its competitors (WinCE and Symbian). If you want multimedia capabilities or sophisticated number-crunching power, you should probably look elsewhere.
Microsoft Windows CE is currently in its third major version and supports many of the same features as the PalmOS (handwriting recognition, a suite of standard applications, synchronization with desktop/enterprise databases, and so on). Windows developers will be pleased to know that Microsoft makes WinCE versions of the most popular developer tools for this platform, namely Visual C++ and Visual Basic. Windows CE also supports COM and (limited) ADO database access; so, for the seasoned Windows developer, this platform offers a small learning curve. Windows CE devices support multimedia playback and in the future will even include a mobile version of Microsoft's SQL Server database, making data syncing tasks a snap (we assume). Unfortunately, with this extra power comes a tradeoff in battery life. Many users also complain that the WinCE user interface is nonintuitive, so be sure to do some user testing before choosing this platform.
The Symbian platform (formerly known as EPOC) is, technically speaking, the most advanced and most promising of the three mentioned here. C++, Java, WAP, and Web development are natively supported on the platform, which runs on ARM-architecture processors. While the Symbian platform is promising, until devices are readily available it's difficult to forecast how successful it will be in the coming months and years.