The BlackBerry device , when it came out was amazing. There was nothing like it! At one time it was at the pinnacle of its glory, as an amazing little communication tool, when iPhones and Android’s weren’t there yet. But in the recent years , due to various reasons I feel like listing out here, BlackBerry is going home.
I’m an android developer. My love for android and java started at an early age, and now I’m pretty established over the Android market. After that I decided to try BlackBerry development. And boy was it tough! Anyone who has gone through this transition will know what I’m talking about.
All the Android developer tools are well documented, easy to use, built with great care and allow people who are fundamentally weak in programming to do things they never thought possible. But when it came to BlackBerry, I was very disappointed.
Lets go pointwise
1. Development tools
You need to sign up with Blackberry and download their development environment which is around 400 MB. Now though it seems heavy, everything is packaged into one neat little bundle ready to run. Android has a very tedious process of installing the development environment which isn’t very easy at all and some configuration needs to be done in order to get the SDK working.
Although both run eclipse, BlackBerry somehow seems to be slower. Writing programs in the BB environment isn’t so user friendly – not many suggestions or tweaks RIM has implemented. Nothing fancy at all.
Now when you start writing code, You’ll realise for debugging and testing, Android has the upper hand. LogCat, Emulator control, Profiler , Allocation Tracker and so many tools in Android make debugging a breeze. BlackBerry is the worst when it comes to debugging. Firstly the emulators are horrible. Simply horrible. Firstly they take a hell of a lot of time to start up. The emulation isn’t efficient at all and immediately hogs about 500MB of your memory. Oh and this is without the debugger. If you choose to attach the debugger from the start you can probably take a bath and it still won’t be ready yet. The debugger output isn’t at all categorized like android. Its just random shit blurting out at you. It takes you time just to find out where you wrote a simple System.out.Println(“Hello World”) , and be sure to include newline characters because it wont do that either.
Now assuming your program has a bug in it and you hit run, most of the emulators just show you this nasty Java error screen and halt. Thats it. They halt. Then you can’t even quit the bloody thing. You have to kill the processes on Windows Task Manager , well not only kill but to FORCE it to close. Then you edit your code and restart. The same thing all over again. And no my laptop isnt slow – its an Acer Aspire with 3 gigs of RAM and a core i3 processor runnning windows 7 x64.
Also, theres a funny thing. You would expect things that work on an emulator to work on a device of same specs. Sometimes, the program runs fine on the device but not on the emulator! The emulator keeps throwing weird errors at you. You have to keep “cleaning” the emulators. I really do not understand why RIM can’t put a little effort into their development tools. Its almost like BlackBerry doesn’t want you developing apps!
Sometimes the environment just will not show you exactly where the error occured. It just shows you the top level stack trace like the line MyScreen = new Screen() failed. Gee, I need to know WHERE the error occurred in order to fix it don’t I? So I google this error on the BlackBerry blogs. It looks like there’s a poor guy by the name of Mark Sohm answering everyones questions. The best part is, not even trained advanced developers have a clue about what is going on because of RIM’s slack implementation of Java.
2. Official Documentation and Support
The BlackBerry website seems to have detailed documentation about implementation with code, but sometimes that code simply does not run. Yes their own code has bugs in it and does not run. Also, they don’t explain proper methodologies on their website, they will never tell you efficient ways of doing it. Apart from that there is very little documentation out there. Android has tutorials on almost every website , not one but like ten different websites with ten different methods!
Also, for Android developers, theres a website called Stack Overflow. It is an amazing community of people who solve any problems related to Android and I refer to their questions more often then I do with the official website. Blackberry doesn’t have such a community. Everything is corporate. You need help, you pay for it. Nobody is interested in offering you good advice or code for free. They don’t even have proper videos on how to start programming.
The RIM Blackberry API has very very limited components with limited functionality. You can’t skin them just by giving them a stateful background like android. You have to download heaps of code just for a simple stylable button. Wastes a lot of the developers time. There is no drag and drop UI. The UI isn’t separate like in android xml layouts. Everything is crammed into one ugly piece of code.
4. Signing and Publishing
Well registration is free for a BlackBerry developer account. But its a very long process, they ask you to fax them your identification proof before they accept your registration. Then the ISV portal where you submit your apps doesn’t work half the time. The graphs dont show saying there was an unexpected error, right now I’m getting a server overloaded error, and they ask you to upgrade to the latest browsers. The app submission process isn’t friendly at all. Its very ugly and complicated. Theres no good mechanism for uploading files, the app approval process takes a huge amount of time like 15 days or even three weeks or so. If you have an error the process repeats. Same like apple. Now the Android market gives you good analytics. BlackBerry analytics = one ugly CSV file.
RIM has murdered blackberry development by not supporting it and making it more user friendly. Looks like they don’t want people to develop BB apps. I hope someone from RIM reads this. Shame on you. All of you.