BB10 is expected to power the next-generation of RIM handsets and tablets. With four different development approaches supported, many people may wonder which approach is right for them.
The development options avaliable to BB10 developers each have pros and cons, but many developers will want to jump into development as fast as possible. To get up and running quickly, you may want to choose a path that is the most similar to your current style of development.
What type of developer are you?
Adventurous Web Developers
Like the PlayBook, BB10 can run Adobe AIR applications. ActionScript developers can use the same Adobe tools they are comfortable with and publish their AIR apps right onto a BB10 device with minimal effort.
Java Developers may find themselves torn when migrating to BB10. The only supported path to write in Java is by taking advantage of the Android Runtime bundled into BB10. However, this path should only be considered for Java developers with extensive Android experience as it has some big drawkbacks. The biggest one being that the Android Runtime is limited to to apps built on the Android 2.3 SDK. The Android 2.3 SDK was built first and formost for Android phones, and is now almost two years old.
In my opinion, the best path forward for a Java developer wanting to get started on BB10 is to jump headfirst into Cascades development. As with the others who aren’t as comfortable with C++ there will be a learning curve, but you’ll find a lot to like about Qt (which Cascades is built ontop of) and QML.
Anyone who’s already familiar with C or C++ should definitely jump into native development on BB10. Those comfortable with low-level C may even want to stick with it by using the NDK, especially for Game Development. Otherwise, Cascades will development will be very easy to get into, and those with Qt experience will have an even easier time. The biggest task for developers familiar with C or C++ will be exploring all the components provided by the Cascades UI library.
For those lucky (or unlucky) enough to have a pre-existing code base they intend to port, the development path will depend on the original platform. Below are some additional tips for developers looking to bring over various types of projects to BB10.
WebWorks for PlayBook for BB7 (and below)
WebWorks applications built for BB7 or Playbook OS will require minimal changes to prepare for BB10. The most important change is that neither Java and ActionScript plug-ins are supported on BB10, and will need to be rewritten as (C/C++) native plug-ins.
With BB10, the NDK is provided to write code completely in low level C. This, with BB10′s support for all POSIX compliant libraries, makes BB10 a great target for porting OpenGL games written in C or C++.
Similarly C libraries should be very easy to get compiling on BB10.
Qt developers will find that QtQuick has been replaced. Existing applications will have to be adapted to the components and architecture of Cascades UI. Currently drawing shapes is not supported and only Cascades UI elements can be drawn onto the screen. Luckily Cascades supports a component called ForeignView, which can be used to drop down to the use of OpenGL drawing operations.
For those that do have existing Android 2.3 applications targeting the Android Runtime should take a minimal amount of effort. This is provided that your application isn’t heavily reliant on the Google Play store, or a few sensor APIs which the Android Runtime for BB10 does not support. See this API support guide for more information: https://developer.blackberry.com/android/apisupport/ .
Finally, many multi-platform development toolsets like Unity and Appcelerator have begun to announce support for BB10. With these plethora of options avaliable to developers, BB10 is promising to be one of the most flexible and developer friendly mobile platforms to develop for.