The success of newer BlackBerry models like the Pearl, Curve, Bold and Storm have allowed RIM (Research in Motion) to penetrate the consumer smartphone market and go head-to-head with the Apple iPhone as an application platform. If you've been ignoring the BlackBerry platform because it was too Enterprise-focused for your applications, it might be time to specifically target the BlackBerry. Here's how you get started.
It's Java Time
BlackBerry development for all recent models is done exclusively in Java. So if you're not a strong Java programmer, now's the time to brush up on your Java programming skills. (C # programmers will find the transition to Java fairly simple, the languages are very close in most respects.) The Java platform is built on Java, , which is itself a derivative of Java version 1.3. So forget all the fancy (but useful) language features introduced in Java 1.5 – generics, enumerations, and so on – you can not use these in BlackBerry programming. You can not use most of the library classes you're familiar with – they're just not there. A small subset of the Java Standard Edition (Java SE) classes are supported, as well as a number of BlackBerry-specific classes.
Java Micro Edition?
Once you've brushed up your Java, you need to spend a bit of time understanding the Java ME platform, which was formerly known as Java 2 Micro Edition, or J2ME for short. You need to understand the concepts of configurations and profiles , and in particular the CLDC and MIDP standards. You'll find lots of information about these in various books and on Sun's Java development site.
The BlackBerry Platform
After learning about Java ME, it's time to explore the BlackBerry platform. The BlackBerry platform is based on the CLDC and includes support for MIDP 2.0. However, a large number of BlackBerry-specific classes are also provided. Which brings you to the first question you'll face: are you going to write a BlackBerry application or a MIDP application? In a MIDP application you're constrained to only use the APIs exposed by the CLDC and MIDP standards. Your application will run on the BlackBerry and on most cellphones, but it will not be able to use any of the BlackBerry's special features. You can use any MIDP-compatible development tool, such as the Sun Java Wireless Toolkit for CLDC (formerly known as the J2ME Wireless Toolkit ), to create your applications.
Most application developers opt to build BlackBerry-specific applications. This means learning the BlackBerry-specific APIs – including new user interface classes – and using the BlackBerry Java Development Environment (JDE) to develop your applications. The JDE, which is free to download, works with the standard Java Software Development Kit and provides you with all the tools necessary to create, package, test, and debug BlackBerry applications. You do not even need a BlackBerry handheld, because the JDE includes a full-featured BlackBerry device simulator. A complete set of JavaDocs is provided that describes all the classes and interfaces available to programmers.
After downloading and installing the JDE, you'll want to read the developer's guides that come with the JDE and look at the sample applications that are shipped with it. Then start your development by writing a few simple applications to get a feel for the BlackBerry APIs and the tools.
Get A BlackBerry Handheld
Although you can develop and test your applications for free, at some point you'll need to run the application on an actual BlackBerry handheld. This will cost you money, of course, and so it's not something you'll want to do until you're serious about writing BlackBerry applications. On-device testing is crucial to ensuring that the application works correctly, because the simulator is not a perfect emulation system.
If you're really serious about BlackBerry application development, consider also joining one of the BlackBerry developer programs for additional support and early access to new devices and APIs. You should also explore RIM's other BlackBerry developer resources. There are also third-party forums and books available to help you learn the BlackBerry platform.
BlackBerry programming is not hard if you know some Java and you understand the constraints and limitations of the underlying Java ME platform. You have to learn a new set of APIs and use new development tools, but in the end it's just another kind of Java programming.