Android development vs. Blackberry Development

Apr 11, 2009 by

I was contemplating quite a lot about the title for this post. Originally I wanted to give it the title of “Why developing for Blackberry sucks” but then I thought it might be too harsh and does not really reflect the content of the post which is about comparing the experience of developing for Android and experience of developing for Blackberry and settled for the current title. There were other titles revolving in my head, but all of them were just variations of  the original “why developing for Blackberry sucks”

I have been developing for Android for some time and lately I have been working on developing for Blackberry and I must say development for Android wins hands down in all aspects. Many times, especially frustrated with Blackberry buggy IDE or other cumbersome experience I wanted to write this post, but I had to find the time for it.

So what is so bad about Blackberry development? It starts at the very basics – development environment. Google has developed a very nice plugin for Eclipse which works very well and even has the basics of support for visual editing of user iterface screens. RIM – the company behind Blackberry for a long time had their own development environment – JDE. Written using basic SWING components, there’s no need to mention how bare boned and outdated it looked. They have recently introduced Eclipse plugin as well, but it is pretty buggy and half baked. It is hundreds times better than the first version of the plugin, but it is still from being stable and feature rich.

Then we have the emulators – gosh, why do I have to restart the emulator everytime I want to test a new build? It can take up to a few minutes to restart the emulators for the more advanced models. To feel the pain, just imagine the nightmare of programming the UI for Blackberry in that setup. And no, there is no visual helper that can show the layout quickly, not to mention visual builder.

The compiler, or more exactly the packager – “rapc” has many times weird problems and behaves like a whiny child with lots of attitude problems. Same goes for the MDS server emulator.

Compared to Android, this can be nightmare. Yes I’ve had some issues and observed buggy behavior with aapt while developing for Android, but it was quite easy to resolve. For the UI part of the development, Android beats Blackberry as well. Constructing layout using XML is much easier than writing actual Java code. (Apple had actually went one step furthergiving the developers visual tools.)

Localization is much easier in Android as well. Besides conceptually being easy, the support of the Eclipse plugin for localization is half baked and buggy and what’s most important, it is not that easy to find documentation on how to implement localization for Blackberry in Eclipse.

The last but not the least (and in fact probably most important) is the vibrant, enthusiastic and active community of the Android platform. It is so much easier to find answers to any problems you have while developing for Android. I was a little considered about Android being all open source in a sense that there is no central authority with central responsibility for certain things, and Blackberry has all this and it turns out that what many enthusiasts can do, easily outweighs any size company organized or not.

