Introduction to Cascades

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

The Cascades framework contains a rich set of UI components 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 non-visual foundation classes and objects.

The BlackBerry Q5 smartphone.

Qt and QML

Qt is a cross-platform application framework that's used primarily 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 inter-object 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 the Introduction to the QML Language on the Qt website.

Cascades UI framework

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.

The Cascades UI framework (bb::cascades) is both fast and easy to use. The framework comes with a rich set of core controls, classes for layout and structure, and animations for adding those extra moments of charm. The application logic and the UI rendering engine run on separate execution threads that communicate asynchronously with each other.

The separation of application and rendering logic means that the UI rendering engine doesn't need to wait for a long running process to complete before updating the UI. This is how Cascades helps your application present a UI at a consistently high frame rate. The high frame rate keeps your UI smooth and responsive.

A screen that shows the weather guesser app.


Cascades apps, like other native apps for BlackBerry 10, are built using the Momentics IDE for BlackBerry. The Momentics IDE is an Eclipse-based IDE that's designed for building C and C++ applications. The IDE allows you to compile, deploy, debug, and profile your native applications with ease.

The Momentics IDE comes with a set of Eclipse views that are designed specifically to help speed up the development process for Cascades applications. You can access these views by using the QML Editing Perspective in the IDE.

Screen showing the QML Editing perspective in the Momentics IDE.

When building a Cascades application, you can drag and drop QML components into the editor, view and edit components in the QML properties view, and even preview your UI in the QML preview.

The IDE also has built-in support for debugging and profiling QML and JavaScript code, as well as QML templates that you can use to get started building your app.


Cascades applications follow a similar development workflow as other BlackBerry 10 applications. 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 Cascades workflow.


  • If your app has already been released to users, take a 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.


  • 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.


  • Start developing your app. Check out Building an app from the ground up to learn about the different features available so you can make decisions about 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.


  • Debug your applications to identify semantic and logical errors in your code. Testing and 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 or procedures outside the scope of the full application.


  • Code 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, which currently has over 120,000 apps for BlackBerry 10 alone.

What's next?

After you Set up your environment, take some time to The QML Editing perspective to learn more about the tools. If you're ready to jump right in, try out the Create your first app tutorial.

Related resources

Web-based training

Last modified: 2014-01-23

comments powered by Disqus