Release Notes

You can find more information about new features, known issues, and fixed issues (including installation issues for the BlackBerry 10 Native SDK) in the Native SDK release notes.

We also have an upgrade guide available that can help you transition your beta 2 app to beta 3. Check out the upgrade guide here.

Highlights - Cascades beta 3

The BBM Social Platform highlight.

BBM Social Platform

Engage users with the social features of BlackBerry Messenger by connecting your app to the BBM Social Platform. Access BBM contact lists and profiles, invite BBM contacts to download your app, or add a customizable application box to a user's BBM profile to broadcast achievements or updates, all from within your app.

The PIM highlight.

Calendar, Contacts, and Email

Take advantage of full integration with personal information management (PIM) applications in BlackBerry 10. You can add calendar entries, contacts, messages, notebooks, and more, all right from your app. Make your app indispensable to your users by working seamlessly with the core applications that they use every day.

The UI highlight.

UI additions and improvements

Many of the core UI controls have been improved or added upon in this release. Take a look at the new features of controls like the tab menu, action menu, and navigation pane. Other additions include text field and text area enhancements, new font sizes, context menu improvements, a new data model, and much more.

New in this release

Cascades UI framework

Built-in controls

  • Context menu - The context menu now supports landscape orientation. The menu is laid out correctly when the device is in landscape orientation, and it transitions smoothly between portrait orientation and landscape orientation. Also, you can populate the context menu automatically with actions for specific content types simply by specifying the MIME type of your content.
  • Tab menu - The way that tabs are arranged in the tab menu (or sidebar) has been improved. Tabs are now vertically in the menu. When you add a lot of tabs to the tab menu, the vertical position of the tabs is offset so that the tabs appear closer to the bottom of the menu. This positioning makes it easier for users to reach the tabs with their fingers, providing a more comfortable user experience. Also, highlighting of the currently displayed tab, as well as the tab that a user taps, has been improved for a better visual appearance. Finally, splats (indicating new content) are now displayed on the tab menu button if any of the tabs in the menu contain new content.
  • Action menu and action bar - Similar to the tab menu, actions in the action menu are now vertically, and their positions are offset toward the bottom of the menu when a lot of actions are displayed. When you add a Delete action to the menu using the predefined DeleteActionItem class that's provided, this action is placed automatically at the bottom of the action menu and stays visible when the rest of the menu scrolls. This lets users access the Delete action easily, no matter how many actions are in the menu. The action bar at the bottom of the screen now supports landscape orientation.
  • Label - Labels now support line breaks. This feature lets you create labels that are more than a single line of text.
  • List view - List views now support snapping for list items. You can decide whether you want the borders of list items to align automatically (or "snap") to the top or bottom of the visible area of the list. Using this feature, you can make sure that a full list item is always displayed at either the top or the bottom of your list. You can also insert implicit stop positions when users scroll through your list. New highlighting has been implemented for standard list items; when users touch and hold these items, they are gradually highlighted, indicating that the context menu is about to be shown. Also, programmatic scrolling is now fully animated.
  • Application menu - You can now define an application menu in QML, and add, arrange, and remove actions right in your QML code. The way that actions are arranged in the application menu has changed. Now, actions are placed on the left and right sides of the menu first, and remaining actions fill the center of the menu. The application menu now supports landscape mode.
  • Text field and text area - Many text selection features have been added or improved. Users can now select text by tapping two fingers (the first finger at the start of the selection and the second finger at the end of the selection); use the context menu to cut, copy, and paste text; touch and hold a word, or double-tap the word, to select it; and more. Padding properties on text fields and text areas now adjust the position of the text inside the controls. Also, you can specify the type of virtual keyboard that's displayed when users tap a text field or text area. You can now programmatically insert, replace, or edit the text in a text field or text area. Other features have also been added, such as hyperlink support, smart text scanning for phone numbers and email addresses, emoticons, basic rich text, and password masking.
  • Virtual keyboard support - Text input controls in Cascades are now integrated with the virtual keyboard. You can enable virtual keyboard featur, such as text prediction, dedicated numerical input, and so on, in your apps. Specialized keyboards for email addresses, passwords, chat, along with other input modes, are supported.
  • Navigation pane - You can now support peeking in your apps, which allows users to touch and drag the content area of a page to the right to display the page that's underneath it. Swiping the current page, or dragging it past half the width of the screen, pops the current page off of the navigation pane stack. Users can also peek at the first page in the stack by dragging or swiping the Back button on a page. You can also perform more operations on a navigation pane, such as inserting or removing pages at specific positions in the stack, or navigating back to any page in the stack (instead of repeatedly popping pages).
  • Tabbed pane and sheet - These controls now support peeking, similar to a navigation pane.
  • Foreign window - When you use a foreign window in your app (for example, to play a video), you can programmatically open the context menu to display actions that are related to the foreign window.
  • Images - You can now load PNG and JPEG images even if the image files don't include .png or .jpeg extensions. Cascades now supports decoding images from memory buffers, instead of just from the file system. Also, animated GIF images are now supported.
  • Dark theme - The dark theme that was used in a previous beta is back. You can now choose between using the dark theme and the light theme.

