Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Java Development

Posts: 76
Registered: ‎07-11-2008
My Device: Z10
My Carrier: SingTel

Follow-up Questions from Webcast: Boost Your Super App Experience

[ Edited ]

Unfortunately, I missed the first half of the presentation. Is it going to be available anywhere afterwards?

Will this webinar be archived somewhere for later access?

Is there any way to repeat the presentation?




What book or sites do you recommend for a new BB developer?

What book or website would you recommend to learn better UI development?

Apart from the resources available on the website, Are there any books which you would suggest for the basic level developers and advanced developers?

See Neil's Blog post on books.


BB development available on VS 2010?

Our BlackBerry Web Plug-in for Visual Studio currently supports Visual Studio 2008, but support for Visual Studio 2010 is on the roadmap.


To keep GPS alive will allow quick GPS acquisition but drains battery quickly. A cold start will take a while to get GPS fix. Is there some way we can have quick GPAS acquisition while conserve battery power?

Follow these guidelines:

•Cold GPS fixes are most intensive
- If your fix interval is greater than your average time to cold fix
- Use an interval less than 10 seconds – keep it hot
- Otherwise, use your original fix interval
• Assisted modes are less intensive
• Geolocation modes are least intensive
• Don’t reset continuously
-When there is no fix available
-Apply some heuristics
• Don’t reset too frequently (<3 minutes) as you might be interrupting a scan in progress

Take a look at the following KB on battery life:


In order for an independent developer to make a "super app" - we need a BIS-B connection, but the costs associated with the alliance package are way out of any independent developers' price range. Are there any plans to make BIS-B connection strings "open" or "free"? and if so, when?
Will RIM ever issue BIS-B connection strings to non-alliance members?

There are definitely plans to make BIS publicly available for developers as a transport, possibly later this year. For now consider using WAP2 transport as an alternative or if you are developing for 5.0 devices, the new Transport API makes it quite simple to find a suitable transport.


I would like to see some step by step instructions from start to finish to develop an application and upload it on the real device and use it?

Check out our Developer Labs and Tutorials.


Does BlackBerry conduct basic level webinars for beginners?

Yes, we try to host webinars to appeal to all kinds of audiences. I recommend you sign up for our developer newsletter so you can be notified in advance when there is a webinar that interests you.


What's the best way to handle images when you have one size for landscape and another for portrait while avoiding too much memory use?

What's the easiest way (i.e. best practices) to handle the different screen sizes. For instance, the 8130 has a tiny screen as well as a different input method (multiple chars per key) from say one of the larger screen apps. Does the screen optimization need to be handle by the developer or does the API's handle it for us?

I want to develop an application which is targeted for devices with different screen sizes & having different OS. What would be the best approach?

There are several options you can work with. Use the Display.getWidth() and Display.getHeight() methods to determine the screen size. Look at our UI Guidelines documentation to determine the display sizes you want to target. Some applications download the correct images resources post-install depending on the device, others will scale down images based on the display size.


Would like to know if it would be possible to programmatically access the Web-Browser history?

This is currently not possible. Please log a Feature Request in the Developer Issue Tracker with a complete use case.


On Latency, while it sounds good to move calculations of dimensions, etc.. out of the Paint method. Are there suggestions to address being able to adapt to changes between Portrait and Landscape mode?

These changes should be handled in sublayout() which is called anytime orientation changes.


Some APIs are not available in previous OS versions are there any workaround we can do in code based on device version where the app is running?

I want to develop an application which is targeted for devices with different screen sizes & having different OS. What would be the best approach?

There are several ways to handle this. Take a look at the following article: http://supportforums.blackberry.com/t5/Java-Development/Develop-applications-for-different-BlackBerr...


Are there suggestions on handling storing concatenation outside of Paint methods, when dynamic data is used (as I think was in the example)?

Try to use(or reuse) StringBuffers for this.


Can we profile using Eclipse ?

Are the Eclipse and JDE profilers the same?

Yes, both tools offer the same functionality as far as profiling is concerned.


Is app world planning on removing the credits system anytime soon? customer apps will not be up-to-date as before.

We appreciate the feedback, we will certainly take this into consideration as we move forward.


What is a good way to get developer support in an expedited manner? Sales and Customer Service couldn't answer the question. Background: I had a set of keys that stopped working and am still waiting after 3 weeks. I finally ordered new keys and it took 12 days to get them.

For signature keys and incident based support you should contact devsupport@rim.com Also check out our support options.


Can u store persistent data on a micro SD?

No PersistentStore only uses flash. For microSD, consider using FileConnection or SQLite.


When using PUSH API, I have to build using JDE 5.0. By doing this my app won't be able to work on OS 4.X devices. However, I cannot build app with PUSH API using JDE 4.X. How can we support PUSH API for OS 4.X devices?

The BlackBerry Push SDK Sample actually manages this quite well using the pre-processor. You can download and try the SDK to try it out.


I would like to add images to my app on compile time according to the OS and the device screen size in order to decrease the size of the app. When a request to download an app is sent from a device can I know the device OS and model to send back the correct *.cod file?

