Now that BlackBerry (don’t let your friends catch you calling them RIM anymore) has released its latest platform and devices to the world, developers may be interested in what they need to know to bring their applications to BlackBerry 10. If one word can describe the BlackBerry 10 development platform, it’s “choice.” BlackBerry has made strong attempts to ensure there is something for everyone in order to court as many mobile application developers as possible. Here are just some highlights of what developers can expect from BlackBerry 10.
At the launch of BlackBerry 10, we were also given information that two new devices, the BlackBerry Z10 and Q10, will be available running the new OS. BlackBerry is expected to update the PlayBook tablet to BB10 in the near future, but no further details are currently available. So, for the moment, there are only two commercial devices developers must expect to support.
The BlackBerry 10 documentation claims that developers can expect devices to come in two screen resolutions that applications should support. Devices with physical keyboards, like the new Q10, have a 720×720 screen (1:1 square aspect ratio). The “all-touch” device family is documented to have a screen resolution of 720×1280. However, the first wave of commercially available BlackBerry 10 devices (i.e. the Dev Alpha and the new Z10) has a screen resolution of 768×1280. BlackBerry claims this was only for “the first commercially available devices running BlackBerry 10,” and that developers should still target 720×1280 while gracefully adapting to the wider aspect in the first few versions.
Application development pathways
BlackBerry documentation indicates that the company would like to see all developers using its Native SDK for new applications, probably using the Cascades UI, in order to preserve the platform integration and experience it considers to be the highlight of the platform. But it isn’t quite willing to put all of its eggs in that basket just yet. As a result, BlackBerry 10 offers developers a wide variety of SDK options to choose from. So many options, in fact, that you may have no clue where to start. Here are some details about each of the supported options:
C/C++ Native SDK
The BlackBerry Native SDK comes in two flavors: Core Native and Cascades. The Core Native functionality exists to allow developers with existing C/C++ applications to easily port them onto the BlackBerry platform. The API access is very low-level, including direct access to the QNX Neutrino RTOS that BlackBerry 10 is built upon, so it may not be where you want to start building an app from scratch. However, game developers will likely want to look at this for bringing their games to BlackBerry.
Sitting on top of Core Native is the Cascades framework. Cascades provides a higher-level C++ API layer for system integration, as well as a UI toolkit based on the well-known Linux UI framework Qt. This framework allows developers to use the Qt QML syntax to design and lay out their user interface. This is the framework that developers writing new BlackBerry applications will most likely use. It is also where BlackBerry points developers who wish to port an existing iOS application to the platform. This SDK essentially replaces BlackBerry Java from the BlackBerry 7 and earlier platforms.
Both of these SDK packages are contained in the same download, so even if you do not expect to use Cascades in your application, it will still be available to you. The Native SDK comes bundled with the QNX Momentics IDE, which is built on top of the Eclipse platform. Developers choosing Core Native can also take advantage of the BlackBerry Native Plug-in for Visual Studio.
The bbUI toolkit and WebWorks framework themselves are fully open-sourced under the Apache 2.0 License. Developers can view the code for either—and contribute back to them—on the BlackBerry GitHub page.
Adobe AIR Player
The Adobe AIR Player that was originally introduced for the PlayBook OS is also available for developers to write BB10 applications using Action Script and Adobe Flex. The BlackBerry 10 SDK for Adobe AIR adds additional support for device system services and cross-application communications, while also including a series of Air Native Extensions to expose features of the lower-level device hardware.
Developers who have existing mobile applications using Adobe AIR will want to take a look at this SDK.
Android Application Player
Since the release of the PlayBook, BlackBerry has heavily courted the Android developer community to use its repackaging tools to bring applications onto the platform, and BB10 is no exception. Android developers can use the Eclipse plug-in to build an Android project for BB10, or to upload a finished APK to their Online Packager for conversion.
The list of Android APIs that are supported by the conversion is quite impressive, including C2DM/GSM push and In-App Billing. However, this is also met with an equally long list of unsupported hardware and software platform features, so developers who are considering this method should closely investigate the support documentation on the BlackBerry developer site before proceeding.
Developers with existing applications that make use of the Android NDK, or applications that must use APIs not supported by the BB10 Android Runtime, are encouraged not to use this method and instead use the BlackBerry Core Native SDK to port the application.
BlackBerry 10 devices are not readily available for developers yet, unless you live in Canada or have received a Dev Alpha device earlier this year. For developers not willing or able to obtain a device on which to do testing, the simulation environment of any mobile platform is of great interest. As it stands now, the BlackBerry 10 simulator is evolving rapidly. At launch, the Gold release of the SDK included v10.0.10.261 of the simulator, which only supported the Dev Alpha device. The current release of the simulator is the 10.1 beta, and it supports the 720×720 screen resolution of the Q10 device as well as multi-touch simulation. More big changes are expected here very soon.
The BlackBerry 10 simulator is distributed as a prebuilt VMware virtual machine. Developers on Linux and Windows will need to install VMware Player, while those on a Mac must invest in VMware Fusion. To control simulated aspects of the simulated device, such as orientation, location and sensor values, the simulator is bundled with an application called Controller. Developers may also connect directly to the VM using telnet to control the same parameters.