12-05-2011 10:52 PM
This is what I thought, but our app cannot even be installed on a 7.0 device when compiled with the 7.1 sdk WITHOUT changes of any code of our project that was originally developed with 7.0 sdk. One would expect a runtime crash instead if the developer forgot to use proper reflection. No wonder why RIM is trashing their OS and scraping QNX in.
smiley is correct. Your project accesses libraries that have been updated in 7.1. Even though you haven't changed your implementation of these libraries in your code, your project is effectively accessing different libraries when you use the 7.1 compiler. This the way BB OS has normally functioned with previous API releases. This behaviour is nothing that's particularly strange for a Java API.
12-06-2011 02:24 AM
I guess what I was looking for is a BlackBerry equivalent of the various Java compatibility methods found on Android (such as lazy loading, reflection etc., see http://android-developers.blogspot.com/2010/07/how
12-06-2011 03:56 AM
On BB my guess is that we are left with: •either maintaining separate packages for different OS versions in App World (this means the company always needs a blackberry developer to keep up with new OS releases and compiling for them) •or compiling with the SDK of the minimum supported OS version and then hoping for upwards compatibility (this approach is imho broken because i saw 5.0 apps working weirdly on 6.0 and 7.0 devices)
I think what most BB devs do is at least check to see if releases built on previous compilers run on the newly released devices. So, you're right, compiling once on an old compiler is no 100% guarantee for future functionality. I'm not an Android dev but I would assume that this is what has to happen on that platform too to some extent, because there must be new display resolutions being released constantly. Lazy loading and reflection would be pretty nice to have though on BB.
In general I have found that BB has been pretty good with backwards compatibility. I have counted four instances since 4.6 where there was an OS release that wasn't backwards compatible in some way. Two of them were as a result of minor bugs, and the other two were because they added a function and changed the way the OS actually behaved. But overall I have found BB OS not to cause very few snags with backwards compatibility. But yes, if you want to maintain a BB app you'll probably have to keep an eye on new device and OS releases to be on the safe side.