Software Development Options
As with most mobile platforms, the majority of commercial software development is still being done in either the C or C++ programming language. There are a number of reasons for this, most notably the performance of C/C++ and its ability to directly access all system APIs and resources. RIM has produced a C++ software development kit that includes a variety of sample applications and a plug-in "wizard" for Microsoft Developer Studio/Visual C++ developers, as well as complete emulators for 8/950 and 8/957 devices.
Java developers will be pleased to know that the Java environment is the future of the RIM BlackBerry platform. RIM recently released GPRS devices in the UK (in conjunction with British Telecom) that run a Java-based operating system. RIM has also announced support for J2ME (and the MID Profile) going forward, and will be a strong proponent of Java technologies for the foreseeable future. Java developers need look no further than Sun's own J2ME Wireless Toolkit to obtain a Java emulator for RIM devices (see Figure 3). The future is definitely bright for Java on mobile devices, and RIM's plans verify that outlook.
Figure 3 The J2ME Wireless Toolkit RIM emulator.
RIM describes three primary "modes" of application development for BlackBerry devices: client/server, browser/web, and forms. Client/server apps typically consist of a client application developed in C, C++, or Java, along with a server-side component developed in the tool of your choice. Because BlackBerry wireless contracts typically specify email-only traffic, the application provider will need to work out an airtime agreement with the wireless carrier to handle billing and network usage.
The browser/web mode consists of a thin-client HTML or WML browser, two languages that should be familiar to wireless application developers. Because of the limited user interface capabilities of BlackBerry devices, it's advised that developers "dumb down" web pages for efficient transmission and display. For those interested in this approach, browsers are available from AvantGo, Neomar, and GoAmerica.
Forms applications are made possible through a variety of forms engine products available from the likes of Cingular Interactive, Nextair, and Outercurve. Forms applications generally rely on a 4GL development tool and require that data and screens be fairly static and rigid in structure.