Before we dive into developing an application we must choose the SDK version to work with. In most environments, this choice is very simple—just choose the most recent version and use that one. Unfortunately, things are not as simple for BlackBerry handhelds. In fact, it's the opposite.
There is a correlation between the handheld Operating System (OS) version and the SDK version. Each time a new version of the device OS is released, a new version of the SDK is released to go along with it. As new devices are released and more capabilities are added to them, the OS must grow to take advantage of the new capabilities. Similarly, the SDK must also grow. It makes sense that SDK version 4.2 won't be able to utilize features added in OS version 4.5. The downside to this is that applications written using version 4.5 of the SDK won't run on handhelds with a version 4.2 OS, but the opposite is true. Applications written using 4.2 will run just fine on a handheld running version 4.5 of the OS.
Therefore, choosing the SDK version to work with becomes a matter of choosing the lowest common OS version for the devices you want to support or, more commonly, the features that they support.
While it is possible for a handheld to upgrade the OS from one version to the other it is rarely done and should never be assumed. Also, unfortunately, this can mean multiple code bases if you wish to support each device in a way that is specific to that device. It all depends on the application you want to write.
For the majority of the applications that we will make we will be using SDK version 4.5 simply because this is the version that comes bundled with Eclipse.
The following table lists devices, the OS version they were released with, and what important features are new to that version:
Device released |
SDK version |
Features supported |
---|---|---|
BlackBerry 5810 BlackBerry 5820 |
3.3 |
Initial release MIDP 1.0 CLDC 1.0 |
BlackBerry 6200 series BlackBerry 6500 series BlackBerry 6700 series |
3.6 |
PIM API Mail API |
BlackBerry 7200 series BlackBerry 7700 series |
3.7 |
Color support |
BlackBerry 7100 BlackBerry 7290 |
4.0 |
MIDP 2.0 CLDC 1.1 Invoke |
BlackBerry 7510 BlackBerry 7520 |
4.0.2 |
JSR-179 (Location-based services) |
BlackBerry 8700 BlackBerry 7130 BlackBerry 7100i |
4.1 |
Smart Card APIs |
BlackBerry Pearl |
4.2 |
Multimedia Focus JSR-75 (File APIs) |
BlackBerry 8800 series |
4.2.1 |
JSR-82 (Bluetooth) |
BlackBerry Pearl 8110 BlackBerry Pearl 8120 BlackBerry Pearl 8130 |
4.3 |
JSR-172 (Web services) JSR-205 (Multimedia SMS) JSR-211 (Content Handler API) JSR-238 (Internationalization) |
4.5 |
Map Field Spellcheck HTML e-mail | |
BlackBerry Curve 8900 BlackBerry Bold |
4.6 |
JSR-226 (SVG Support) |
4.6.1 |
Accessibility API | |
BlackBerry Storm |
4.7 |
Touch Screen Accelerometer |
BlackBerry Storm 2 BlackBerry Bold 9700 |
5.0 |
Widgets API MIDP 2.1 |