The BlackBerry 10 Native SDK

The BlackBerry 10 Native SDK is a development toolkit that lets you create apps to run on the BlackBerry 10 OS.

You can develop apps with the BlackBerry Native SDK by using the Momentics IDE for BlackBerry. The Momentics IDE is an Eclipse-based IDE that's designed for building apps in C, C++, or QML.

The IDE allows you to compile, deploy, debug, and profile your BlackBerry apps.

The BlackBerry Q5 smartphone.

You can quickly port your existing app to BlackBerry 10 devices using the BlackBerry Native SDK and open source libraries. This technique lets you take advantage of the power and speed of the BlackBerry 10 OS (built on the QNX Neutrino RTOS) and the standard functionality that comes from being POSIX-compliant.

The BlackBerry Native SDK supports libraries that give you access to the operating system, device hardware, and commonly used open standards. The SDK includes the Cascades UI Framework and platform APIs. You can use the Cascades platform APIs to access the underlying features of the BlackBerry Application Platform and use hardware peripherals and protocols such as cameras, sensors, and Bluetooth connections.

The BlackBerry 10 OS

The BlackBerry 10 OS is a multitasking operating system built on the QNX Neutrino RTOS. The OS implements the minimum amount of software in the kernel space and runs other processes in the user space. By running most processes in the user space, the BlackBerry 10 OS can manage unresponsive processes in isolation. This architecture creates a responsive and secure environment by preventing damage to the operating system and other running applications.

The BlackBerry 10 OS is tamper-resistant, resilient, secure, and efficient:

Tamper-resistant
The OS performs an integrity test before it starts. If the integrity test reveals damage, the OS doesn't start.
Resilient
Processes can be restarted without impacting other processes or applications. All applications run in the user space. An app that fails doesn't affect the kernel.
Secure
The OS validates requests for system resources. An authorization manager evaluates requests from applications to access OS capabilities. For example, when an application requests access to the camera, the authorization manager displays a dialog box that specifies the capability requested, and provides the user with the opportunity to grant or decline access to that capability. In addition, the OS is designed to verify the authenticity of applications. All applications must be signed by the BlackBerry Signing Authority.
Efficient
The OS minimizes power consumption when it is idle.

Tools

BlackBerry 10 applications are built using the Momentics IDE for BlackBerry. The Momentics IDE comes with a set of Eclipse views that are designed specifically to help speed up the development process for BlackBerry 10 applications. You can access these views by using the QML editing perspective and the C++ perspective in the IDE.

Screen showing C/C++ perspective in the Momentics IDE.

If you don't want to use the Momentics IDE, you can use command-line tools to build and sign apps. For more information, see Command line tools to learn how to compile and link your project.

Libraries

The BlackBerry 10 OS supports libraries that give you access to the operating system, device hardware, and commonly used open standards.

C/C++

The BlackBerry Native SDK supports standard C and C++ libraries. In addition, BlackBerry provides the BlackBerry Platform Services (BPS) that you can use for low-level OS access and for interacting with hardware peripherals and protocols.

You can also use libraries that aren't part of the BlackBerry Native SDK, including open source libraries. You may even have libraries of your own that you can use or create. If your libraries use POSIX-standard C/C++ calls and compile using the GNU C/C++ compiler, they can be ported for use with the BlackBerry 10 OS.

Cascades

The BlackBerry 10 Native SDK includes the Cascades UI Framework, which you can use to develop fully featured applications for BlackBerry 10.

The Cascades UI Framework ( bb::cascades ) contains a rich set of UI controls to help you create a fluid and intuitive experience, along with APIs that allow for deep integration with the BlackBerry 10 OS. The foundation of Cascades is Qt 4.8, which provides a set of nonvisual foundation classes and objects.

Cascades UI controls and events are C++ objects that are exposed using QML. You can declare your UI in QML and process events using JavaScript inline with your markup. You can take advantage of the Qt object model, event model, and threading model. Cascades incorporates features of fundamental Qt classes (such as QtCore, QtNetwork, QtXml, and QtSql, and others) and builds on them.

Although Qt has a fully featured UI toolkit, Cascades provides its own UI framework, giving it all the power and flexibility of Qt with a look and feel that's designed for touch-screen interaction.

Screen showing the weather guesser app.

Qt

Qt is a cross-platform application framework that's used for creating applications that require a UI. Qt uses standard C++, but extends its functionality using several macros, the most important being the Q_OBJECT macro, which provides an interobject communication mechanism called signals and slots.

For building UIs, Qt comes with a specialized markup language called the Qt Modeling Language (QML). QML is a declarative language that's based on JavaScript and is designed for both power and ease of use. Like standard Qt, QML uses concepts such as objects, properties, and signals and slots to let objects communicate with each other. For more information about QML and how it's used in Qt, see QML fundamentals.

Open source and cross-platform libraries

The BlackBerry 10 OS also supports open source software repositories and several commercial frameworks, such as OpenGL ES and Cocos2D-X. Many libraries come with the BlackBerry 10 Native SDK installation while others can be found on open source software repositories. You can use the Add Library Wizard in the Momentics IDE to add libraries to your project.

For more information, see Library support.

Screen showing the Add Library wizard in the Momentics IDE for BlackBerry.

Workflow

BlackBerry 10 applications follow a simple development workflow. This process is relevant not only for your initial release, but for each subsequent update to your app as well.

A diagram that illustrates the app development workflow.

Analyze

  • If your app has already been released to users, look at the Analytics metrics to see how they've been using it. This information can help you make informed decisions about new and existing features.
  • Determine your app's requirements, such as types of user input methods, information to display to the user, network usage, and how to leverage social media.
  • Identify potential ways to monetize your app. The Payment Service and Advertising Service offer a few different options for generating revenue. To learn more about monetization, see Making money from your app.

Design

  • Familiarize yourself with the design principles for BlackBerry 10 apps. The UI Guidelines contains best practices for structuring your app, following design patterns, using components, and more.
  • Start creating wireframes and building prototypes. The Wireframe prototyping tips and tools contain everything you need to get started.
  • Design your visual assets. Using the Cascades Exporter plug-in for Adobe Photoshop, you can design your UI within Photoshop and export it to the Momentics IDE.

Develop

  • Start developing your app. Check out Building an app from the ground up to learn about the different features available so you can decide how to implement them.
  • Target all devices. To make your app available to the most users possible, it needs to be supported on all BlackBerry 10 devices. Resolution independence is one way to make sure that your app can run on any device.

Test

  • Debug your applications to identify semantic and logical errors in your code. Debugging is available for both C++ and QML/JavaScript code.
  • Profile your apps to improve performance. Profiling allows you to pinpoint inefficient processes within your app, detect memory leaks, and find unused code.
  • Perform unit testing. Unit testing allows you to test individual functions outside the scope of the full application.

Deploy

  • Sign your release binaries. Signing your app allows the BlackBerry 10 OS to verify the authorship of your app for users.
  • Publish your app to BlackBerry World. BlackBerry World is a marketplace where users can download and purchase your apps.

What's next?

After you set up your environment, take some time to explore the Momentics IDE to learn more about the tools. If you're ready to jump right in, you can follow a tutorial to create your first app.

Related resources

Web-based training

Last modified: 2014-06-24



Got questions about leaving a comment? Get answers from our Disqus FAQ.

comments powered by Disqus