The RIM Platform
The RIM platform is composed of two primary devices: the 850/950 (see Figure 1) and the 857/957 (see Figure 2). Both of these devices contain an Intel 80386 processor, at least 4MB of memory, a full keyboard, an embedded wireless modem, docking cradles, and RIM's BlackBerry email service. In the U.S., the 850 and 857 devices run on the Motient DataTAC network, while the 950 and 957 devices run on the Cingular Mobitex network.
Figure 1 The RIM 850/950 device.
Figure 2 The RIM 857/957 device.
For the time being, RIM devices will run a proprietary operating system (OS) that includes support for graphics, messaging, and structured storage on the device. I say "for the time being" because RIM has announced plans to incorporate Java into the core of their OS, allowing Java developers to take advantage of the application programming interfaces (APIs) that they've grown to know and love...with some RIM extensions. A number of APIs are defined and made public by RIM for third-party application development purposes, including these:
Radio API. Includes calls to monitor status on device radio and wireless network connection.
UI Engine API. Includes classes for graphical user interface (GUI) development; features include menu and screen handling, user fields, and dialog boxes.
Database API. Management APIs for the record-based filesystem used on-device.
Address Book API. Allows the developer to programmatically add/delete/edit contact information, send messages to contacts, and send/receive contact information.
Ribbon API. The ribbon is the GUI element on a BlackBerry device that allows the user to select and launch applications. The ribbon can be scrolled and selected using the on-device trackwheel. This API allows the developer to manipulate the contents and actions of the ribbon.
Messaging API. Allows the developer to send/receive messages from within a custom application as well as process received attachments.
Like most modern operating systems, the APIs discussed above are all implemented as C libraries. This isn't to say that only C programming is supported on BlackBerry devices. As described in the next section, a wide variety of programming languages are available, from Java to C++ to HTML.