Other features

  • Active Frames - You can now specify a cover image for your app. A cover appears when your app is reduced to a thumbnail (for example, when users swipe up from the bottom of the screen to switch between running apps). Previously, a scaled-down version of your app's UI was used as the cover image, but now you can create your own custom cover images and use them instead. You can even use a completely dedicated UI tree as the cover image.
  • Dynamic QML loading - You can now create objects by loading QML files dynamically. This feature lets you load the contents of your UIs only when necessary, instead of storing all of the components in memory at once. This can potentially save a lot of memory and can significantly increase the performance of your apps.
  • Invocations - You can now trigger bound or unbound invocations from anywhere in your code. For example, you can choose to invoke a default target application or service when users tap on active text in your app.
  • Active text - Interactions with active text have been improved. Tapping performs the default action that's associated with the active text, while touching and holding opens the context menu with available actions for the selected text. You can also choose to turn off active text and emoticons in your apps.
  • Data models - A new data model, ArrayDataModel, has been added. This data model is designed for data that doesn't need to be sorted in a particular order, or for data that you want to sort in a precise way in your app. This model supports data manipulation operations such as insert, move, swap, and remove. You can use this model in either QML or C++.
The context menu while dragging a list item.

Tabs in the tab menu appear closer to the bottom, for easy access.


A custom dialog and title bar.

An application menu provides global actions for your app.


The Active Frames feature.

Active Frames let you customize the image that appears on your thumbnailed app.

  • Fonts - New font size levels have been added for use in text styles. Sizes ranging from XXSmall up to XXLarge are included, making it easier for you to select an appropriate size for the fonts in your apps. Also, built-in Cascades controls change their font sizes depending on the global font size that's set on the device.
  • Focus improvements - The way that UI controls handle focus has been improved, making it easier to perform focus-based tasks, such as filling out forms. You can now override the default focus policy if you want to handle focus in a different way in your apps.
  • Spell check - You can now spell check and correct text in a text field, and you can add words to the dictionary on the device. You can also use the spell check engine inside your own custom UI controls.
  • BBM Social Platform - Add social interaction and viral distribution to your app using BBM integration. Take advantage of instant social interactions and increase the popularity, discoverability, and stickiness of your app.
    • Invites - Invite BBM contacts to download your app by accessing a user's BBM contact list.
    • Profiles - Update a user's or a contact's personal message, status, and avatar with application-specific items.
    • Application Profile Boxes - Add a customizable application box to a user's BBM profile to broadcast achievements or provide updates.
  • Personal information management (PIM) - Integrate with the core PIM applications on the device, such as the Calendar application, Contacts application, and Remember application, to perform the following tasks in your apps:
    • Create new calendar entries, contacts, notebooks, and messages, as well as view and edit details of existing PIM entries
    • Search for contacts by unique identifier, by a particular string, or by a specific field
    • Use a contact picker to present a list of contacts for users to choose from
    • Notify third parties when calendar events are added, modified, or deleted
    • Package a calendar event in iCalendar (ICS) format
  • Internationalization - Prepare your application for markets around the world by using internationalization and localization. This feature allows you to translate and tailor the content of your application for a particular locale.
  • Cards - Use the invocation framework to allow your application to share discrete functionality across other applications in the form of a card.
  • Ad Service - Get access to multiple ad services to integrate ads into your apps. No custom coding is needed; advertisements are delivered to your app with just a few lines of code.
  • Push Service - Provide instant information to your users. This is the feature that smartphone customers love, and started the BlackBerry revolution. With push, your applications can run in the background, extending battery life.
  • Camera - Use the improved Camera APIs to integrate with the camera hardware on the device. You can let users take photos in your apps, as well as store these photos and share them with friends.
  • Custom menus - Create menus with your own distinctive look and feel. You can take advantage of the underlying menu service (the same service that provides items for built-in menus, such as the context menu) to provide context-sensitive menu items for the data in your app. Then, you're free to define the exact appearance and visual behavior of your menu.
  • Sensors - Access all of the data that's gathered by the various sensors on the device. You can retrieve sensor data from the accelerometer, gyroscope, light sensor, magnetometer, and rotation sensor, among others. Use these readings to make your apps responsive to a wide range of user input.
  • Radio info - Query the available radios on the device to retrieve information such as status, ESN/IMSI, SIM card information, mobile country code (MCC), and mobile network code (MNC).
  • Geocoding - Use new APIs to support geocoding and reverse geocoding in your apps.
  • HomeScreen - Set the wallpaper on the device using these new APIs.
  • Dialogs, prompts, and toasts updates - Dialogs, prompts, and toasts have been updated to let you use the power of the Cascades UI in your customized dialog or to choose the standard BlackBerry 10 look and feel in your system dialog. There's even a new system dialog, SystemListDialog, that presents your user with a list of choices when the standard OK or Cancel choices are not enough.
