packaging distractions

June 21, 2008

Research In Motion have progressively improved and enriched the BlackBerry Java API, and have done quite a good job of maintaining backwards compatibility between versions. Unfortunately there are aspects of the 4.2 and 4.3 API that are quite attractive. These range from little things like being able to re-size a JPG image, to accessing the wifi hardware to enable seamless wifi switching.

The downside of this is that it is necessary to build a different version of the application for each version of the API, as it is undesirable to limit the use of tiggit mail to those users with the latest hardware. To workaround this problem I have created an API abstraction layer that wraps the various version specific API calls and provides stubs where the underlying API does not support them.

This in itself is un-remarkable, and it is almost straight forward to build three different packages. However the bit that you don’t expect is that the packaging cannot be the same for older versions of the hardware. 

I am still battling on, working through the subtle differences between setting up over-the-air and webloader installers for a 7220 and a 8320. Sadly one or two tiggit mail users have been stuck in the upgrade process with installers that just don’t work. 

It is a rainy day in London (again) so I guess I will have time to make some progress on this.

Sunday night: I have finally finished scripting the build and upload process and it appears to work (as far as I can tell) for all versions. I have tested the over the air install, but the webloader will have to wait until tomorrow. I am beginning to think that building ALX files will be easier than using the webloader, although for the end user I can’t help thinking that the webloader is a cleaner experience.