KBLauncher is an app that I have been wanting to write for a long time. I have a personal policy of writing only apps that I would want on my own BlackBerry. KBLauncher is an app launcher/switcher that gets its inspiration from a number of familiar desktop applications, such as Bash, ENSO and the IDEA/Eclipse class name lookup. It addresses the too-many-apps problem in a way that I find both efficient and intuitive.
How did testing go?
I had a good time with the beta. The BlackBerry platform is blessed with an enthusiastic community of users. I posted on the forums at CrackBerryADDICTED and CrackBerry (no, I don't think they are related), and got great feedback from some enthusiastic users. Their enthusiasm was infectious, encouraging me to continue working late into the night. Interestingly enough, the beta program was also covered by some Spanish-language web sites like miblackberry.com. I never got feedback from them though.
The beta program had its limitations. Since participation was entirely by unpaid volunteers (though I later "paid" them with free copies of KBLauncher), I kept my expectations in check. As it turns out, the beta participants were wonderful and did catch a few good bugs. The problem was not in the participants themselves but in the demographics: because they were savvy BlackBerry users, they knew their way around and had up-to-date operating systems and relatively recent phones.
The reality check came shortly after release when I received a tech support request from a user with a BlackBerry 7130. This model did not even have a trackball nor the standard menu button. I naively thought that all OS 4.2 platforms were similar, like my Curve 8320. As it turns out, there were significant (for me, at least) API differences going from OS 4.2.0 to 4.2.1 to 4.2.2 (my Curve). Sadly, I had to bump up the OS version requirements for KBLauncher. As for that user with the 7130, I provided a custom version of KBLauncher that generally works, but is not pretty.
How about localization?
Looking at the BlackBerryItalia review, it was both fascinating and sobering to see many of the apps in the screenshots with Italian labels, mixed with English labels. Having worked in the translation software industry for some years, I fully appreciate the benefits of localization for an international audience. However, I reluctantly decided that I can only pursue a single-language product. While it is probably feasible to have the basic KBLauncher strings and product promo material translated, that is only the beginning. Publishing on most app stores imply an obligation to provide technical support. And while machine translation portals like Google Translate can give me the gist of a tech support request in Italian, I would become a laughingstock were I to attempt respond using machine translation.
I did attempt some form of localization support by using the localized name for each app. This is why the Italian screenshots showed Italian names. Each ApplicationDescriptor object has a getLocalizedName() method that would return an appropriate string for internationalized applications. Unfortunately, there were two problems:
- getLocalizedName() was slow. Not too slow individually, but to scan all apps at startup was prohibitively slow on my Curve. I had to do some optimization.
- on OS 4.6.0, there appears to be a bug where calling this method would result in a ControlledAccessException. KBLauncher does not attempt to use this method on OS 4.6.0. Unfortunately, this includes the very popular Bold.
While I appreciate the short-term boost in sales from the blog coverage, I don't expect to get rich on this. Beyond that, all I will say is that financial matters will remain a private matter. Sorry.
KBLauncher is now in BlackBerry App World's approval queue. Hopefully, it will be approved within the next week or two. App World tends to generate superior sales volume, even in the absence of promotions.
While KBLauncher's users have been quite enthusiastic, they have also been eager to point out its shortcomings. I have a long list of enhancements that I want to make, as well as a couple of fun ideas to throw in. There are too many possibilities to make into just one release, so I expect that KBLauncher will continue to be enhanced for a while. Thanks to the friendly BlackBerry community, I am looking forward to this.