This book shows you how to create a Palm application and a conduit. It assumes that you have the Palm OS documentation (available at http://www.palmos.com/dev) and know where to find things in it. Before showing you how to create an application, we spend some time explaining the development environments, the UI, and what makes for a successful handheld application.
Part I gives you the big picture. You learn about the handhelds, their history, what makes them great devices, the development environments, and the right way to design a Palm application.
We happily admit that this chapter is unabashedly partisan. Would you want someone who doesn’t like the Palm OS telling you about it? We also describe what makes this handheld platform successful and the philosophy behind the handheld design. We touch on how these factors, in turn, influence application design.
We describe the choices in development environments and the range of languages you can use. We cover everything from simple forms-based environments that use languages like Visual Basic to full-blown environments that require C.
We discuss the use of all of the forms and form objects in the Palm OS. We then venture onto the topic of handheld UI design and philosophy. This includes everything from how the intended audience shapes the content of applications to a careful look at some well-designed forms and dialog boxes. We then show you the UI of the Sales application, what each form does, and why we designed it the way we did.
Part II covers everything you need to know in order to code a Palm OS application. We describe its structure, memory restrictions, data design, and other material from the API that you need to know. Each chapter includes descriptions and sample code for the Sales application or other samples. We start the section with a tutorial to get people new to the Palm OS up and running.
This chapter shows someone brand new to the Palm how to install and use CodeWarrior or the GNU Compiler Collection (GCC) to get a simple Palm OS application up and running. We use a step-by-step approach that shows a newcomer how to create, download, and debug a simple application.
We take you through the whole cycle of a Palm application, from the time the user launches it to the moment it quits.
Memory on the Palm is unusual and takes some explanation to understand. We describe how memory is used and the restrictions on it that will affect your applications.
In this chapter, we turn to the crucial topic that is the bane of every programmer’s existence—debugging. We show you how to figure out what’s wrong with your code and review the various tools that are available to help.
This chapter describes how to create the three types of forms (forms, dialog boxes, and alerts) that are available in the Palm OS.
We describe every form object within the Palm OS. We discuss any restrictions, behaviors, and what is involved in adding them to a form in an application.
We explain the unique way the Palm OS creates data structures and stores data on a Palm handheld. We show you how to add data to an application.
We explain menus and the items in them. You learn how to create them, where to put them, and how to add Graffiti shortcuts.
We show how to add support for Find and the Exchange Manager (beaming).
We describe the various communication protocols supported on the Palm OS. These include serial, TCP/IP, and IrDA. We implement serial and TCP/IP in two sample applications.
Part III covers conduits. Just as we created a Palm application, we do the same for a conduit. This section includes everything from a complete description of the parts of a conduit to their development platforms and code walkthroughs. Unlike the other three parts, these chapters build on each other and should be read in order.
We start once again with the bigger picture. After we describe all the general things you need to know about conduits, we turn to code. We show you how to install and remove a conduit and get you to the point where you have a working conduit shell.
We explain how to create a conduit that moves data between the handheld and the desktop.
We show you a conduit that uses full-blown data syncing with the exchange of data depending on where it has last been modified. We also describe various logic problems you encounter with a device that can synchronize data on multiple desktops.
Part IV includes some resources that will come in handy.
This appendix lists Palm developer resources.
This appendix contains a complete listing of the source code for the Sales application, the Palm OS sample application we develop in this book.
This appendix contains the manual for PilRC, Version 2.8 for those programmers who wish to use this development environment.