An illustration of BBM.

You can integrate BBM social features into your apps.


An illustration of sensors.

Various sensors are available on the device, so take advantage of them!


An illustration of dialogs and toasts.

Give your users the information they need by using dialogs and toasts.


  • Notifications additions - Sometimes your app needs to let everyone know what's happening. Cascades notifications can be used with the BlackBerry 10 notification settings to highlight an event in your app in the Universal Inbox or to put the BlackBerry splat on your app's icon on the home screen. The user can include LED, sound, and vibrate notifications by customizing the notification settings for your app.
  • Multimedia enhancements - New classes have been added that make it easier to support multimedia features in your apps. Your app can be notified of hardware media key presses, detect different media states, handle various video output devices, and more.
  • Data access additions - The data access APIs have been extended to support accessing data from XML, in addition to previous support for SQL and JSON data. You can also load JSON, SQL, and XML data from local and remote data sources right from QML.
  • Payment Service improvements - The Payment Service APIs have undergone some changes:
    • PaymentManager - The PaymentService API has been replaced with the PaymentManager API. The PaymentManager API provides functionality similar to what the PaymentService API provided, but is structured in a way that's clearer and easier to use.
    • PaymentConnectionMode - The enumerations in this class allow you to put your app in test mode or production mode. In test mode, your app will bypass the Payment server, preventing accidental purchases and credit card charges. Test mode provides simulated screens and data for purchases, purchase history, and other requests.
    • PaymentReply - The PaymentReply class provides responses for all PaymentManager requests. Success responses and error messages include detailed data, and the finished signal of a response can be used to determine when its corresponding request finishes.

Cascades Builder

  • JavaScript editing and debugging - There is now limited support for JavaScript editing and debugging when you're using the C++ debugger. You can set breakpoints, step through your code, and evaluate and set variables and QML property values.
  • Image viewer - An image viewer has been added so that you can preview the images that you use in your apps. The image viewer includes features such as zooming and rulers. The image viewer also lets you view and edit 9-slice scaling information.
  • Improved Outline view - The Outline view has been enhanced, and now allows you to manipulate the component tree of your app.
  • Improved QML editor - Several features of the QML editor have been improved, including better code completion with more relevant suggestions (including custom components that you write using QML), better hover help, improved drag-and-drop from the Component palette, and better error validation. Reformat and indentation support has also been added, as well as hyperlinks to referenced assets. Syntax highlighting has also been improved and expanded to include objects, properties, types, invokables, slots, and signals.
  • Improved Component palette - The Component palette now includes new component categories and additional items. An Assets view has also been added, which displays images and custom QML components that exist within the project.
  • Improved Properties view - The Properties view adds better property editors.
  • Improved QML Preview - The QML Preview now more accurately reflects the code in the QML file that you're editing.
The image viewer.

The new image viewer lets you work with nine-slice information.

Known limitations

  • Issues with sending output to the console

    In this release, the qDebug() and console.log() functions do not work the same way as they did in previous releases. Previously, when you used these functions in your JavaScript/QML code, the function sent the debug information to the console, and you could view the information in the Console view in the IDE. Now, this function does not send output to the console. Instead, this function sends debug information to the slogger2 log.

    Workaround 1): You can use the fprintf() function with stdout or stderr as the output stream to receive output directly to the console. Or, you can use a function similar to the following:

    void myMessageOutput(QtMsgType type, const char* msg){
        fprintf(stdout, "%s\n", msg);
        fflush(stdout);
    }
    

    Then, you can register this handler function with QDebug by calling the qInstallMsgHandler() function in your main function after the default Application creation, similar to the following:

    int main(int argc, char **argv)
    {
        Application app(argc, argv);
        qInstallMsgHandler(myMessageOutput);
        ...
    }
    

    After this, qDebug() calls will be logged to the console.

    Workaround 2): To see debug information that is output from qDebug(), you can access the slogger2 logs as follows:

    1. In the IDE, in the Target Navigator view, right-click the device target. Click Launch SSH Session.
    2. In the terminal that appears, do one of the following:
         a. To view the current slogger2 logs, type slog2info.
         b. To view real-time output for the processes that are being debugged (for applications that are running in development mode), type slog2info -w.
         c. To view help information on slogger2, type slog2info -h.

    You can also access the log files directly in the /tmp/slogger22 on the device and run these logs through slog2info at a later time.

  • QML preview in Linux

    QML preview functionality is not working on Linux, and only works on Windows and Mac OS at the moment. Linux users can deploy their applications to a device or simulator to test the look of their QML components.

  • BBM Social Platform and the simulator

    The BBM Social Platform APIs are not currently supported in the BlackBerry 10 Dev Alpha simulator. To test and debug your app, you'll need a BlackBerry 10 Dev Alpha device. To learn how to run your BlackBerry 10 application on a device, see Build, test, and deploy your app.