Every device has a unique UserAgent and Profile header which should give your web server the model and OS version.


What is the best data storage option - persistent object or SQLite if my app have 10 screens in total and each screen have say 500 rows?

I am not sure how large each row object is, but you should definitely consider using SQLite for such a scenario.


For the Bluetooth API is there access to RSSI(Received signal strength indication)?

This is currently not available. Please log a Feature Request in the Developer Issue Tracker with a complete use case.


Please let us know some information on the CodeSigning keys... Although I have read from website I would like to hear from you so that I know that I understood correctly?

If you have any further questions with regards to Code Signing Keys, please email devsupport@rim.com


What is inherent latency in tiling an image as opposed to having an image of the proper size?

It is usually cheaper and more efficient to tile an image, rather than load a large image into memory. Check out  the drawTexturedPath() method in the Graphics class as it will automatically tile the image(s) for you.


Concerning streamlining the paint() method. When using graphics.drawBitmap(), does the function do clipping calculations or should I do XYRect.intersect( ScreenRect )? I was worried that checking if the rectangle area is visible would be overhead.

Painting on a large canvas does not mean things will be slow. Setting the clipping rect does not give you extra performance unless you are actually doing less painting because of it. 


What would you recommend for managing the memory when creating VOIP SIP based applications. Are such apps feasible on the current BlackBerry devices?

Due to various constraints, we do not currently support the development of 3rd party VoIP/VoWLAN applications on BlackBerry.  We are investigating this capability for future revisions of our platform.  In the interim, you are free to experiment with the current API set to determine if you are able to develop applications that meet your needs, however, we will not be able to offer development support for applications in this area until future revisions of our platform.


Is there any way to compress the data before sending it to the blackberry from the server and then to uncompress the data to display in a bb program?

Take a look at the net.rim.device.api.compress package.


In eclipse sometimes I saw lot of undocumented APIs while auto-completing them. Will these be documented sometime in the future?

You should generally avoid using undocumented methods, as these are usually experimental and may be removed in later JDE version. Log them in the Developer Issue Tracker so they can be properly documented and supported.


Any idea on how to implement picture viewer type application?

Take a look at the PictureScrollFieldDemo in the JDE.


Is there any way to reboot the BlackBerry device from third party application? I saw APP world can do it.

There is no API to force a reboot on the device. There is an API within CodeModuelManager to promptforResetIfRequired() which is used by App World and other applications after a cod module is updated.


How to stop a network thread running in background?

I am unclear on the question here. Take a look at any sample that uses a background thread.


Why is programmatically resizing an image better then resize it before hand?

The idea is to crop your images down as much as possible down to the actual content of the image to optimize memory use. It is always cheaper to add additional padding and background to an image programmatically, rather than use large images that are created to perfectly fit the screen and take up more memory than needed.


Do we have a complete documentation of UI core components (Screen, Manager, Field, etc) including best practices, optimizations, limitations, etc? If so, please kindly share with us.

There are some great resources, guidelines and tutorials on our Getting Started page.


Graphics library for *pre OS 5.0* you would recommend? (just heard you touched on this)

Super apps need super GUI too. With the newer BB OS (4.6 and later) it's easier to create nice UIs but is there (or is there any plan from RIM to release) an UI library that allows the creation of truly rich user interfaces on older BlackBerry devices too - in a write once "looks good on every BlackBerry" way? - most of the components from the "small screens big designs" presentation seem to work only from 4.6 and up...

Check out our article on advanced UI elements that work as far back as 4.2.1


Any student portals for college students?

Take a look at our BlackBerry Academic Program and resources.


Is it possible for my application to upgrade itself while it is still running?

Yes, however, a reboot will be required for your new module to start executing.


Difference between pushmodalscreen and normal pushscreen?

pushModalScreen is typically used for dialogs and is discouraged as they interrupt the normal operation of the device by pushing the modal screen on top of the display stack.


Pointer >> About the PersistentStore being deleted on an uninstall - The store does not get deleted if it contains primitive data types. Smiley Sad

The recommendation is to use a unique package structure. See the following article.


What is the difference between paint and layout? What is the best way to use each?

Implement layout() to specify the arrangement of field data. The manager of the field invokes layout() to determine how the field arranges its contents in the available space. Perform the most complex calculations in layout() instead of in paint(). The manager of a field invokes paint() to redraw the field when an area of the field is marked as invalid. Refer to our UI and Navigation Guidelines for more details.


On deleting any object from the device, does it deletes from device memory or from persistent storage?

Unreferenced objects are removed and cleaned from device memory by the garbage collector.


Can we use LMM to specify what to delete first in the application's persistent store in case of memory shortage?

Yes, The LMM uses different priority requests which indicate how badly the system requires memory, and your application can scrub information accordingly based on the priority.


Can BES Server push application without device reboot?

Depends on the application. If an application is already running on the user's device (or any autorun application), then the device needs to be rebooted and will prompt the user 5 times before it forces the reboot.


Does the packet processing at BES could prove to be overhead in case of sending small packets?

The encryption overhead is quite minimal and we haven’t seen any issues with sending small packets.

BlackBerry Development Advisor