Qualcomm’s Binary Runtime Environment for Wireless (BREW) is an infrastructure that supports program code on wireless communication devices, most commonly cellular telephones. This book provides an introduction to, and tutorial on, how to develop applications for BREW. It covers all major aspects of development for the platform, including coding techniques, available programming interfaces, and how to have the application certified for the specific device on which it will be used. Of note is an application framework presented by the author. Based on building an application as a state machine, the framework is aimed at making applications modular, easily managed, consisting of reusable components, and well positioned to recover from error conditions. The last includes handling conditions such as being out of memory, being required to suspend operation due to an incoming telephone call, and so on.
Considering that its platform is a cell phone, the capabilities of this environment are rather remarkable. The environment is event-driven, typical of modern windowing environments. The BREW platform includes interfaces for controlling telephony, a file system, a database system, sound handling, and sprite graphics. In addition to these features, there are at least three different versions of BREW. The author is careful to point out which interface features are available in the various versions. For application testing, besides the actual device, a software emulator is available for Microsoft Windows environments. Included in the tips is a discussion of the idiosyncrasies of the emulator, and how to deal with them.
As one might guess, a cell phone is a limited power device, meaning that, compared to typical personal computer (PC) systems, cell phones have severe constraints on their resources, including their central processing unit (CPU) power, memory, and available storage. The author devotes a fair amount of material to describing how to work within the limitations of the platform. Programming is done in C or C++, although C is preferred, and is used throughout the book. Numerous programming examples cover all major programming interfaces. As with other recent software-oriented books, the source code presented in the text is available from the book publisher’s Web site. Many hints and tips are included about how the environment works, and the effects it will have on a running application. Special attention is given to event and error handling, since external events can affect a running application, and must be handled correctly. An application with errors that crashes someone’s telephone is frowned upon.
This book will be of interest to developers who wish to create applications for the BREW platform. A working knowledge of C will be needed to comprehend the programming examples. The writing is clear; the programming examples are sufficiently complex to be instructive and interesting, but not so complex as to distract the reader from the point being made. The book meets its objective, which is to describe how to develop applications that run in the Qualcomm BREW environment, and to provide information on how to make applications that are well structured, and suited to the environment.