Known issues

Cascades UI framework

6058707

Forwarding an SMS or MMS message through the context menu (also known as the CrossCut menu) does not work and no message is forwarded.

6056999

Marking an email as read or unread through the context menu does not work and nothing is set.

6044389

A multi-line Label with TextAlign set to Center does not display correctly when switching orientations (portrait to landscape mode).

6029915

If you rotate the device while peeking from one page to the next, the application becomes unresponsive and the peek session freezes.

6020503

Receiving an incoming call and moving the call bar to the bottom of the screen causes the call bar to be stuck at the bottom of the screen.

6019786

Setting the imageSource property on any ImageView-like control (such as ImagePaintDefinition) takes longer than expected, around 3 ms. This issue reduces the creation time of the application scene.

6019784

The first creation of a Color class from QML takes longer than intended, around 8 ms.

6019181

When using a Bluetooth keyboard, some keys result in invalid text instead of the actual key. Some examples are: the arrow keys, the Ctrl key, the Alt key, the Delete key, and F1 to F12.

6018586

A Label ignores its maximum width if the preferred width is not set.

6013627

When using a Menu with 4 ActionItems, the 4 ActionItems are not evenly spaced.

6003271

If you receive an MMS message with a picture attachment and then open the picture, the MMS menu bar is displayed at the bottom of the picture.

6003065

Scrollable lists sometimes stutter when scrolling up and down.

6001811

If you play a video then switch from landscape to portrait orientation, the video flickers. Also, when you have a Label with textStytle.textAlign set to TextAlign.Center, the label renders incorrectly when switching between landscape and portrait mode.

5999455

The segments of a SegmentedControl do not animate properly. The wrong colors are used during transitions.

5997041

The Clock application in bed-side mode sometimes flickers when it's brought into view.

5984308

If you're editing a notebook and receive an incoming call, the call screen and edit notebook screen overlap each other.

5968716

When opening the unbound-target-selection menu, the title bar is animated in from the right hand side of the screen (right to left) while the remainder of the list slides in from the bottom of the screen up to the top. The entire sheet is intended to animate onto the screen together in one cohesive transition.

5968549

Selecting an unbound invoke action, such as Share in the Pictures app, proceeds to the target selection menu but does not display the title in the header of that menu.

5962935

When attempting to copy text from a work account message to a personal account message, no notification is given that pasting text from work to personal messages isn't allowed, but the text is not copied as expected.

5960667

Cascades applications logs statements in a .log file instead of a .slog file.

5959988

If a TextField is located near the bottom of a Sheet and it obtains focus, the virtual keyboard hides the TextField.

5958853

When a long email is received, the text in the middle is cut off and doesn't display properly.

5957552

If you have a TitleBar in a NavigationPane, making the TitleBar visible from a slot function can sometimes cause the TitleBar not to be seen at all.

5956684

Labels use more memory than intended.

5956340

Zooming in or out on a ScrollView control flickers during the rubber band effect of the list.

5945032

Sometimes when performing searches, some email results do not appear.

5944495

If you have a TabbedPane containing images on tabs, there are black areas at the top of the images when viewing the images in full-screen mode and landscape orientation.

5936665

If you transfer a large amount of images to the camera folder (say, 5300), open the Pictures app, and then open the camera, the Pictures app terminates unexpectedly.

5933132

Sometimes when minimizing an application, a different application cover is momentarily displayed.

5932006

Lists of attachments in some emails are sometimes cut off and don't all display correctly.

5918358

Sometimes the Calendar app and BlackBerry Messenger app terminate unexpectedly due to memory allocation issues.

5915931

Sometimes when switching between the application and a context menu, the circle of search remains longer expected.

5913776

The fine cursor sometimes appears when the field is empty.

5909421

The TextArea.requestFocus() function does not work when used on the onCreationCompleted() slot function.

5894969

Sometimes the Calendar app terminates unexpectedly while attempting to paste text into a new event.

5888210

When typing into a TextField, the submit key doesn't emit a submitted signal and doesn't call the connected slot function.

