Thursday, December 3, 2009

BlackBerry development: big things happening

The buzz in mobile development seems to be on other platforms. People outside of the BlackBerry community probably haven't been paying much attention, but there has been some major announcements in the area of BlackBerry development. These announcements, coinciding with the recently concluded BlackBerry Developer Conference, show that RIM is actively responding to its competition on several fronts. RIM's BlackBerry Developer's Blog has been covering these developments faithfully, so go there if you want to read from the official source. Here, I will go over what seem the most significant announcements to me as a developer.

Looking good

A common complaint I've often heard with BlackBerry apps is that they are often not very attractive. Part of the problem lies with the native BB API: the UI elements are fairly minimal and unattractive. I suppose this was fine when we had low-res phones, but this is no longer excusable in the iPhone era. For example, there is no tabbed panel widget, font picker, color picker nor (until OS 5) a way to put icons on a standard menu. It's not impossible to write attractive BB apps, but we could probably use more people who have an eye for attractive UIs. So where would we find such people? Well, many of them happen to be Flash or web developers.

The Adobe/RIM announcement: we can expect to see Adobe's Flash Player 10 and Air to be available for BlackBerries. They also announced integration with Adobe's and RIM's development tools. This brings the Flash development community to the BlackBerry. What about web developers?

The BlackBerry Widget SDK: with BlackBerry Widgets, you develop apps using JavaScript, CSS and HTML. Gears and SQLite provide offline DB/storage facilities. A BlackBerry-specific API is exposed through a blackberry object in JavaScript. With that API, you can access device-specific functionality like filesystem access, PIM, telephony, networking and native UI elements. To me, this sounds suspiciously like the Palm Pre SDK, though RIM has supported browser-based BlackBerry development before the Pre existed. In any case, it seems to me that like Palm, RIM is actively courting the web development community.

The BlackBerry Theme Studio: themes -- which change the overall look of your BlackBerry UI and home screen -- have been around for some time. This announcement is notable in that RIM is now officially backing its own theme building tool. This, along with the upcoming support for downloading themes from RIM's own App World store, suggests that RIM is taking looks seriously.

Keeping an eye on the Apple

Games are not exactly business critical, but they do dominate app sales on both RIM's App World and Apple's App Store. But graphically sophisticated games have been difficult to do without a 3D graphics library like OpenGL, which also implies hardware accelerated graphics. This has been a major iPhone strength over a BlackBerry, so the recent announcement of OpenGL ES support -- in OS 5 shows that RIM decided to close this gap. It looks like the BlackBerry will be a pretty respectable gaming platform in its own right.

Another major iPhone advantage is that it may be the first phone to have a full and truly usable web browser. RIM's own browser as well as third party browsers like Opera Mini and BOLT are adequate but pale in comparison. RIM's recent acquisition of Torch Mobile signals its intention of incorporating the same WebKit web rendering code used in the iPhone's browser. (WebKit is open source code derived from the Linux-based KDE project). OS 5 also reportedly has better JavaScript performance. Better, standards-compliant rendering and JavaScript performance is not only good for the end user's web browsing experience, but essential as the runtime for the BlackBerry Widget SDK.

Java development

Web and Flash development may attract brand new developers to the BlackBerry platform, but my own expertise and love is Java. Fortunately, there are some big things coming up for Java development too:
  • New version of the Java BlackBerry for Eclipse plugin
  • A GUI builder
  • Application hot-swapping in the simulator
I downloaded version 1.1.1 of the Eclipse plugin and tried it out. The online documentation seems to have improved. A significant change is that it is more Eclipse-like now. Previous versions of the plugin had artifacts of the JDE way of doing things: it was not enough to have the usual Eclipse .project and .classpath files, you also had a .BlackBerry/BlackBerry.jdw file covering all the BlackBerry projects in your workspace. This caused confusing dependencies between projects. The new plugin layout uses a separate XML file for each project, ditching the JDW file. Another annoyance of the old plugin was that you had to create a new Eclipse project for each alternate entry point. This is no longer necessary. One glitch that I was surprised to see is that the plugin still has trouble working with Subversion.

The Java development cycle can be unnecessarily slow and tedious. The BB simulator is a wonderful tool, but it starts up slow. This can be especially bad if you are working on the UI: you can't see the result until you build the app and launch it in the simulator, and the tweak/build/test cycle is really slow. The announced GUI builder might be a big help in that you can build the UI visually and sort of see what you will get without going through that whole cycle. But it is the appplication hot-swapping feature that I am most excited about. Starting the simulator is the slowest part of my write/build/test cycle. If I can rebuild and reload the app without rebooting the simulator, this will drastically speed up my development process. Alas, I will have to be patient. Though the new Eclipse plugin comes with the OS 5 simulator, neither the GUI builder nor application hot-swapping seem to be available.

Whew, that is quite a lot of activity in the BlackBerry development space. I for one feel encouraged that RIM is serious about remaining competitive and responding on several fronts at once. There is plenty of potential yet for this platform.


  1. I was very delighted to find this site.I wanted to thank you for this brilliant read!! I definitely enjoyed every little bit of it and I have you bookmarked to check out new stuff you post.

  2. Nice post!… Great collection!

    Keep up the great work!