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?
Web Developers
Web developers will feel right at home with WebWorks. WebWorks is a runtime which bundles HTML, JavaScript and (eventually) native plug-ins into a native BB10 application. Along with the provided WebWorks JavaScript API, you are free to use most of the web technologies you are already comfortable with.
Adventurous Web Developers
If you don’t want to feel too comfortable in your new development environment, consider jumping right into Cascades. While the initial learning curve may be steeper for those without C++ experience, the payoff will be big when you realize how transferable your JavaScript skills are. Cascade applications can be created completed in QML (a declarative language used to construct UI) and JavaScript, with minimal C++ code to glue it all together.
Flash 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
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.
C/C++ Developers
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.
Porting Tips
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.
WebOS Applications
Developers with exisiting WebOS projects can migrate them successfully to WebWorks with some reworking. WebWorks uses pure HTML and CSS to style its UI and doesn’t rely on any native elements, to reproduce the look and feel of a Cascades application in WebWorks check out the BBUI project: https://github.com/blackberry/bbUI.js/ Most functionality proviced by Enyo is provided by the blackberry object in JavaScript. 3rd party libraries, like jQuery, are recommended to fill in the missing pieces, more informaiton can be found here: https://developer.blackberry.com/html5/documentation/ww_developing/porting_webos_apps_1952251_11.html
OpenGL-based Games
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++.
C Libraries
Similarly C libraries should be very easy to get compiling on BB10.
Qt Applications
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.
Android Applications
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/ .
Everything Else
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.
Tags: AndroidRuntime, BB10, C/C++, Cascades, Java, OpenGL, QML, Qt, WebOS, WebWorks




