When you’re first starting off as a BlackBerry developer you’ve got quite a few decisions to make. One of the most pressing will probably be which application programming interface -- or API -- you choose. Simply put, an API is a set of routines, data structures, object classes, and/or protocols that are provided by libraries or operating system services. So much importance is placed on choosing the right API because essentially, it will serve as your foundation and it will support the building of all of your BlackBerry applications. Let’s find out more about APIs and find out the specifics on both the RIM and JAVA ME API.
The RIM API works so well for BlackBerry apps because it was created by the maker of BlackBerry. Java Platform, Micro Edition (Java ME) on the other hand, provides a flexible environment for applications running on not only mobile devices like BlackBerry’s, but for other embedded devices such as personal digital assistants (PDAs), TV set-top boxes, and printers. Java ME includes flexible user interfaces, robust security, built-in network protocols, and support for networked and offline applications that can be downloaded dynamically. Applications based on Java ME are portable across many devices, yet leverage each device's native capabilities.
Originally, Java ME technology was created in order to deal with the constraints associated with building applications for small devices. For this purpose, Sun defined the basics for Java ME technology to fit such a limited environment and make it possible to create Java applications running on small devices with limited memory, display and power capacity. BlackBerry developers will find that there are slight similarities between the JAVA ME and the RIM API. As mentioned previously, the RIM API is a collection of classes, while the Java ME platform is a collection of technologies and specifications that can be combined to construct a complete Java runtime environment tailored to fit the requirements of a particular device or market. This offers BlackBerry developers a flexibility and co-existence to seamlessly offer the most appealing experience for the end-user.
The Java ME technology is based on three elements: a configuration provides the most basic set of libraries and virtual machine capabilities for a broad range of devices, a profile is a set of APIs that support a narrower range of devices, and an optional package is a set of technology-specific APIs. The configuration targeting resource-constraint devices, like BlackBerry’s, is called the Connected Limited Device Configuration (CLDC). It is specifically designed to meet the needs for a Java platform to run on devices with limited memory, processing power, and graphical capabilities.
On top of the different configurations, the Java ME platform also specifies a number of profiles defining a set of higher-level APIs that further define the application. A widely adopted example is to combine the CLDC with the Mobile Information Device Profile (MIDP) to provide a complete Java application environment for smartphones such as BlackBerry’s and other devices with similar capabilities.
It’s impossible to say which API is better: RIM or JAVA ME. Instead, fledgling BlackBerry developers should first decide what kind of apps they intend to create and then choose their API according to their needs and the needs of their applications. It’s important for developers to also consider who their target market is. Do they want to write one application that works across multiple smartphones, phones, etc. or do they want to customize their application to BB to provide a better experience for the user? Keep in mind that the latter requires more development time.
You should also consider your target audience; do you want to create one application that works across multiple smartphones, or would you rather customize your application to BlackBerry, giving your user a better experience? While developing a customized BlackBerry app may take longer, in the long run it will be more similar to native BlackBerry applications, and more comfortable for the user.
One thing is for sure, though: no matter which you choose, both APIs have a lot to offer in the way of security. Both APIs have much to offer, but I think the main idea to focus on is that if developers use the BB API, you will end up with a much more customized application, similar to other native BB apps (meaning the other apps on the device that are written by RIM) and a better experience. Of course, this may or may not make the decision of which API to choose more difficult.