The good, the bad, and the blackberry developer
I have been doing quite a bit of development for hand-held devices lately, mostly the iPhone and Windows Mobile. I took a brief foray into Blackberry and realized that I did not have enough high-quality booze to get over the learning curve (as close as you can come to a step function and still have rounded corners) and Byzantine documentation and API choices. I felt rather guilty at not being able to master the Blackberry and will probably give it another try when I have more time and fewer deadlines.
I came across a story about a developer who decided to write an application for the Blackberry and documented some of the ups and downs of his work. The article concentrates a lot on the aspects of writing an application that come after the development is “finished” (at least released) and the difficulty in converting the application into customer dollars. That part is interesting but the part that caught my interest was the first third of the article that deals with the development process and some of the difficulties he experienced. The part where he describes choosing the development environment hit very close to home as this was early in the process for me (and him) and it left me rather disheartened early in the process.
All BlackBerry phones are java based, and there are two SDK options for developing software on them: MIDP/CLDC and BlackBerry specific APIs. … Initially I leaned towards CLDC to maintain portability, but I eventually decided I’d rather take full advantage of the platform. I could always port it later if it came to that (if there is a later).
Great, now I just needed the RIM SDK. Turns out there are about 5 different versions, and the more features you get the fewer devices you can support. RIM has been around for a long time, and unfortunately (and unlike the iPhone) not all operating system revisions are available for all devices. The basic choices when I started PodTrapper were 4.2, 4.2.1, 4.3, 4.5, and the newly released 4.7.
He also hit a snag that I experienced (and the one that eventually broke my will), connecting to the network:
There are 10 different network transports available on BlackBerry: WiFi, Direct TCP, WAP, WAP2, BES/MDS, BIS, Unite, BES Serial Bypass, USB and Bluetooth. A lot of options for getting data in and out. What would be nice is to say:
Me: Give me an HTTP connection using least-cost routing.
BB: Here you goWhat you get is:
Me: I need an HTTP connection, is Wifi available?
BB: No.
Me: Is BES available?
BB: No.
Me: Is BIS available?
BB: Yes.
BB: Ooops, that file is over the size limit for BIS.
Me: Is TCP available?
BB: Yes.
BB: Ooops, TCP looks available but it was blocked by the carrier’s firewall…..
Regdarless, he persevered and ended up with a decent application. I envy his dedication and results. Mine will have to wait until next time. I know it can be done now.









It can be done. The question is how much of your sanity are you willing to pay to get it.