Synopses & Reviews
PalmPilot's popularity is growing and with over a million units sold, the Palm OS dominates the hand-held market. Wired has astutely described Palm's position in a recent article: "On its way to becoming the bestselling hand-held computer of all time, the 3Com PalmPilot has spawned an intense, emotional, and fanatical developer following not seen since the glory days of the Mac." (Wired, 20 Feb. 98).Palm Programming should be eagerly accepted by programmers because the authors worked closely with Palm to ensure that the book is tailored exactly to the needs of the ever-growing group of Palm developers. As nothing but some piecemeal documentation exists currently, this book provides a much needed solution to the Palm developers. In fact, Palm uses this book as their official developer's guide and will be using it in the future as a key part of their training materials for developers.There are currently no books on Palm programming (and we know of none that are planned). The only way to learn is by using the reference material published by Palm (available freely on their Web site), the tutorial they provide, or various Palm programming FAQs compiled by third parties.Palm Programming shows intermediate to experienced C programmers how to build a Palm application from the ground up. Using an easy-to- understand tutorial approach, this book gives readers everything necessary to create a wide range of Palm applications and conduits, from simple scripts through full-blown applications, and in the process provides thorough coverage of Palm programming. It includes a CD-ROM (Macintosh and Windows compatible) with the full source code to the examples in the book, a trial version of Palm's Software Development Kit, and third-party developer tools, including Metrowerks' CodeWarrior Lite programming kit.OutlinePart 1: Overview of Palm OS and devicesChapter 1: The Palm SolutionChapter 2: Developing for Palm OSChapter 3: Designing a solutionPart 2: Programming for the handheldChapter 4: Structure of an ApplicationChapter 5: Forms and Form ObjectsChapter 6: DatabasesChapter 7: MenusChapter 8: ExtrasChapter 9: CommunicationsChapter 10: DebuggingPart 3: Programming for the desktop: conduitsChapter 11: Getting started with conduitsChapter 12: Uploading and Downloading DataChapter 13: Two-way Syncing Appendix: Where to go from here
Emerging as the bestselling hand-held computers of all time, PalmPilots have spawned intense developer activity and a fanatical following. Used by Palm in their developer training, this tutorial- style book is eagerly awaited by developers and experienced C programmers, who, until now, have only had access to piecemeal documentation. "Palm Programming shows intermediate to experienced C programmers how to build a Palm application application from the ground up. It's an easy-to-understand book that gives readers everything necessary to create a wide range of Palm applications and conduits, from simple scripts through full-blown applications. Part I provides an overview of the Palm device and the Palm OS. Part II covers programming for the Palm itself. Part III covers conduit programming, which is used to sync the Palm with desktop applications. The book includes a CD-ROM (Macintosh and Windows compatible) with the full source code to the examples in the book, a trial version of Palm's Software Development Kit, and third-party developer tools, including Metrowerks' CodeWarrior Lite programming kit.
Endorsed by Palm as their official developer's guide, this tutorial-style book shows intermediate to experienced C programmers how to build a Palm application from the ground up. Includes a CD-ROM with source code and third-party developer tools.
System requirements for accompanying CD-ROM: PC or Macintosh.
About the Author
Neil Rhodes and Julie McKeehan are experienced authors who, through their company, Calliope Enterprises, work closely with Palm Computing to develop new training materials, materials that are based on this book. They are both programmers with many years of experience working with hand-held systems. Neil and Julied authored several books on C++ and hand-held systems, and now bring their skills to the Palm Computing Platform. Neil has been a UNIX programmer (his fingers still know vi commands), a Mac programmer (shipped several commercial products), a teacher (of programmers for Apple Developer University), a Newton programmer (several commercial products, including some for Apple), and an author (of Newton books, a C++ book, and a Macintosh programming book). Neil has been working with Palm Computing on developing their training strategy and training materials for programmers. He works closely with many of the developer support engineers at Palm (many of whom he also worked with previously when they did Newton developer support).
Neil Rhodes and Julie McKeehan are experienced authors who, through their company, Calliope Enterprises, work closely with Palm Computing to develop new training materials, materials that are based on this book. They are both programmers with many years of experience working with hand-held systems. Neil and Julied authored several books on C++ and hand-held systems, and now bring their skills to the Palm Computing Platform. Julie has been a systems administrator, a director of software development at a successful Macintosh software company, a teacher (of programmers for Apple Developer University), and author (of Newton books, a C++ book, and an Internet book).
Table of Contents
Foreword; Foreword; Preface; The Palm Phenomenon; Who This Book Is For--C Programmers; What This Book Is About and How to Read It; What's in a Name--Is It a Pilot or a Palm?; Conventions Used in This Book; How to Contact Us; Versions of Things; Whom We Need to Thank; Palm--Why It Works and How to Program It; Chapter 1: The Palm Solution; 1.1 Why Palm Succeeded Where So Many Failed; 1.2 Designing Applications for Palm Devices; 1.3 Elements in a Palm Application; 1.4 Summary; Chapter 2: Development Environments and Languages; 2.1 Overview; 2.2 Handheld Development; 2.3 Alternative Development Environments; 2.4 High-Level Forms Development; 2.5 Conduit Development; 2.6 Conclusion; Chapter 3: Designing a Solution; 3.1 User Interface Elements in an Application; 3.2 General Design of a Palm Application; 3.3 How the Sample Applications Are Useful; 3.4 User Interface of the Sales Application; 3.5 Developing a Prototype; 3.6 Design Tradeoffs in the Sample Application; 3.7 Designing for a Small Screen; 3.8 Designing the Databases; 3.9 Designing the Conduit; 3.10 Design Summary; Designing Palm Applications; Chapter 4: Structure of an Application; 4.1 Terminology; 4.2 A Simple Application; 4.3 Scenarios; 4.4 Memory Is Extremely Limited; 4.5 Other Times Your Application Is Called; 4.6 Summary; Chapter 5: Forms and Form Objects; 5.1 Resources; 5.2 Forms; 5.3 Form Objects; 5.4 Resources, Forms, and Form Objects in the Sales Application; Chapter 6: Databases; 6.1 Overview of Databases and Records; 6.2 Creating, Opening, and Closing Databases; 6.3 Working with Records; 6.4 Examining Databases in the Sales Sample; Chapter 7: Menus; 7.1 Menu User Interface; 7.2 Menu Resources; 7.3 Application Code for Menus; 7.4 Adding Menus to the Sample Application; Chapter 8: Extras; 8.1 Tables; 8.2 Tables in the Sample Application; 8.3 Find; 8.4 Beaming; 8.5 Barcodes; Chapter 9: Communications; 9.1 Serial; 9.2 TCP/IP; Chapter 10: Debugging Palm Applications; 10.1 Using POSE; 10.2 Device Reset; 10.3 Graffiti Shortcut Characters; 10.4 Source-Level Debugging with CodeWarrior; 10.5 Source-Level Debugging with GNU PalmPilot SDK; 10.6 Using Simulator on Mac OS; 10.7 Gremlins; Designing Conduits; Chapter 11: Getting Started with Conduits; 11.1 Overview of Conduits; 11.2 Registering and Unregistering a Conduit; 11.3 Conduit Entry Points; 11.4 The HotSync Log; 11.5 When the HotSync Button Gets Pressed; 11.6 Using the Backup Conduit; 11.7 Creating a Minimal Sales Conduit; Chapter 12: Uploading and Downloading Data with a Conduit; 12.1 Conduit Requirements; 12.2 Where to Store Data; 12.3 Creating, Opening, and Closing Databases; 12.4 Downloading to the Handheld; 12.5 Uploading to the Desktop; 12.6 When the HotSync Button Gets Pressed; 12.7 Portability Issues; 12.8 The Sales Conduit; Chapter 13: Two-Way Syncing; 13.1 The Logic of Syncing; 13.2 The Conduit Classes; 13.3 Sales Conduit Sample Based on the Classes; 13.4 Generic Conduit; 13.5 Sales Conduit Based on Generic Conduit; Chapter 14: Debugging Conduits; 14.1 HotSync Flags; 14.2 Source-Level Debugging; 14.3 Avoiding Timeouts While Debugging; 14.4 Conduit Problems You Might Have; 14.5 Test with POSE; 14.6 Turn Off Other Conduits During Testing; 14.7 Use the Log, Luke; Where to Go From Here; Palm Programming Book Web Site; The Official Palm Developer Site; Palm Programming Mailing Lists; Third-Party Palm Programming Resources; Third-Party Palm Programming FAQ; RoadCoders, Handheld Developers; PalmCentral; Journals and Magazines; Colophon;