Related posts:

  1. Android vs. iPhone vs. BlackBerry Users
  2. BlackBerry Eclipse plugin 1.1 will fix some of the annoying problems
  3. BlackBerry development with Eclipse plugin – fixing corrupted *.jdp file
  4. Is RIM going down?
  5. iOS vs. Android vs. BlackBerry vs. Windows Phones

  • Pingback: AndroidZ.info Android Mobile from A to Z » Blog Archive » OVI store to have 20.000 applications on day one?!

  • Pingback: AndroidZ.info Android Mobile from A to Z » Blog Archive » Playing with Palm Pre – an early look SDK access

  • anonymous

    I feel your pain.. developing a gui that doesn’t look like complete garbage and consists of anything more complicated than a list of checkboxes takes an enormous amount of time and exposes so many quirks in the way fields are rendered it is beyond painful…

  • anonymous

    I feel your pain.. developing a gui that doesn’t look like complete garbage and consists of anything more complicated than a list of checkboxes takes an enormous amount of time and exposes so many quirks in the way fields are rendered it is beyond painful…

  • Igor G.

    I agree with the author of this article. I’ve been playing around with BlackBerry development for almost a week now, and am considering abandoning it in favor of Android development. Here are just few reasons:
    1) Almost no support for BB JDE plugin for Eclipse 3.5
    2) Very difficult to get JDE working in a Linux environment
    3) Don’t want to run a Windows VM solely for BB development. I’d much rather stay in my native Linux OS

    … And all of this from a guy who is merely a beginner in BB development. I can’t imagine the headaches one would have to transcend to become an expert in BB development.

  • Igor G.

    I agree with the author of this article. I’ve been playing around with BlackBerry development for almost a week now, and am considering abandoning it in favor of Android development. Here are just few reasons:
    1) Almost no support for BB JDE plugin for Eclipse 3.5
    2) Very difficult to get JDE working in a Linux environment
    3) Don’t want to run a Windows VM solely for BB development. I’d much rather stay in my native Linux OS

    … And all of this from a guy who is merely a beginner in BB development. I can’t imagine the headaches one would have to transcend to become an expert in BB development.

  • http://www.phonefreelancer.com/ android developer

    In my opinion, the Android is in position to directly compete with the iPhone. With the nexus one coming out early 2010. And their updated app store rumors, Google is doing things right.

  • http://www.phonefreelancer.com android developer

    In my opinion, the Android is in position to directly compete with the iPhone. With the nexus one coming out early 2010. And their updated app store rumors, Google is doing things right.

  • http://www.inteism.com/ inteist

    @Igor – 3.5 is supported already (although 1.1 plugin is in beta).
    64bit OSes are NOT supported however. As simple thing as adding a JAR library to your project can not be done in Eclipse (I tried – spent couple days trying – no joy…)

    @android developer
    Yeah – Nexus one should be a great phone, but it will not be an iPhone killer… Android won’t be an iPhone killer at least not yet…

    There is a good post I just posted today here:
    http://blog.androidz.info/2010/01/who-will-rule-the-mobile-market-in-5-years/
    check it out :)

  • http://www.inteism.com inteist

    @Igor – 3.5 is supported already (although 1.1 plugin is in beta).
    64bit OSes are NOT supported however. As simple thing as adding a JAR library to your project can not be done in Eclipse (I tried – spent couple days trying – no joy…)

    @android developer
    Yeah – Nexus one should be a great phone, but it will not be an iPhone killer… Android won’t be an iPhone killer at least not yet…

    There is a good post I just posted today here:
    http://blog.androidz.info/2010/01/who-will-rule-the-mobile-market-in-5-years/
    check it out :)

  • Ian

    Actually, I have been trying to learn Android development, but I have had absolutely no luck. Perhaps I don't grasp the entire development paradigm, or perhaps the development environment and tools for authoring really suck big weenies.

    I have been developing for more than 2 decades, and I am experienced and fluent in more than 50 languages and platforms… but I have to admit, this sucker has me stumped. Is there a magic pill somewhere that will empower me to learn Android development? …or perhaps someone, somewhere, has a nice drag and drop RAD environment ready to go.

    I will keep trying to muscle through it, but it just doesn't look too promising. :-(
    If any hot-shot developers care to teach this old dog new tricks, I would be eternally grateful… and I will definitely make it worth your time.

  • inteist

    Hey Ian, there is no drag and drop tool for UI development for Android at the moment but I hear that such tool is being developed and we would eventually have it.

    Android ecosystem is very lively with a lot of web presence in a form of forums, tutorials, discussion boards etc…

    The best place to start would be the http://developer.android.com :) good luck!

  • http://cleverua.com/ Vit

    Well, I have live development experience for both BB and Android and would not say Android is easier than BB. Both have their good and bad sides. But for now I see that BB is simplier for development than Android. An example – on BB I am able to create a Screen and to fully control its lifecycle while on Android it's the OS who controls Activity lifecycle. Yes, I understand why Android acts like that – it tries to optimize RAM usage to provide better user experience, but the price for that is much more complicated work for developers. And because of that the development process takes upto several times longer (unleses you write buggy app that will work Ok in ideal emulator environment only).

  • http://www.inteism.com/ inteist

    Hi Vit, thanks for the insightful comment. First, I agree with you completely that both nave their good and bad traits. Some things can be done more efficiently and are easier to achieve on BB. This post is mostly however about buggy tools and inconvenience of the development process as the process.

    Can you also please clarify what you mean when you say that it is much more complicated to deal with life cycle control.

  • http://cleverua.com/ Vit

    Thanks for quick feedback, inteist.

    Ok. Imagine such a case: a user is on some sort of “new user Activity”. User should input its login/pass and press “Register” button. On the button press we need to send a post request to a remote server that actually will create a new user in its DB. Based on the got responce from the server we need to inform the user about the result (success or failure (failure details)).

    On BB the algorithm is pretty simple:
    * push a non-cancellable by user progress popup screen “Processing…”;
    * do the main job (send request/parse the response) under the popup;
    * close the progress popup;
    * display a cancellable by user popup with result message.

    While doing this we are on the same Screen. It can not be killed by OS. Nothing can break the workflow. That's why it's simple.

    On Android things change. Activity may be killed by OS (1) on configuration changes (that's how they call device orientation changes and hardware keyboard open/close actions) or (2) if Activity is not the one the user currenly works with (for instance, an incoming phone call puts your Activity in background, so it may be killed by OS (and life proves it really does)).

    So, backing to the example, I still can not figure out what approach/algorithm should I use to produce bugless code. Android documentation says there's AsyncTask class that is a solution and there's a usage example of it – http://code.google.com/p/shelves/source/browse/… (note that UserTask class, it was then renamed to AsyncTask). They start the task, cancel on configuration changes and restore it again on Activity restore. But wait a minute, by the second rerun of the task the remote server could already have processed the request and created a user, so on task restore the user may get error message “username is already in use”! They cancel the task, because how to show a popup/dialog if there's no underlying Activity? So, on Android's Activity we should “syncronize” our actions (such as background task threads) with Activity lifecycle bearing in mind that users at any time may cause Activity to be destroyed. That's not easy. I would even say more – it's painful.

    Probably there's some solution I'm just not aware of yet. If you could point me into the right direction I would be very happy. :)

  • http://www.inteism.com/ inteist

    Hi Vit

    Allow me to disagree with you that everything is so simple on BB. The scenario that you are describing could easily occur on BB as well I think.

    - The user starts registration (sign up) process, the request is sent to the server and user looses connectivity and never gets a response from the server. Although on the server the request was processed and user was registered.
    - Even with modal “Processing” dialog you can not prevent the user from restarting his phone via battery pull, or it can shut down since battery died, or it can shut down because the user dropped it etc, etc…

    So to summarize, I think this problem is equally relevant to BB and most likely to any other client in this scenario (think of a web browser that looses connectivity just as BB did in my example).

    So never mind on which platform you are working you will have this very problem.

    Regarding Android and its life cycle management.
    http://developer.android.com/guide/topics/funda…
    Yes it is somewhat confusing since there are 7 notification methods any activity can receive, and with great power comes greater responsibility. Most of those methods however are to allow the developer to fail gracefully due to the system reclaiming resources or user interrupting the activity as you rightfully noted. The only overhead I see with it is that you are responsible to save the state of your application if the user leaves it for some reason because the system can kill the activity and then it will have to be started from scratch. I am with you on this, but to get a better system I guess you have to sacrifice something.

    I hope I got what you were saying ;)
    The question that you raised is quite interesting and I will devote more thought to it… It would be probably interesting subject to do more research and write about.

  • J.Lennov

    What about localization, there are interesting service http://crowdin.net
    to a large extent makes the process of localizing the same for both platforms

  • http://www.inteism.com/ inteist

    That's quite an interesting tool!

  • FKenFord

    I'm a professional C++ programmer and a Java hobbyist. I found developing for BlackBerry using JDE to be pretty straightforward.
    I've been trying to get into Android development and I have to say within a week I've given up on Eclipse. Maybe it's the “Java” way to go, but I find it so non-intuitive as to be frustrating at best, and exquisitely painful at worst.
    I don't seem to have a lot of trouble developing for BB, using JDE, etc. — sure, the start times for the emulator are painful. But I gotta say that trying to do anything in Eclipse made me crazy.
    I'm back to developing Android using command line tools, which is not optimal, but which will keep me sane longer ;-)

  • http://www.inteism.com/ inteist

    While this article is a little old, most of it still applies.

    Too bad you think this way about Eclipse. Eclise is a great development tool. Like any tool, however, there's learning curve to it. I am sure you would benefit from knowing your way around Eclipse as it has plugins for all the major languages and development environments.

    JDE is on its way out by the way and while you can still use it and it is perfectly fine if that's what suits you. Just know that you are missing a lot.

  • Jacki

    Agree, developping for BB is a real pain. Everything sucks, from IDE to support.

  • CDSmith

    Amen. I am confused as to how a huge company company like RIM cannot provide adequate tools, let alone information to help others develop applications for their devices. If this course does not change soon, Android will eventually eclipse this Blackberry in the market place. The only big advantage that RIM has over their competitors is their push email technology.

  • Aru Arun Dev

    ok mate, i have to agree with this article even today, blackberry development sucks. Still they haven’t got their s888t together. i Rate symbian development above blackberry development, even though symbian development is hard, you can trust the API will do what the documentation says, but with blackberry this is not the case.

  • jacymose

    The good things about the Android are:
    - Run Multiple Apps at the Same Time.
    - Information Visible on Your Home Screen.
    - Lets You Install Custom ROMs and many more..

    blackberry wholesale

  • Brusmartin Martin

    Hey,I am developer for both BB and Android and
    would not say Android is easier than BB. Both have their good and bad
    sides. But for now I see that BB is simplier for development than
    Android. 
    Blackberry developers

  • Private1

    I will agree 110%, that Android Development is much simpler than Blackberry development. I’ve done extensive work on both and for me what really sucks in BB development is the Simulator. Honestly, there have been times where I’d load a .COD file and then just go watch TV because it’s sooooo slow. Also, as mentioned, I can’t find any good samples that actually work. Even some of the templates that come installed w/the BB Eclipse Plugin don’t work… How the hell does that get past QA. Moreover, their developer website is a total unorganized mess. I was really hoping to play w/BB WebWorks, JQuery and HTML5 using the Visual Studio plug-in, but after issues with the 300Mb + Simulator, I just decided it’s not worth the time. I suspect the company won’t last past 2020. Blackberry is the next Palm, except I don’t think HP will buy them…

    • http://www.inteism.com/ inteist

      Thank you for the insightful comment. I do agree with most of what you say :)
      This post is rather old and the situation has vastly improved since then, but BB development is still very painful. 

  • Bla

    I have developed Android and BB too. I really hate BB 5.0 and I don’t even accept to do for 4.7, because of the stupid networking. Not sure why, but all our customers want iPhone, than Android, if you can1t make iPhone than they give for others who can make that client too. So I have decided to buy a Mac, and learn the most expensieve toys programming.
    Now I see the BB doesn’t have simulators for MAC, isn’t platform independent , just windows… so it is a good reason for me to not waste again a Retail Windows licens to be BB compatible…

    When I was on windows the most hated thigs at BB were:
    - ultraslow startup / restart. Each deployment I will get around 200-700 mail
    - no stack trace, no filtering of messages
    - no GUI designer

    Right now if it isn’t payed the BB as 3x of Android hour rate I am not whiling to suck it