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.

tripped up by packaging

June 16, 2008

Sorry to everyone that has had a bad experience with downloading tiggit mail 0.1.48 today. Here is some kind of an explanation: I have changed the packaging of tiggit mail so that it consists of a core application (multiMail.cod) and a supporting library (tiggitVersionWrapper.cod).

The reason for this is to allow me to use classes and methods that are only available in later versions of the API, whilst providing an application that works on older handheld models. The newer features are wrapped and stubbed within the old API so that there can be one consistent core code base.

Anyhow, to cut a long story short, I misunderstood the way that the rapc compiler works and posted versions of tiggit mail that all relied on tiggitVersionWrapper42 which was only available within the Curve  download.

This is now fixed, and I have just tested that all the download links work. The only difference at the moment is that 8000 series handhelds and later can resize images when they are attached to an email. So, if you receive an email with a jpg attached on your Curve you can click to make it fit to the height of the screen. This does not work on a 7000 series device.

This is a foundation on which the wireless API will be used in future versions.

Once again, sorry if you have been frustrated by poor downloads today, and particularly the typing error in the weblink.