A Survey of Wireless Options for Palm Developers
Much has been made of late regarding "converged" devices, which combine a PDA with a cellular phone in single handheld device. So called "smartphones" are being rolled out in increasing numbers by both PDA manufacturers and traditional handset manufactures. Thus far, Palm OS devices have earned an early lead because of their form factor, usability, and availability. After a rough start with the original Qualcomm entry into this device category, several appealing next-generation devices have been produced from Kyocera, Handspring, and Samsung. They each represent different takes on the balancing act between a cell phone with PDA and a PDA with a cell phone.
Along with providing traditional voice capabilities, these cell phone hybrids also offer data connection capabilities through the various cellular networks. They are typically bundled with messaging functions, e-mail, and a Web browser.
As with wireless data networks, once you are connected, the transmission speed is extremely slow, and connections are frequently dropped. Thus wireless data through a PDA phone is more suited for messaging and short bursts of information (such as printing or fax) than it is for longer duration activities such as e-mail or hot-sync.
As with all of these technologies, no doubt the implementation and form factor will improve over time, so the predictions of all PDA's containing a phone component may in fact someday come true!
The Developer's Perspective
The Palm OS developer faces two challenges when faced with a requirement for wireless functionality. The first is choosing an appropriate target platform, including a device, peripherals, access point, and carrier (depending on the type). Note that if your application can function across multiple platforms (for example an e-mail client), you might need to account for a rather large list of compatible equipment.
One of the purposes of the previous section was to give you a sense of these targets, and help you evaluate the pros and cons of each as they relate to your requirements.
The second challenge is in choosing and learning the appropriate developer tools and information required to work on your chosen platform(s). This section matches the platforms with the available Palm OS APIs.
TCP/IP is the most pervasive development option for Palm programmers in the wireless world. With the exception of infrared, all of the aforementioned communications scenarios can support the use of TCP/IP through the Net Library services offered by the Palm SDK.
Using Net Library is advantageous because it does offer the largest range of target environments, and also because it is so familiar across platforms. Socket-based programming is a worldwide standard, and networking code can be ported rather easily from UNIX to Windows to Palm.
Use TCP/IP and Net Library where you need to provide access to the Internet, and to shared network resources such as file servers, application servers, and print servers. A downside to using TCP/IP can be the complexity of setting up a connection. Most users do not understand (nor do they want to learn) the complexities of DNS naming and IP addresses. They simply want to connect.
Palm's Web Clipping architecture represents a unique way of optimizing Internet access across a slow wireless connection. It is proprietary to Palm, and arose as part of the Palm VII device platform. However with the installation of the appropriate software components, just about any wireless device can be set up to support Web clipping.
For the developer, Web clipping comes in two levels. At the browser level, Web clipping defines a standard for a flavor of HTML that is tuned for PDAs and slow connections. Thus you can create Web applications that are efficient to use on Web-clipping-enabled devices. A good example of this is the MapQuest clipping application that comes with the Palm.Net service. It is designed to provide driving directions quickly based upon minimal user input, and it works well.
Web clipping can be used at a lower level as a C programming library in the form of the Palm SDK's Internet Library, often referred to as INetLib. INetLib offers a high-level HTTP-like interface for developers to tightly integrate Web clipping functionality in their applications. INetLib has unfortunately had a checkered history, beginning life as an available but unsupported library from Palm, to legitimate status in the SDK. Along the way rumors in the developer community have persistently speculated that INetLib support will be dropped at some future point. If you are specifically targeting Palm.Net capability in your program, it's worth looking into, but otherwise it may be safer to avoid using it until its future is more certain.
Oriented more towards the short range of the spectrum, Exchange Manager is most familiar to developers in the form of OBEX, which drives the beaming of data over IR. Exchange Manager is of course capable of much richer functionality than simple beaming, and is also extensible via plug-ins and helpers.
Specifically targeted at implementing the IrDA specification in the form of a developer's library, Infrared Library (IR Library) lets programmers code directly to the IR port that is standard on all Palm OS handhelds. If your applications need tighter control over infrared communications than what's offered in Exchange Manager, IR Library is worth looking into.
SMS and Telephony
Messaging and telephony are specific libraries that can help you incorporate voice and data exchange into your Palm application. With the telephony APIs, you can build a full-fledged phonebook and dialer application for use on the new wave of PDA smartphones. The Palm SDK documentation contains discussions, function listings, and example programs that show you the way if these APIs are what you are looking for.
This completes the introduction to wireless communications options on Palm OS. I hope you will use this information to help you decide on a set of target devices, peripherals, access, and developer tools that are best suited to your needs.
Once you have decided which technology (or technologies) to explore further, I invite you to follow my subsequent articles in this series on wireless development for more detailed information. Communications programming is not for the faint of heart, and I recommend you obtain all the resources and examples you can to understand the scope of effort and knowledge required to successfully add wireless communications support to your program.
Palm's Web site (http://www.palmsource.com) is a good additional resource and starting point, as is the Palm SDK documentation. You might also want to visit Web sites associated with the specific technologies you choose to target, such as www.irda.org or www.bluetooth.com.
About the Author
Glen Bachmann is the founder and president of Bachmann Software, a provider of software products and software development services for handheld computing and wireless applications. Glen is also the author of "Palm Programming; The Authoritative Solution". This article was based on the newest edition of his book, "Palm OS Programming" from Sams Publishing (ISBN: 0-672-32413-X).
# # #
Page 3 of 3