For those of you who know/experienced both BlackBerry and iPhone development, which platform did you prefer and why?

I'm looking for things like debugging ability, API stability, UI development, deployment, IDE, documentation, etc.

29 accepted

Most of my experience is on BlackBerry, but I've dabbled a little in iPhone development (and been involved more heavily in the non-technical side of iPhone projects).

Programming language: BlackBerry - Java, iPhone - Objective-C Advantages of Java are that it has garbage collection (as opposed to Objective-C/Cocoa's reference counting mechanism), and that it's more familiar to a lot of people. Objective-C is nice because you can drop to pure C at any time and do all the tricks you wish you could in Java

IDE: The BlackBerry JDE is terrible, but using Eclipse is much better. You do have to use Windows though, mostly because of RIM's simulator. XCode on OS X seems to be love-it or hate-it. It's definitely better than the JDE, but comparing it to Eclipse - well, long discussion there. And you'll have to use OS X (or you'll get to use OS X, depending :)

Simulator: BlackBerry is better. You can simulate more types of events (incoming phone calls, etc), and it gives you a better representation of the actual device runtime environment. The iPhone simulator is very good, but not quite at the same level.

Networking and Security: BlackBerry has a better story over end-to-end security, with the BES. Very important for enterprise apps, not really for consumer apps.

Documentation: Can't speak for iPhone too much. RIM has full Javadocs, and a developer site, but generally it's not the best, and from other Mac development there's a lot of support for Apple stuff out there.

Distribution: Apple wins this, hands down - especially if you're developing a consumer application. The App Store is the killer app for iPhone, and something that all the other manufacturers should have done long ago (they're playing catch-up now). You get tonnes of exposure and easy installation right away. If you're doing enterprise, RIM is the way to go, but you'll need a sales force for enterprise applications anyway.

In the end? Depends what kind of application you're thinking of building - for enterprise BlackBerry is still king, for consumer you can't beat the kind of exposure you'll get for very cheap on the iPhone app store.


I've done both. The Interface Builder alone would be enough reason to go iPhone rather than Blackberry.

The fact that you can reuse iPhone knowledge back and forth with Macs is another; Blackberry development, if you want a decent app, is only reuseable for other Blackberry apps (you need native APIs to look useful at all).


I prefer the iPhone SDK, mostly because I really enjoy Apple's APIs, but also because there's a much larger user base. Objective-C is a pretty nice language as well, and Cocoa is pretty much beautiful.

There are some pretty cool remote debuggers for the iPhone, and as for UI, Cocoa is amazing.

The Blackberry is a nice development platform as well, but everything just seems more clean with the iPhone.


Blackberry is based on J2ME, which is an old tech (I was doing J2ME in 2002), and suffers from platform fragmentation (devices which don't conform to the spec 100%).

iPhone SDK is newer, much more powerful (CoreAnimation anyone?) and is a very hot space right now. The tools are good, the phone is a joy to use, and while the API is maddeningly poorly documented in places (code examples in docs please Apple?) it is still light years ahead of the competition. Apple also has the App store which isn't controlled by the carrier, which is nice.

BlackBerry does have some cool stuff in their APIs, like SMS/MMS listeners, but I tend to believe those are wonky telco protocols which will wither and die soon, and I'm not missing them on the iPhone.


I've developed a couple of Blackberry apps. Somebody mentioned Eclipse (of which I am a big fan) but I should mention that NetBeans has a very nice visual GUI editor that makes it very nice to develop J2ME apps.

Also, I'm surprised nobody here has mentioned the fact that (to the best of my knowledge) you need to have a Mac in order to develop iPhone apps. That is kind of a big deal for any casual development project.


I was about to say what Michael Tiller has mentioned. Originally, I learned iPhone programming way before getting into BlackBerry development. I won't say that iPhone SDK sucks or its not good. Its amazing. And xCode is a gorgeous IDE. Below are my reasons why I don't want to iPhone way:

  1. I hate the way Apple thinks. You have to buy Apple in order to anything. It is so proprietary.
  2. Can't spend money on buying Mac.
  3. Even if I buy Mac, the maintenance and repairing cost is so high (something to keep in mind for future).

I am a big fan of Eclipse and have spend time resolving Eclipse bugs. It's an amazing IDE.Even though I am not 100% satisfied the way things are working on Eclipse - I strongly believe that RIM will spend heavily in this area.

The BlackBerry documentation is far more better than Apple. One of the most important reason of going BlackBerry way is - JAVA. In the case of errors/crashes - you can find the solution buy just googling it. I can guarantee that googling for iPhone problems/errors won't pull enough indexes.

Hope this will help others : 0)