5887514

In landscape orientation, the overflow menu has no line to separate Share from Delete.

5878561

The connect button on the virtual keyboard does not start the sign-in process when using Google Talk or Yahoo Messenger.
Workaround: Use the connect option in the menu.

5878226

The remember password option on Yahoo Messenger is not working correctly and cannot save passwords.

5874575

While editing a video, running a preview and switching to landscape mode causes the controls to become unresponsive and the application to terminate unexpectedly.

5850960

If you have a TextArea with a height of 400, after releasing your finger scrolling up, the list scrolls down.

5850083

There is no option to save an SMS message.

5849019

Touch events below a TitleBar do not emit a signal.

5841365

When a Tab on a TabbedPane contains many images, deleting the Tab does not delete the images.

5839021

Sometimes when highlighting text in emails, the highlighting continues after the touch has finished.

5830141

Loading an image with an ImageTracker control doesn't work properly and can't accept ResourceState or ResourceTracker enumerations.

5794840

When creating an account on Window Live Messenger, the application sometimes terminates unexpectedly when selecting a country.

5793911

The scrollToPosition() function on a ListView takes longer than expected.

5768557

When a TextField is moved, the fine cursor does not follow.

5757904

Opening a contact in the Contacts app while scrolling occasionally selects the wrong contact.

5730866

TextFields do not maintain the correct text position when many lines are entered.

5722757

The sender name is truncated if the name is too long without any way to view the whole name.

5712087

TextAreas with a double value as the max height don't maintain that height within the limit.

5589305

Sometimes BlackBerry Messenger becomes unresponsive when viewing the contacts.

5452387

Applications with multiple Pages sometimes terminate unexpectedly when copying text from one Page to another.

5423720

