Comparing the platform designs
The following section provides information on the platform layers, languages, memory management, mapping information, and best practices for app design.
The BlackBerry 10 OS is structured in a layered manner on top of the QNX Neutrino RTOS. The QNX Neutrino RTOS acts as a kernel, and gives the platform key functionality such as multitasking and memory management. iOS also uses a layered approach in its design, resulting in similar principles for API usage.
The following image illustrates the corresponding platform layers between iOS and BlackBerry 10:
While the APIs used for the two platforms are completely different, the structure of the abstraction layers is similar. High-level frameworks offer abstraction of more complex low-level processes. Because both platforms use this layered architecture, the way you use frameworks is similar between iOS and BlackBerry 10. As a best practice, use higher-level frameworks over lower-level frameworks in your app when possible. This approach helps to reduce the amount of code you must write and can simplify complex features. Follow this best practice when you create your apps and when you port them.
Comparison of the Frameworks
Although the standard frameworks BlackBerry 10 uses are completely different to those that iOS uses, the important thing to note is that for nearly every API used in iOS, there is an equivalent API in BlackBerry 10. The following table compares the frameworks used between iOS and BlackBerry 10.
When you port your app to BlackBerry 10, you can choose between two development options:
- A native C/C++ app: The logic and UI of the app are written using C/C++.
- A Cascades app: The logic and UI are written using C/C++ and QML.
Both options offer access to powerful APIs you can use in your app. The following sections, Objective C to native C/C++ and Objective C to Cascades, provide information on porting your Objective C code to a native C/C++ app and to a Cascades app.
Last modified: 2015-03-31