BlackBerry is the absolute pits in terms of support, monetization and fragmentation. I'm really frustrated with them. We get 100x the number of support requests per app sold. The store itself is buggy and customer contact us for those issues. They don't even properly show what device are supported on their webpage. That should take about 3 seconds to fix.


I was looking into iPhone development, but if I understand correctly the only way to get an app on an actual iPhone is to deploy it through the app store. This pretty much took the wind out of my sails.


iPhone over BlackBerry, clearly. For the record, I liked Windows Mobile development even better. But that's after 10 years of Windows proper experience.

Pluses of iPhone:

  • sensible simulator - you don't have to start and stop it all the time
  • sensible debugger - Eclipse chokes on expression evaluation all the time
  • much better documentation
  • compatibility with existing C++ code (yay cross-compilation!)

BlackBerry is better in the corporate environment. On the iPhone, we had a bunch of issues with Internet access across firewalls; BlackBerry goes, by default, through a Enterprise Server proxy. But the BlackBerry simulator is the worst mobile simulator I've ever seen - slow as hell, and you have to restart it for each code change.

I never dealt with Apple App Store - some claim it's quite a source of frustration. BlackBerry allows for easy over-the-air setup.

iPhone simulator isn't perfect either - for one thing, it does not run ARM code (Microsoft Device Emulator does).


iPhone over blackberry for me. I have developed for both and find the cocoa-touch API more civilized/powerful than any of the several (surprisingly incompatible) blackberry sdks. Factor in Interface builders powerful UI tools and the rest is candy.


I'm just moving from BlackBerry to the iPhone environment and I've got to say Apple have done a great job. I was initially pissed off that I'm being made to use an Apple laptop for the development, but Xcode as an IDE totally trumps Eclipse where I've run into problems from Eclipse not cleaning up and loading the latest application completely randomly to Eclipse not downloading JDEs (BlackBerry Java Development Environments) from the online JDE repository.

I also like how Xcode and Apple kind of force you to write good code, if you know what I mean, but garbage collection is a huge plus for BlackBerry.

I HATED the UI development using pure Java in the BlackBerry world. As much as it makes code understandable, the development was a real pain, especially if you're developing for a slightly older JDE. (I mean come on, creating a custom vertical field manager just to add an image background and then having to deal with scrolling issues?)

I also find Apple's developer resources on their website a lot better organized than the BlackBerry resources. I've had to get an Apress book for BlackBerry, but I'm doing fine with the online resources from Apple. It's great that Xcode provides sample code for using each class whenever you try to declare it. Any time you alt+click on a class, it provides everything from sample code to documentation on using the class, and it saves a LOT of time for beginners.

It's also too much of a pain (depending on how you view it) to support multiple BlackBerry devices, each running their own OS, at their own resolution and it really helps to be able to develop to a single device.

Other than that, I agree with Anthony.



I have worked on both and i strongly feel that iPhone development is much better than the blackberry development .Even though java is very powerful but still iPhone is much better:

Using iPhone gives

1) nice and clean animation

2) better user experience

3) better app store

4) sensible simulator

5) easy to load and delete apps from simulator+device etc.......


I have done some blackberry development and also i have beginner knowledge of the iphone sdk and platform , first of all blackberry jde is user interface is just crap, you have to use eclipse for sure with blackberry plugin

Documentation of blackberry is limited to only blackberry developer site and some blackberry forums , if you are searching something that is not in these site you are on your own on the other hand apple developer site is great,

Blackberry simulator is nice but sometimes it is killing me with you have to restart it everytime you made changed on your source code ,

One of the biggest disadvantages of blackberry is its api , if you want your app reach more people you have to develop it with lower version of blackberry api like 4.5 , but things you can do with these old api is just limited

Different size of screens on blackberry and creating more attractive user interfaces is just pain.


I will suggest for iPhone application as compared for an application in blackberry.