BlackBerry 10 NDK – Managing Device Target Updates

Native SDK Development

In my last blog post I talked about using the update manager for downloading target OS releases. The main intent of these target OS releases is to allow you as a developer to get the necessary target libraries for debugging purposes. Our fantastic BlackBerry 10 software is going out to multiple carriers all over the world. In order to satisfy the needs of our carriers and to address issues as they come up, we will be regularly building and releasing new device target updates. Note that, though there are minor tweaks being made for different carriers based on their acceptance, the Core OS and SDK remain the same, so your app should behave the same on all accepted builds. You do not need to keep downloading these target updates, except for when you need to debug on a device running a version of software that is different from what’s running via your IDE.

Our rationale for providing these target OS updates to our developer community is twofold. First, we want to provide you with the ability to debug your apps on the latest OS targets that you download on your Dev Alpha devices. These debug targets contain the new symbol tables that will allow you to line up the target with the IDE. Second, as we release production devices, we expect that many of our developers will be purchasing this production hardware for development and testing purposes. We plan on making the latest libraries available for our production devices so you can debug and test your apps. You can use the IDE’s built-in update manager to get these targets.

The purpose of this blog post is to explain and clarify how the update mechanism will work for both Dev Alpha testing devices and production devices. I’ll assume you are already familiar with the update manager. If not, I urge you to read my previous blog post prior to reading this one.

First, let’s start with the simple case of updating the target OS for the BlackBerry Dev Alpha testing devices. To keep things simple, we will only provide the latest and most recent target OS update for these devices so you will only find one dev alpha update at a given point in time via the update manager. So as an example, let’s say 10.0.9.2318 is the latest version of software you can download for our Dev Alpha test devices through our update manager. Once we release the next target OS, we will remove 10.0.9.2318 and place the new one on the update server. We will also add the Dev Alpha keyword in the update site target string to clearly indicate that this is a Dev Alpha load. When you bring up your update manager UI, you will see the new build tagged with the ‘Dev Alpha’ keyword as shown below. Note that 2318 is no longer available through the update site now that we have refreshed it with a newer version.

TITLE_IMAGE

I hope you found that straightforward, since on production hardware things get a little more complicated – though we are trying our very best to simplify this. As we release the different revisions of BlackBerry 10 production hardware, you will see multiple versions of production software based on device type and carrier. Once again, I should reiterate that from an API perspective this software is identical, and there should be no difference in app behavior between these various versions. These versions are only there so if you have a device from a carrier with that build number on it, you can match up your debugging target with it to perform on device debugging. The way you find your build number is by accessing the Settings screen (slide down gesture from the top bezel), and once you get in to this screen you select the About menu. Once you click on this, you will see a screen that provides various pieces of information about your device such as Model Name, Number, OS Version etc. The field you are interested in is OS Version. You should see something like the following under OS version. In the figure, the OS version is 10.0.10.401:

If you now go to the update manager, you should find a version of software that you can update to that matches your OS version. For target OS updates that correspond to production hardware, we will not have the Dev Alpha keyword in the update string, so you will just see BlackBerry 10 Native SDK 10.0.10.401.

Last but not least, if you are developing using the simulator, you can find the latest version of the simulator on our native site. We will also be providing earlier revisions of our simulator on our site in case you need to acquire a previous copy. Once you have the simulator, you can get an updated target for it via the IDE by using the same mechanism as described above. You can determine your simulator build in two ways. First, when you see the simulator download on our developer site, it will also specify the simulator version you are downloading – for example, it is 10.0.10.261 in the example below:

You can also determine your simulator build using the swipe down gesture to access the Settings screen, similar to how you would do this on the device as described above. Once you know your simulator version, you can download the appropriate target libraries using the update manager. In this case, it’s the Dev Alpha build 10.0.10.261.

My hope is that this clarifies things for you and makes it easy to keep up with target OS’s. One thing I need to reiterate though is that you don’t have to keep downloading newer device side updates. Our APIs are complete and other than a few minor exceptions, we don’t plan on adding in new APIs. More importantly, though, backwards compatibility is being enforced – if your app works as of our Gold 10.0 SDK, you should be fine. We are making sure that the new targets don’t break backwards compatibility. So you only have to worry about downloading these new targets if there is a specific issue you are trying to debug on a target that is running a newer version of software. In addition to this, in the future we plan to simplify the process of keeping up with targets so that you don’t have to worry about matching target numbers with SDK numbers – the IDE will automatically select the right debug symbols for you based on what target is loaded on the device you connect to.

I hope you have found this useful – as before I will continue to provide important snippets of information on a regular basis to assist you with your development via my blogs and through Twitter @russell_andrade.

Join the conversation

Show comments Hide comments
+ -
blog comments powered by Disqus