09-06-2011 08:03 PM
I used the wrong wording, I should have said "not supported" instead of "not included." Sorry about that. I gave the list a quick look before and I could actually only find one 5.0/6.0 item that was not supported in 7.0, and I can't recall which of them it was now. I believe using a non-supported item may be of reasonable concern. If the unsupported item is mapped to a new item, I suppose the behaviour may be unpredictable. If you are really concerned, the best thing to do is compile it in the newest compiler to see the warnings .
Using deprecated methods from the BB APIs are okay to use unless perhaps they are depcrecated because they are buggy or inefficient.
09-07-2011 05:09 AM
That is a relief. I think I will continue with my current practise of developing on one level and testing all later levels.
Thanks once again.
09-07-2011 09:14 PM - edited 09-07-2011 09:15 PM
You might do well, Peter, to read:
Whether you need to make changes to your application or not, it is strongly recommended that you recompile your application using the BlackBerry Java SDK 7.0 tools.
This reaffirms what I have said earlier that it isn't safe to depend on the compilers being forward compatible. The issue seems to have been fixed, but don't depend on users having up to date operating systems.
I would like to make a few more notes on the topic, not in direct response to anything that's been said so far in the thread. I hope I'm not getting off this thread's topic, but these points seem relevant to consider for someone deciding how to build a project, and I don't see these points coming up often in the forum so I'm going to empty my gut here a little bit.
There seems to be predominant attitude among BB developers that it's fine to bundle all device versions into as few releases as possible. I have done this in the past as I was advised, but from a design standpoint, I have learned that this method is bad style. The amount of minor problems that result from bundling produce a major problem collectively.
- Take pride in your application and the BlackBerry brand. Adhere to the developer guidelines for each operating system. Make stunning UIs that are optimized for each device. I'd be willing to bet that most developers using as few releases as possible have applications that meet a minimal UI design and functionality. I'm sorry to say that it seems to almost be a consensus that BB apps are inferior and held back compared to the other platforms. I wonder if BB developers are too focused on producing applications with limitations because they don't want to use a design feature that won't work well simultaneously on all devices. I wonder if developers are focusing on producing applications that are "good enough" and not enough focused on "better than good enough."
- Make your images and graphics high in resolution to suit the needs of the high resolution devices. Don't depend on the operating system to resize the icon. Render the icons with detail so they take full advantage of the screen resolution.
- Avoid bundling resource images or files that are meant for different devices into one COD. A full screen PNG background for the 9810 could be upto 350kb, so bundling those with the 9900, 9850 and 9650 images will make CODs quite large. App World was reported to currently have over 2,000,000 downloads a day. If on average, each COD downloaded had 500kb of images not intended for the recipient device, RIM's servers are delivering 1,000 gb a day of useless data. This also results in the customer paying for unnecessary cell phone charges. How much does 1gb/month via cell phone cost? Lots. How much time and battery life is wasted downloading this useless data over 3G? Lots.
- If you want to make it easier to program with seperate releases, using the Model-View-Controller design method is excellent for isolating view related code from the rest of the code.
Anyways, I hope someone can find use of this advice. If you think I've said anything that's incorrect, I'd appreciate it if I could hear it. However, I think I am going to retire from responding to this thread now.
09-08-2011 04:50 AM
Thanks for these points and I appreciate your input Scott.
I will take the opportunity to respond in this Thread, though to a degree I agree with your points and I also think this will be my last contribution.
Looking at the linked article, I can find your referenced quote, however I wonder if in fact, you have quoted this out of context and thus made it appear a more general requirement than it really is. The paragraph continues with
... Due to an incompatibility between binaries ... For more information, and a full description of the issue, see the Release notes, Known issue 1502196.
Release notes for 1502186 state:
If you created an application (application.cod) which has a dependency (library.cod 1) and loaded application.cod onto a device with a different version of library.cod present (library.cod 2), application.cod ignored the differences between the two versions, and continued to call methods as it would if it were running with library.cod 1 present. (1502196)
So this recommendation is only to make sure your application will run in OS 7.0 and then there is only a problem if your application uses Library cods and you only update the application and not the Library. So this is not really a blanket recommendation to all developers to recompile is it?
Regarding your subsequent points, let me be brief. Everyone chooses to develop based on effort verses reward strategy, and this influences what we do:
- I think everyone will agree that good UI's are difficult to achieve on BlackBerry devices, and there is certainly better facilities to manage this on other platforms. Is it fair to suggest to a BlackBerry developer that they should spend days attempting to do what an Android developer can do by changing the XML for the View?
- Your argument that various image resolutions (screen sizes) requiring different builds is different to this argument. This discussion was about different OS levels requiring different builds. OS 5,0 runs on a number of different devices with widely varying screen resolutions, so your argument suggests that we should do builds for not only every release, but also for every screen resolution within a release.
Thank you once again for your contribution to this Thread. I really appreciate this sentiment:
"Take pride in your application and the BlackBerry brand. "
Amen to that!