Article summary
We have just finished two BlackBerry apps, one native and one using Rhodes Mobile. In the course of creating these apps, we have developed some processes to improve both the speed of development and the quality of the resulting product – especially when porting from Android.[1]
Despite the improvements, the BlackBerry platform and development environment have limitations that make BlackBerry development more expensive than a corresponding Android or iPhone app. Vision Mobile found that it takes twice as long for a developer to master the BlackBerry platform than it does to master the Android platform. In addition, they found that about 50% of BlackBerry developers reported that “Development is quirky or time-consuming” and that it is “Difficult to create great UIs.” In contrast, less than 20% of iPhone developers and less than 40% of Android developers expressed the same concerns. Furthermore, BlackBerry’s new tablet uses QNX instead of BlackBerry OS 6.0 which increases the time and effort needed to cover the BlackBerry market.
BlackBerry owners download much less than iPhone and Android owners. Ovum estimates that, despite its relatively small market share, 67% of all smartphone app downloads are for the iPhone. In contrast, they predict that by 2015 only 17% of all app downloads will be for BlackBerry. Nielson found that the average iPhone user has 40 apps installed, the average Android user has 25 apps installed, and the average BlackBerry user has only 14 apps installed.
This lower demand reflects both the lack of apps in BlackBerry’s App World and culture differences between BlackBerry and other smart phone users. In an interview with Digital Trends, research analyst and mobility expert Tim Doherty observes that “RIM’s heritage is in enterprise background, and the app phenomenon has come from consumer side … but this is changing.” In that same interview Carmi Levy said she “believes that the BlackBerry App World needs ‘a complete rethink’ to make it easier for users to find relevant software: ‘As it is, even the most basic search amounts to a needle in a haystack type of affair, and it often ends with the user leaving empty-handed – contrast this with Apple’s and Google’s online stores, which make it easy to find new and existing titles alike.’” The higher cost combined with the lower demand means that each development dollar spent on an BlackBerry app produces much less value than dollars spent on Android or iPhone development.
This document discusses the limitations of BlackBerry development and the potential benefits of developing a single mobile web site over developing three (or more) separate native apps.
Windows Only
First, the BlackBerry simulator runs on Windows only. This leaves those who develop best on other platforms two choices:
- Use Windows for the BlackBerry project. Although we can use Windows efficiently, most of use are even more efficient when using Mac or Linux.
- Write the code on the Mac, but run the simulator on Windows. Doing so requires us to push the
.cod
file to the Windows machine and restart the BlackBerry simulator after every compile. This takes tens of seconds, which add up to a non-trivial amount of money over the course of a project. (Vision Mobile reports that over 60% of BlackBerry developers are concerned about the start time of the simulator.)
Primitive API
The BlackBerry JVM is based on Java ME, which provides a very limited subset of the standard Java SE API. In addition, BlackBerry code must be compiled at the Java 1.3 level. This means that developers cannot utilize any of the improvements made to Java since 2002, including generics, autoboxing, reflection, and annotations. Common utilities such as java.util.ArrayList
and java.util.HashMap
are also not available.
The lack of autoboxing visually clutters the code and makes it more tedious and time consuming to write. The lack of generics requires developers to explicitly cast data retrieved from data structures such as Vector
and Hashtable
. As with autoboxing, these casts add visual clutter and are tedious to write. In addition, the resulting code is more prone to errors because incorrect casts can only be detected at run time.
The lack of annotations prevents us from using the Guice
dependency injection framework. Although it is not difficult to create “factory” classes for object instantiation, they can be tedious and time-consuming to maintain. We prefer using Guice.
Clumsy API
The BlackBerry API has fewer, less sophisticated components than Android or iPhone. This lack of components leaves the customer two undesirable choices:
- Accept an interface that looks less polished than the corresponding Android or iPhone application, or
- spend extra money paying for the development of custom components.
The second option is particularly expensive because (in our opinion) the BlackBerry API is not as well documented as the Android and iPhone APIs. In our experience, many BlackBerry components did not behave as the documentation led us to believe they would. The BlackBerry Development Forum has many examples of developers who have solved problems by implementing subclasses of BlackBerry components. We strongly prefer composition-based design to inheritance-based design because inheritance-based designs can be fragile and difficult to test. In particular, inheritance-based designs are especially fragile when inheriting from poorly documented classes.[2]
The clumsy API requires more compile-execute cycles to get the app to look good. These extra cycles are particularly expensive given the need to restart the simulator.
Conclusion
The slower, more expensive development process combined with the lower “marketing” value of the completed app means that, in most cases, a BlackBerry app delivers less value per development dollar than a similarly featured iPhone or Android app.
We get the impression that, even though the value of a BlackBerry app is relatively low, businesses developing a mobile presence hesitate to alienate their BlackBerry using customers. We recommend that businesses seriously consider building a mobile web site instead of a set of native apps. The majority of apps we have built and used could have just effectively been developed as mobile web pages. Mobile web pages look just as good and are no more difficult to develop than a native app, but are more easily maintained and ported. Thus, instead of spending $85,000 on three mobile apps ($25,000 each for iPhone and Android, and $35,000 for BlackBerry), a company could spend $50,000 ($25,000 for the first mobile web page and $12,500 each to port it to the other two platforms). Consequently, the business covers all three major platforms, and saves money.
Our goal is not to simply do whatever the customer asks; but to help him or her discover the best and most cost effective solution. In most cases, we believe that a native BlackBerry app is not the best solution; however, in the rare case that it is, we are ready and well-prepared to help.
2 We speculate that the BlackBerry API was originally designed for internal use only. As an internal library, the risks of inheritance-based design and the costs of minimal documentation can be more easily managed. (However, we still prefer composition-based design and good documentation – even for internal projects.)
Very nice article as it covers blackberry limitations. I too have faced same challenges in terms of developing blackberry apps.
Thanks for writing this post, it validates my experience over the past 10 months working on the platform. It’s reassuring to know I’m not alone. Interesting speculation about the API being for internal use only, that would explain a lot.
Considering the new BB webkit browser is html 5 compliant and utilizes flash; mobile apps is something that the RIM wants devs to use. However native java, and adobe air/flash apps for the tablet are available and are first class citizens. Andrioid has its own java quirkyness and iphone is a silo
Ouch, windows on dev tools _still_!? I worked there 5 years ago and I suppose it’s not shocking they have yet to get with the times… Well, I mean if they were to get with the times they would probably ditch their disaster-of-a-code-base OS and app-layer too… but hey, baby steps. Lose the windows req, dudes.
> BlackBerry simulator runs on Windows only
Well, this certainly captures more developers than iPhone, whose development tools are Mac-only in their entirety.
> I mean if they were to get with the times they would probably ditch their disaster-of-a-code-base OS
Have they not? I thought that BlackBerry was moving to QNX as the OS. That is a fantastic move but it may already be too late.
If I remember correctly, QNX is for the tablet only.
[…] The Cost of Building BlackBerry Apps (spin.atomicobject.com) […]
[…] was my first experience of publishing on a Blackberry platform. Previously I had been scared off by horror stories of the pain […]
Thanks for sharing great information regarding cost building blackberry application. Many times i need to hire blackberry developer to develop applications now I can able to affordable price for application development process.