views:

353

answers:

2

I'm developing BlackBerry applications with the JDE plugin for Eclipse (version 1.0.0.67), and I was wondering if there's a list somewhere of devices that these applications will run on.

It's for commercial purposes, and we need to be able to tell our clients what the supported devices are.

Perhaps I'm asking a stupid question, but I need to be sure. If you need more information than what I'm giving, please ask.

Thanks.

+1  A: 

It depends which component pack you're working on. Theoretically, any application developed for BlackBerry should be forward compatible so I'm developing an app for 4.2 and it should work on all devices running 4.2-5.0. To find out which version you're currently using in Eclipse go to "BlackBerry" -> "Configure BlackBerry Workspace", expand "BlackBerry JDE", click on "Installed Components" and it should tell you which Component Package you're using.

Jonathan
It is true that any application on BB is technically forward-compatible. But, in my experience, apps compiled with a non-touchscreen JDE (i.e. those before 4.7) will run in compatibility mode on a touchscreen device (and that basically means that it won't look like you want it to).
Eric
I guess that raises another question: what component pack should I use to target the most popular BlackBerries, without sacrificing (too much) functionality?
That really depends on what you want to do. I would write out your requirements and look through the API and the sample applications that come with the JDE to see if you can do what you want. The only feature that I've noticed in OS 5 that I would really like is the ConnectionFactory class which greatly simplifies network connections.
Jonathan
Depending on your app and target audience, you may need to have multiple builds to support different OS versions. We have three builds - 4.3 for 4.3-4.6 devices, 4.7 for 4.7 devices (touch apis), and a 5.0 build for 5.0 devices that takes advantage of some of the new 5.0 APIs
Marc Novakowski
A: 

As Johnathan mentioned, compatibility is going to be based on the JDE (component-pack) version, not the blackberry plugin version itself.

To delve more into which JDE and component pack you want to use:

Which JDE you use will limit (or occasionally change) which APIs are available. Unless there is a particular API feature you need from a newer JDE, building against and older JDE will make your application work on a wider variety of handsets.

The JDE version of your app must be less than or equal to the OS version on the blackberry in order for your app to run on that phone. Here is a link to another question on stackoverflow which points to answers as far as what models run on what OS (which does, btw, occasionally vary by carrier): http://stackoverflow.com/questions/520816/is-there-a-chart-of-existing-blackberry-platform-vs-os-vs-model-versions

To maximize the balance between compatibility with older blackberry handsets and feature availability, at my office we set our goal as to target the 4.3 JDE, We also make a separate build using JDE 4.7 for touch-screen devices to avoid the application running in compatibility mode on the Storm, as compatibility mode on a touch-device means flip events are ignored and the application will not run in full screen, meaning the app doesn't look so hot. You can add IFDEF handling to include any special handling you want to override in touch-screen mode (though for the most part there are very few places we had to change the handling) to allow a shared code-base to build two separate versions of the application.

If you have particular handsets you would like to target, find out what Blackberry OS version they are running and pick a JDE that is that version or lower.

Jessica