If we ever decide to develop another Blackberry app, it will be for 3x the cost of the iOS and Android version, 3x the timeline, and 3x the heartburn medicine. Here are my top reasons why I hate Blackberry development:
1) The simulators – There is a different simulator for every combination of device, OS, and carrier. Do they really expect developers to do that much testing just because they can’t be bothered to create consistency between their products?
2) The devices – I can go on and on about these, but my biggest gripes are all of the permissions and settings that have to be manually set to use features like Wifi and databases. Without a BB data plan, we can’t even use the GPS, which means a lot of $$ just to test our apps.
3) The code signing – Anyone who has seen Apple’s code signing process might think that it can’t get any worse. But BB takes the cake again! In order to test on a device, a developer has to request keys which take up to 2 hours to receive. Then they have to be code signed against the BB server every time you build the app for a device. This means that I have to enter my key password (once per Eclipse launch). But then that means that their signing server must be online for you to get your work done. All this is tolerable until you find out that they take their signing server offline for maintenance almost every evening, US time. So if you don’t live in the US or if you program at night (like we frequently do), you are completely unable to test during those hours.
4) The emails! – Oh the emails. Every time this code signing process occurrs, RIM sends me a confirmation email for every single .cod file that was signed. For illustration, here is my trash bin just from today. Yes, that number says 500. Supposedly, this is for security and can’t be disabled, but I say that if I auto-filter these all to my trash bin, the security has been rendered moot.
5) The documentation – Most of the documentation reads like it was written by a marketing person, not a developer. Case and point, this article that supposedly tells developers how to upgrade their apps to OS 7: http://devblog.blackberry.com/2011/06/blackberry-7-simulators/ It is so vague and high level that it isn’t actually helpful in any way. The documentation that is actually written by a technical person is so short and terse that I generally have to google half of the instructions to get the actual instructions.
6) The OS’s – I don’t even know where to begin. I can’t build an app for OS 6 and have it work reasonably well in OS 7. I have to build two apps and submit them to both versions of App World in order to get to all of the users.
7) The online support – I guess I’m spoiled by how much online material, support, forums, tutorials there are for iOS and Android, so the lack of options for BB are shocking to me. There is some guidance on the BB forums and on stackoverflow, but it’s so contaminated with posts from 2009 that are completely irrelevant (due to the complete lack of backwards compatibility with older OSs) that it almost isn’t worth it. It’s really apparent that there aren’t too many BB developers out there.
8) The User Interface – BB has done a great job of convincing us to use the simplest user interfaces, which are completely unimaginative and pretty ugly compared to iOS and Android. I’m sure all the users who like the joystick/mouse of the BB appreciate having boring lists of information that are easy to scroll through and select, but there is so much more possible. But this hasn’t even addressed my rant about the UI. My real issue is that they have to be build completely in code. There is no UI layout builder to quickly put together a pretty UI. Since everything is done by hand in code, it takes a long time, a lot of guess and check, and doesn’t encourage being creative.
9) Not Mac OS X compatible – This might not be a huge deal for some developers, but I prefer to have just one computer and that happens to be a Mac. Eclipse is Mac OS compatible, Java is Mac OS compatible, but for whatever reason, the Blackberry Plug-In for Eclipse isn’t. There is a Mac beta out now, but it’s buggy and doesn’t work well with simulators. I don’t have high hopes for it based on the quality of the rest of the BB development tools. I use a virtual machine at this point, and it does the job.
The entire Blackberry development environment feels like it was hacked together. Nothing is cohesive and nothing “just works”. Every step of the way is a struggle of troubleshooting and figuring out what is unhappy now and then figuring out how to fix it. I wish that my time was being spent debugging and improving my apps, but instead I deal with “SD Card Missing, can’t debug” errors.