Sometimes targets (http://, mailto:, and so on) are not invoked when called from a TextField or TextArea.

5328837

Long text strings in a TextField are not replaced with an ellipsis.

4623831

The Pictures application can sometimes terminate unexpectedly when adding pictures to an album.

4389394

When using the Croatian or Kazakh character sets, some characters are missing.

3859167

When receiving onTouch events from applications that use child classes of CustomControl, unexpected values might be returned on the events. An example would be positional change between touch events of over 300 pixels in under 70 ms.

3813679

Dynamic objects and variables consume more memory than intended.

3669945

The defaultImageSource property of ImageButton does not prefix the file path with "file://", but the imageSource property does.
Workaround: Add the "file://" prefix manually.

3630528

A ListView component with a GridListLayout displays only the grid header and does not display data within each cell.

3621228

The API documentation indicates that the TextField.resetHintText() slot function resets hint text to an empty string, but the function actually resets hint text to "Enter text".

3596128

TextStyle.base components cannot be set to null, even though in the API reference the default is stated as a null TextStyle. Also, altering TextStyle.base does not emit the onBaseChanged signal.

3596121

When the TextStyle.resetBase() function is called, the changeListener signal emits the new base as a defined TextStyle object instead of the default value of NULL.

3596112

The TextStyle.onBasedChanged signal is emitted after setting the same base value.

3593657

The default value of TextStyle.base was specified as null in the API documentation, but at runtime the value is undefined. The expected value on return is now undefined.

3556364

When using a GridListLayout object, calling the GridListLayout.setSpacingAfterHeader() function does not add spacing after the header. If the spacingAfterHeader property is connected to a slot function, a signal is not emitted when the setSpacingAfterHeader() function is called, as it should.

3555874
(3637004)

When using HeaderListItem with layoutDirection set to LeftToRight or RightToLeft, the parent ListView has infinite scrolling and non-header items are hidden.

3555132

The ImageTracker.onImageChanged signal is emitted even when setting the image to the same image.

3190445

Margins do not function correctly for any controls without a set value. When a control is initialized, or the margin is reset, the getMargin() function will not return a consistent value.

3163347

The titleChanged, valueChanged, and modeChanged signals for DateTimePicker are not being emitted correctly, or at all, when their respective changes occur.

3139275

Default-size TextFields in Containers with LeftToRight layouts can push some Labels out of view by exceeding the bounds of the Container.

2983165

With nested Containers and touch behavior set to start tracking on a touch down event, touching the child Container causes the parent Container to respond as if it had been touched.

Cascades platform APIs

6065712

When using the NotificationDialog API, the error() and result() functions return an incorrect value if the dialog was dismissed by a button selection.

6056211

When using the SpellChecker API, the checkWord() function and suggestion functions always time out and return false even though the word is correct, if using specific timeout values including: 3000, 4000, 7000, and 8000.

6055590

The Camera::open() and Camera::startViewfinder() functions have to be called twice to open the camera and start its viewfinder for the first time.

6054364

On a device, the NotificationDialog.show() function and exec() static function do not work properly and do not display the specified effects.
Workaround: Restart the device or test your application on the simulator.

6052188

The invoked(const bb::system::InvokeRequest&) signal of the InvokeManager class emits the incorrect signal for setFileTransferMode(FileTransferMode::Type type).

5988166

If a hard-link is specified and the original file has owner and write access, the sender must have owner permissions for the target to be invoked.

5982271

If a user denies an app permission to connect to BBM when the app first launches, or changes the permissions in the global settings for the app, the app terminates unexpectedly.

5969845

Sometimes if invocation requests are pending, peeking and closing the card does not work.

5968589

The NFC services are not correctly registered with the Invocation Framework. NFC viewer needs to be explicitly registered for handling unbound invocation requests.

5963384

A user cannot block future download invitations from a contact. After selecting "block future invites from <contact>", the contact is still able to send the user invitations.

5950965

The peek feature for cards does not work on the BlackBerry 10 Dev Alpha Simulator.

5934941

The peek feature is not working correctly when used with any card class while in landscape mode.

5934714

You can create more than the maximum allowable 3 items in an application profile box on a BlackBerry 10 device.

5933235

MenuManager does not create the menu if you set the TargetTypes to -100.

5868072

Invoking multiple cards while in landscape mode distorts the user interface.

5850653

After you add an image to a profile box, the image does not display.
Workaround: Do not disconnect the app.

5849928

A contact's profile box items do not appear in the correct chronological order on the current user's BlackBerry 10 device, and the timestamps are incorrect.

5845968

Profile boxes are not updated in real time. For example, when a contact's profile box is modified, the changes are not immediately updated on the current user's BlackBerry device.
Workaround: Navigate away from the profile box and then return to it.

5842334

The Qt NFC APIs are missing documentation on protected and public methods including QnDefRecord, QnDefSpRecord, QnDefActRecord, QnDefIconRecord, QnDefSizeRecord, QnDefTypeRecord, QnDefTextRecord, QnDefUriRecord classes.
Workaround: Look at the respective header files in the installation folder.

5829149

When a user launches an app and the app attempts to register with the BBM Social Platform, after the user clicks Continue in the BBM Setup dialog, BBM does not launch.

5776714

After prolonged use, the peek functionality does not work correctly and prevents apps from launching and minimizing.

5731088

When a card is closed, InvokeManager::peekEnded() signal is emitted twice. It should only be emitted once.

5561615

The ForeignWindow::controlFrameChanged signal is not emitted on rotation changes of the device. The signal is emitted on the first layout but not subsequent rotations.

5177452

When opening an encrypted database with bb::Data::SqlConnection with an SqlWorker, an OperationFailure error is thrown. The error should be a ConnectionFailure error.

5148962,
5147742

When free storage on the device is less than 1 GB and video is recorded until the device storage is full, the videoCaptureStopped signal is not received when the device storage is full. Also, when this occurs, the videoCaptureFailed signal is received with an error set to RecordingSpaceFull.

Cascades Builder

6059288

If a running debug session is interrupted, the JavaScript debugger may lose the debug session. Some scenarios of interrupting a running debug session are: a change of the launch configuration, the debug session times out, and other debug sessions are started. You can avoid this issue by terminating the debug session before performing any other actions.
Workaround: Restart the IDE.

6055459

The debugger may terminate unexpectedly when displaying variable values in the Variables view, specifically when you are debugging QMap or QMultiMap objects.

6037185

After debugging with a JavaScript breakpoint, applications do not run on a device.
Workaround: Test on the BlackBerry 10 Dev Alpha Simulator.

6034758

An empty onClicked slot function in QML has an error at runtime but not in the QML editor.

6025349

The QML preview does not handle relative path images.

6018911

Custom components are listed under attached objects when the QML file is not immediately under the assets folder.

5997999

QML preview is not available on a Linux Ubuntu 11.04 32 bit OS.

5814025

When JavaScript editing, applying code assets to any console function (such as the console.debug() function) does not display any highlighting. The console functions still work at runtime.

5156833

Syntax highlighting (pretty-printing) of some Qt classes isn't displayed properly in the IDE (for example, QString, QVector, QChar, and others).

3674748

The debugger displays errors when watching expression values on Cascades objects.

3665573

When using the Debug Perspective on a Mac, variable information does not appear in the 'Variables View' after you debug an application.

3628816

It's not possible to browse for a file in the 'Image Source' text field of the Properties View.
Workaround: Specify the path manually.

3608228

On a BlackBerry 10 Dev Alpha device, attempting to debug a Cascades application over Wi-Fi can result in a timeout error, which stops the debug session.

3596004

Invoking code assist after 'TextStyleDefinition' does not display 'onBaseChanged' as an option in the property list.

3575287

When using TextStyle controls, the properties view is not updated properly and doesn't reflect changes in property content.

3160891

The NVIDIA graphics driver 191.25 does not support the QML editing perspective.

3147605

Attempting to use code assist for the first time in a project can cause code assist to function incorrectly, or not at all.
Workaround: Save, close, and re-open the project.

2749240

Adding an inclusion library folder through the QNX Momentics IDE does not work.
Workaround: Modify the project file (.pro) statement "INCLUDEPATH +=" to add the directory path of the library folder you wish to include.

Cascades Exporter plug-in for Adobe Photoshop

6052837

Text in Cascades applications displays larger on a device or simulator than it does in Photoshop, around 5 times larger.
Workaround: Manually adjust the font size in Cascades Builder.

6014884

On a Mac 10.6, a .tmz file name containing a '/' character shows an error with "Problem null".

6012062

The Reset option on the Rescale dialog is not working properly and does not reset the pixel values to their original values.

5889725

Adobe Photoshop CS5 windows do not minimize properly when the builder extension is enabled on Mac Snow Leopard.
Workaround: Disable the extension.

Fixed in this release

Cascades UI framework

4689076

If using a WebView component, your application used to sometimes fail or become unresponsive at runtime.

4278679

Adding or removing ActionItems from a hidden (immersive) action bar caused the action bar to be shown on the screen.

4245734

When using the deprecated Orientation messages API, your application could have become unresponsive at run-time if the orientation is altered by the user.

4050102

When you were using a QML Container with a LeftToRight stack layout with one element aligned to the left and the second aligned to the right (using the HorizontalAlignment.Right property), both elements used to be aligned side-by-side instead of to each side.

3861787

When using an ImageView component, the ScalingMethod.AspectFit enumeration did not scale the image correctly when used to resize an image between portrait and landscape mode.

3747253

In a scrollable Container component that includes a Button to toggle orientation, a scroll event was sometimes emitted when the button was pressed. A button-click event should have been emitted instead.

3745033

Calling QListDataModel::Move(x, y) moved x to index y-1 instead of index y.

3633517

When using a Label object with large font sizes, text used to be rendered incorrectly.

3625051

A ToggleImageButton was not visible if the dimensions were not specified.

3623776

A displayDirectionChanged signal was only emitted on the first instance of a display direction change.

3622819

When using a Slider control, a touchUp event used to contain incorrect information about the positional value of the slider.

3598628

A parent Container's maxHeight used to be overwritten by a child Container's minHeight when the parent Container used a DockLayout or the parent Container was contained within an empty Container.

3552793

Public headers for WebLoadRequest and WebSettings were missing.

3542367

Using nested StackLayout layouts used to cause overlapping elements.

3527827

Sometimes, the left-most edge of the first letter of text in a Label was clipped.

3524418

When two Pages with no background were programmatically pushed to a NavigationPane at the same time, both were displayed on top of each other.

3514817

When using a Button with HorizontalAlignment set to Fill inside an Container with a LeftToRight stack layout, sometimes text was displayed improperly and did not fill the width of the screen.

3484797

Inserting items into and removing items from a QListDataModel resulted in an incorrect DataModel size and incorrect number of items displayed in the associated ListView.

3469244

The TextField.onTextChanging signal was emitted after the onTextChanged signal if you changed focus to another UI element, even if no text had changed in the original TextField.

3467064

SegmentedControl did not update the display when an option had been moved from one control to another. The option remained in the initial control, and was placed in the target control.

3428181

When setting SupportedDisplayOrientation to All, the supportedDisplayOrientationChanged signal was not emitted and the connected slot function was not invoked.

3428166

Using SupportedDisplayOrientation::All caused application orientation to be unresponsive when the device was rotated.

3244920

The GroupDataModel::removeAt() function returned true even when removing the header was unsuccessful.

3228577

RadioGroup.SelectedIndexNone returned 'undefined' in QML. The expected return for RadioGroup.SelectedIndexNone was '-1'.

3213907

Attempts to use "QVariantList() << (negative integer)" as a parameter for DataModel::childCount, hasChildren, itemType, and data caused the application to terminate unexpectedly.

3206167

The QListDataModel::append() function emitted an itemAdded signal with an incorrect indexPath value.

3193875

The clipContentToBounds property had no effect when it was set from QML, and caused objects within a Container to be clipped if their size exceeded the bounds of the Container.

3190444

Attempting to quickly stop and restart an animation returned an error message.

3178884

The resetLayout() function should have reset a container's layout to StackLayout by default, but instead it returned a 'NULL' value.

2981126

A TextArea did not scroll up to display all entered characters when the virtual keyboard was displayed.

2981125

Tapping a TextArea after hiding the virtual keyboard did not display the virtual keyboard a second time.

Cascades platform APIs

Including the Multimedia library in your application required 4 linker additions to your project file (.pro) before but now only requires 1, -lbbmultimedia.

5781921

When you were using the AudioRecorderPrivate::setMediaState slot function connected to the mediaStateChanged signal, the mediaState used to sometimes be set to "Unprepared" even if another state was expected.

5456354

The InvokeManager::invoke(InvokeRequest) function did not invoke the target when only the mime-type was specified in the InvokeRequest parameter.

5438620

Notifications used to not trigger the LED/sound/vibration effects specified in the settings.

5347148

When the user performed a swipe down gesture, the swipeDown signal wasn't emitted.

5327958

In the HomeScreen class, the setIconBadge() function placed the icon badge in an incorrect position. The icon badge was placed in the middle of your application's icons as opposed to directly on top of the icon.

5296601

When you used the HomeScreen class, the setWindowCover() function did not set any cover when working on the BlackBerry 10 simulator.
This functionality has been moved to the Application class, and you should use the setCover() function, which works on the simulator.

5266178

Using the HomeScreen class, the addShortCut() function scaled up the image icon if the icon passed was smaller than the expected size, as opposed to not scaling the icon as stated in the documentation.

5177696

When using the bb::device::Led API, the red LED flashed, but the green and yellow LEDs did not flash.

4244961

The bb::Application class did not allow for delayed exits, but instead exited the application immediately. Sending the PPS message "extendTerminate" to the Navigator service to extend the exit did not work either.

4242355

Using Clipboard.insert() to insert an empty string or NULL statement was not allowed, and was not stated in the documentation.

4407225

In the HomeScreen class, the setBadgesDisplayed(true) function and setWindowCover() function did not show an image with a badge.
This functionality has been moved to the Application class, and you should use the setCover() function and setIconBadge() function.

3640476

In your application, if you called Toast.setIcon( const QUrl& ) and then called Toast.show(), the icon previously set was not shown.

3621151

In the bb::platform::DigitalGoodResponse class, the methods digitalGoodId() and digitalGoodSku() returned an empty string value, instead of the digital good ID. The header file stated that these methods will return the digital good ID if passed in the original request.

3606315

On a BlackBerry 10 Dev Alpha device, using the PaymentService API to make a purchase in Test Mode resulted in a cut-off configuration dialog for digital goods, in which only the bottom part of the dialog was shown.

3527483

Using the Display API, it was not possible to receive signals from the secondary display when signals are connected to the primary display.

Cascades Builder

5632672

The navigation and tabbing features did not display properly in the QML preview. Also, some of the new Cascades controls, such as the TitleBar and ImageButton, did not display correctly in the QML preview.

5273759

QML ImageTracker was marked as an unknown component in the QML Properties view.

5145761

When installing Cascades Builder on Mac OS, the soft links referenced invalid/missing files.

3633843

Adding a Container component to an empty Cascades project used to cause the QML editor to notify the user of parsing errors, when no parsing errors existed.

3633743

When using the Debug Perspective on a Mac, stepping into the code during a debug used to cause the debug session to stop responding.

Cascades Exporter plug-in for Adobe Photoshop

6010367

It was not possible to undo any action in Photoshop while the extension was enabled. If you attempted to undo an action, an error message saying "Can't undo" was displayed.

3179521

Using the 9-slice tool in Photoshop used to cause window margins to decrease in size unexpectedly.

Looking for release notes for previous betas?

You can find the release notes for the previous beta releases on the following pages:

  1. 1. Choose your focus

    This is the focus controller. Use this controller to choose your primary development approach (Cascades or Core).

    By selecting a focus, you get to decide what content should be front and center on the site.

  2. 2. Download the tools

    Before you start developing, you'll need to visit the Downloads tab. Here you'll find downloads for the BlackBerry 10 Native SDK, BlackBerry 10 Device Simulator, and some other useful tools.

  3. 3. Try the sample apps

    Now featuring a filter control, the Sample apps tab allows you to search for samples by name or by feature.

    Select either the Core or Cascades check boxes to display the samples relevant to your focus.

  4. 4. Educate yourself

    The Documentation tab contains tons of examples, tutorials, and best practices to guide you along the path towards building an awesome app.

    The documentation for your preferred focus always appears at the top of the left-hand navigation, but you can still access the rest of the documentation at the bottom.

  5. 5. Start developing

    The Reference tab is where you'll find essential details about how to use our APIs.

    You can use the left-hand navigation to choose how you would like to browse the reference: by module, by topic, or alphabetically. If you have an idea of what you are looking for, start typing it in the Filter box.