10.1 Gold Release Notes

This is the gold release for the 10.1 version of the BlackBerry 10 Native SDK. This release includes new features that support both the BlackBerry Z10 smartphone and BlackBerry Q10 smartphone. You can visit the Downloads page to download the installer for this gold release.

If you're using the 10.1 Gold release version of the SDK but you still want to develop for a previous BlackBerry 10 device (for example, the BlackBerry 10 Dev Alpha or the BlackBerry Z10 smartphone), you need to download an additional device target by using the update site. To do this, in the QNX Momentics IDE, click the Update Native SDK button:

This image shows the update button in the QNX Momentics IDE.

Here's a quick summary of the versions you'll need:

- If you are developing for a BlackBerry 10 Dev Alpha device, you need to download the 10.0.10.263 target from the update site.
- If you are developing for the BlackBerry Z10 smartphone, you need to download a target from the update site that matches the device version that's provided by your wireless service provider. You can verify the device version by opening the Settings app, tapping About, selecting OS in the Category drop-down list, and checking the version that's listed in the OS Version field.

For more information about developing apps that work on different versions of the BlackBerry 10 Native SDK, see Appropriate version of the BlackBerry Native SDK in the BlackBerry Support Community Forums.

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 apps to this 10.1 Gold release version for BlackBerry 10. Check out the upgrade guide here.

This document contains the following sections:

Upgrading to 10.1 Gold

There are two recommended ways to upgrade your version of the BlackBerry 10 Native SDK, depending on the version of the SDK that you currently have installed:

  • If you're upgrading from the 10.0 Gold version of the SDK to the 10.1 Gold version, you can either uninstall the 10.0 version and install the 10.1 version in the same location, or you can install the 10.1 version in a different location than the 10.0 version. You can also use the update site in the QNX Momentics IDE to download the 10.1 version.
  • If you're upgrading from the 10.1 Beta version of the SDK to the 10.1 Gold version, you should uninstall the previous beta version before you install the new Gold version.

If you've upgraded the software version on your device to a recent SDK OS build, and you want to revert to a software version that's been released by your wireless service provider, complete the following:

  1. Open BlackBerry Link.
  2. Connect the smartphone using the micro USB cable.
  3. At the bottom of the BlackBerry Link window, click the Computer tab.
  4. Select Settings.
  5. Under Reload Device Software, select Reload.
  6. Follow the on-screen instructions.
Any backups created while running a developer build of BlackBerry 10 OS version 10.1 will not be able to be restored once the production BlackBerry 10 OS has been reloaded.

For more information, read this knowledge base article.

Highlights - Cascades 10.1 Gold

This is a header image for the profiling highlight.

Cascades Profiler

You can now use the QNX Momentics IDE to profile JavaScript and QML code, in addition to C++. The Cascades Profiler shows you information about frame rendering, image loading, compiling and creating QML files, time consumed by running QML bindings, and QML signal handlers. To learn more, visit the Profiling documentation.

This is a header image for the keyboard devices highlight.

Support for keyboard devices

This release contains many new features for supporting keyboard devices. All core controls have had visual updates to support the new screen resolution and the different themes available (light and dark). To learn more about developing apps for keyboard devices, visit the BlackBerry 10 devices documentation and the UI Guidelines.

This is a header image for the asset selection highlight.

Asset selection

To help you develop for both all-touch and keyboard devices, you can use the asset selector feature that's built into the QNX Momentics IDE. You can use a different set of visual assets (QML files and images) depending on the resolution and theme of the device that your app runs on. To learn more, visit the Using the static asset selector documentation.

New in this release

Cascades UI framework

Built-in controls

  • Custom pickers - You can now create your own custom picker controls using the Picker class. You can choose from a predefined picker type using PickerKind, and you can specify your own picker item visuals using PickerItemComponent. Visual node objects can be provided as picker items by using a PickerProvider.
  • Text filters and validators - You can now set a text filter on a TextArea in your apps. You can also specify a validator, which is represented by the Validator class, on TextField controls.
  • Auto-hiding action bars - When you develop your apps for the smaller screen size of the upcoming BlackBerry Q10 smartphone, you can take advantage of new functionality that hides the action bar automatically in certain circumstances. If your app includes a ListView or ScrollView as its main control (that is, as the root control of your Page), as users scroll, the action bar is hidden automatically so that additional items are visible on the screen. The action bar reappears when users reach the end of the list or start scrolling the other way.
  • Sticky and non-sticky title bars - In addition to action bar changes that are designed for devices with smaller screens, the title bar now includes sticky and non-sticky modes. When you use a title bar in conjunction with a ListView or ScrollView, a non-sticky title bar will scroll off the screen when users scroll the list or content vertically. This behavior can give your app a bit more screen space on devices with smaller screens. In contrast, a sticky title bar always remains at the top of the screen.
  • Freeform title bars - You can now customize the title bar that appears at the top of pages in your app. The new freeform title bar lets you add a wide range of UI controls (such as images, labels, check boxes, and more) to the title bar. You can also specify that you want the title bar to be expandable, and you can provide selectable options to display when the title bar is expanded.

Other features

  • Shortcuts - You can now create your own key shortcuts and system shortcuts by using the Shortcut and SystemShortcut classes, respectively. Keyboard shortcuts improve usability and user experience by decreasing the effort required to perform commonly used actions in an application. To learn more, visit the Keyboard shortcuts documentation.
  • Key listeners - In addition to key shortcuts and system shortcuts, you can use key listeners to handle any key press that produces a character. You can implement key listeners by attaching a KeyListener to any control that inherits from Control or AbstractPane. Key listeners give you more control over how you listen for and handle keyboard input in your apps. To learn more, visit the Key listeners documentation.
  • Support for keyboard devices - With the future release of the BlackBerry Q10 smartphone, you'll need to make sure that your apps work well and look great on this new device. We've given you a head start by updating many core features to support keyboard devices. Core controls have been updated and the QNX Momentics IDE has been enhanced. We've also prepared some documentation to help you develop or adapt your apps for keyboard devices:
    • BlackBerry 10 devices - Describes some of the differences between all-touch and keyboard devices, and provides some guidelines and best practices to consider when developing for both types of devices.
    • Resolution independence - Includes strategies for developing a UI that doesn't depend on the resolution of the target device.
  • Asset selection - We wanted to make it as easy as possible for you to develop apps for both all-touch and keyboard devices that run BlackBerry 10. The asset selection feature, which is included as part of the BlackBerry 10 Native SDK, lets you create and use entirely different sets of visual assets depending on the characteristics of the device that your app runs on. You can:
    • Use assets that are designed for resolutions of 768 x 1280, 720 x 1280, or 720 x 720.
    • Use assets that are designed for light or dark themes.
    • Create a folder structure in your Cascades project that separates your assets, making them easier to manage.
    • Let Cascades choose, at runtime, the set of assets that's best for your target device.
    You can learn more about asset selection by visiting the Using the static asset selector documentation.

Cascades platform APIs

  • Sandbox testing for the Payment Service - You can now use a sandbox account to test your apps that use the Payment Service. By using this sandbox approach, your apps communicate with the BlackBerry World servers to test the digital goods purchases that your app offers, but it doesn't cost you any money for this communication. To learn more about this feature and how to use it in your apps, read the BlackBerry Payment Services: Return of the Sandbox blog post.
  • Geolocation markers - You can now use the GeoLocation and Marker classes to set geolocation markers to use when a location is not in focus.
  • MapView window/world coordinates - The MapView class now includes the windowToWorld() function that maps window coordinates to world coordinates, as well as the worldToWindow() function that maps world coordinates to window coordinates.
  • Phone - The callUpdated(), lineRemoved(), and lineUpdated() functions have been added to the Phone class.
  • Remember Me options - Additional "Remember Me" options have been added to the SystemDialog, SystemPrompt, SystemCredentialsPrompt, and SystemProgressDialog classes.
  • Camera availability - You can now determine whether the camera resource is available for you to use by calling cameraResourceAvailable(), a new function in the Camera class.
  • Contact list exclusions - When you search for contacts using the ContactListFilters and ContactSearchFilters classes, you can now exclude a specific account's contacts from the results by using the new setExcludeAccount() and setExcludeAccounts() functions.
  • Query for display technology - You can use the new displayTechnology() function in the DisplayInfo class to gather more information about the display on a device (for example, whether the device uses an OLED display).
  • Invocation custom attributes - Functions (such as addCustomAttributeValue() and removeCustomAttribute()) have been added to the InvokeTargetFilter class that let you manipulate custom attributes for invocation target filters.
  • Message transactions - A new class, MessageTransaction, has been added that represents a discrete message or conversation transaction in the message service.
  • Audio manager handles - In the NowPlayingConnection class, which manages the playback of audio and video files, you can now set the audio manager handle and respond to the corresponding signal when the handle is changed.
  • Low-light camera support - You can use the camera_get_lowlight_status() to determine if the camera considers the current conditions to be low in light. The CAMERA_FEATURE_LOWLIGHT_STATUS enumerator in the camera_feature_t enumeration is available for low light notification.
  • Advertising Service requests - When your application submits an ad request, the Advertising Service SDK sends the location of the user's device along with the ad request to the Advertising Service mediation layer. This information enables ad network partners to supply more relevant ads based on the location of the device. If you don't want to send the device location along with the ad request, you can ask the user to turn off location-based ads.

Cascades Builder

  • Cascades Profiler - We've expanded the ways that you can gather performance information about your apps by including the Cascades Profiler. This tool lets you profile JavaScript and QML code and helps you identify areas of your app that could run more efficiently. You can:
    • Start profiling as soon as your app starts, or start and stop profiling manually at any point while your app is running.
    • Save profiling data to a file for later analysis.
    • View details about the three main QML threads in an app: frame rendering, image loading, and QML engine.
    • Examine each event in a thread in greater detail.
  • Code editor improvements - The code editor in the QNX Momentics IDE now includes better code completion, improved validation, formatting enhancements, hyperlinking to custom components, and much more.
  • Icons and splash screens - The editor for the bar-descriptor.xml file now provides the ability to specify icons and splash screens for the BlackBerry 10 keyboard device.

Back to Top

Other features

Back to Top

Known limitations

  • Issues with sending output to the console

    In this release, the qDebug() and console.log() functions (and related functions qWarning(), qFatal(), and qCritical()) 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.

    You can now view all slogger2 log information in the Device Log view in the QNX Momentics IDE. To open the Device Log view, on the Window menu, click Show View > Other. Expand Debug and select Device Log.

    If you want to view log information in the console, 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);
        
        #ifndef QT_NO_DEBUG
        qInstallMsgHandler(myMessageOutput);
        #endif
        ...
    }
    

    After this, qDebug() calls will be logged to the console. However, you should keep in mind that this approach may adversely affect the performance of your applications.

  • QML preview considerations

    There are several considerations you should keep in mind as you work with the QML preview in the QNX Momentics IDE.

    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.

    Using older drivers with QML preview

    Any drivers more than 12 months old are unsupported and can lead to issues with rendering, including, but not limited to, complete disabling of the QML preview feature. The user will also be notified about this situation by a dialog box within the QNX Momentics IDE.
    Workaround: Update to the latest drivers. Note that this issue might occur even with newer graphics cards and the latest drivers. In this case, you should report this issue to BlackBerry with as much detail as possible.

    QML preview with C++ objects

    The QML preview can load and render components based on the Cascades plug-in only (in bb.cascades 1.0). Objects that are registered in C++ in your project are not understood by the QML preview and cannot be loaded and rendered.

  • Viewers in the invocation framework

    Using the invocation framework, viewer-related classes (for example, InvokeViewerMessage and InvokeViewerRequest) and methods have been deprecated. The viewer-related classes and methods have been replaced by Card classes and methods. For more information on the Card API, see the Cards documentation.

  • Push pins for geographic data on a MapView control

    Push pins are added to MapView through MapData. MapData for a Mapview is obtained by calling the mapData() function. Push pins can be added through MapData::add(bb::platform::geo::Geographic *geo) or MapData::add(const bb::platform::geo::GeoList &elements). If you add the push pins to the MapView, the push pins will not render at all. Subsequently, the user is not able to interact with push pins. Bubbles around the push pins will not render either. The APIs do not show any errors during compilation or cause an unexpected termination at runtime.

    You can learn more about this issue, including a proposed solution with a complete sample app, by reading the BlackBerry 10 Cascades MapView blog post.

  • QRC-based resources

    If you are using QRC to improve performance in your apps, the new asset selection tool may affect your apps. If asset selection is used, an index file is generated automatically. However, this index file does not include contents that are only included in the QRC binary file. Instead, it lists only the files that reside in the assets directory in your project.
    Workaround: Place a copy of QRC-compiled assets in your assets directory. The tool will then include these assets in the index file. When the device loads the app, the appropriate files in the binary are still used and the app continues to benefit from the performance gain of QRC.

  • Creating the StampCollector sample project

    If you are using device target version 10.1.0.1627 and you try to create the StampCollector sample project in the QNX Momentics IDE, the project cannot be created due to path changes of certain assets. This limitation will be resolved in a subsequent release.
    Workaround: Download the updated StampCollector project from the Cascades Sample Apps page.

Back to Top

Fixed in this release

Cascades UI framework

7067957

If you created a QML file with a TextField or TextArea, then invoked QML preview, it may have triggered excessive battery drain on laptop computers and high CPU usage.

7050725

In a QML file, if you had set the inputRoute.primaryKeyTarget property of a TextField to true, then typed some text on the device keyboard, text may not have appeared in the TextField.

7037212

In a ListView, the last element of the list might not have been visible, but the TitleBar was visible. Keyboard shortcuts to hide the TitleBar were unresponsive.

7029299

When you clicked the option tab of a TitleBar, the active tab may have changed without triggering the selectedIndexChanged() signal.

7028880

When you embedded a horizontal ScrollView within a vertical ScrollView, then touched and dragged the horizontal ScrollView diagonally with a larger horizontal change than vertical change, the ScrollView would scroll in both directions, instead of just horizontally as expected.

7028819

When you embedded a SegmentedControl within a vertical ListView, then touched and dragged the SegmentedControl downwards, the ListView did not scroll down.

7026538

If you tried to page down on a ListView by pressing the Space bar, in a page that had a non-sticky TitleBar displayed, the keyboard shortcut may have been unresponsive.

7021707

When using the scrollRole property on a ListView, if the list's DataModel emitted an itemsChanged() signal, the list would animate and scroll to the bottom instead of the top.

7020499

When you used a FreeForm TitleBar with a DropDown on a page that also contained a ListView, both the DropDown and ListView may have responded to touch input in unexpected ways.

7008953

Apps compiled with the 10.0 release of the BlackBerry 10 Native SDK did not have an .assets.index file, which prevented image assets from being found when working with the 10.1 release.

7004214

When the action menu was displayed in an app with a ListView, navigation keyboard shortcuts acted on the ListView instead of being ignored.

6993068

If you had a TextArea with disabled input flags, then typed some text in the TextArea and pressed Enter, a new line was not generated.

6986038
(6862089)

Pressing the Alt key is no longer required to enter numbers in a date/time with a device keyboard.

6978514

If you had a Page with a ListView as the root control, you sometimes couldn't scroll to the top of the leading visual.

6972701

When you entered many lines of text in a WebView, you may not have been able to reset the height of the WebView to its minimum height.

6959480

ListView may not have reacted to system shortcuts.

6954779

When you had a TextField with the submitKeyFocusBehavior set to Keep, and the user pressed Enter more than once, unwanted new lines would sometimes appear.

6948702

When a WebView was positioned below a Container inside a ScrollView, the WebView content was obscured behind the Container.

6944894

When using the BlackBerry 10 Native SDK with QML Preview enabled, setting the text property in a TextField may have triggered high CPU usage and excessive battery drain on the device.

6944363

When you included a user stylesheet in your assets, then referenced it in a WebView, the WebView ignored the userStyleSheetLocation property and the specified stylesheet was not applied.

6916145

When you used a NavigationPane, the popTransitionEnded() signal was not emitted when a Page was popped off of the NavigationPane stack.

6912459

When using WebViewCanvas and WebViewContentSecurityQML, the WebView height may have flickered.

6909818

Buttons with a width of less than 138 pixels appeared distorted on keyboard devices, because of the change in minimum width for those devices.

6884723

When the overflow menu was shown in a card or sheet, dragging left to right may have erroneously started a peek.

6872720

When you have tabs shown on the action bar, if you hid the action bar and then added new content to the current tab, the badge appeared at the same time that the action bar reappeared, instead of appearing following a delay.

6870768

When you added a fourth new tab to TabbedPane with the action bar hidden, when the action bar reappeared it may not have displayed correctly.

6862414

If you were using multiple input languages in a Cascades app that contains many controls, the Alt + Enter shortcut to switch languages did not function. Instead, the Alt + Enter shortcut would move the focus to the previous control.

6861975

When you moved through a long list using Top and Bottom keyboard shortcuts, the list may have displayed empty spaces.

6861584

The integer string is now correctly aligned in the tab menu.

6855714

Disabled items in the context menu were sometimes still animated when selected.

6840683

If you used a DropDown and there were no other components on the same page to receive focus when the DropDown was closed, when you pressed Enter on the DropDown, it did not close.

6840678

If you used a DateTimePicker and there were no other components on the same page to receive focus when the DateTimePicker was closed, when you pressed Enter on the DateTimePicker, it did not close.

6832216

WebView now supports YouTube playback in Cascades apps.

6816662

When the device was in bedside mode and you tried to use the keyboard shortcuts to open and collapse the time picker, the device would not respond.

6789523

When running any app with a TitleBar control that can be hidden, if you hid the bar it would immediately disappear without displaying the transitional animation.

6777926

When a DateTimePicker was placed next to another, no default margin appeared between them.

6760400

When you used a NavigationPane and a page was being peeked at, if that page was removed or deleted, all of the pages in the NavigationPane may have been popped.

6733216

If you used a DateTimePicker for some languages or locales, it may have produced an incorrect date format.

6731763

When using a SegmentedControl and the padding of an option was changed, the SegmentedControl was updated to reflect the new size but the selected option did not update.

6728883

If the language on your device was set to Arabic or Hebrew with RightToLeft input, entering a string longer than the visible width of the text field caused the text field to continuously scroll back and forth.

6728862

The "Shift+Space" application shortcut combination did not work correctly.

6723469

When you used a ListView and you tried to obtain data from the associated data model by using ListItemData, some of the values may not have been populated correctly.

6690683

An ImageView may not have animated correctly the first time its size was changed dynamically as an app ran (for example, by showing or hiding the virtual keyboard).

6685452

In some apps, if you tapped the Symbol key, the symbols might not have appeared.

6684011

When running an implicit animation on an ImageView, the ImageView may not have stayed centered, and instead may have animated outward with inconsistent direction.

6676814

When you highlighted words and then used two fingers to zoom in or out, the blue selection cursor would become unresponsive.

6621469

Some Cascades apps could enter a state where they no longer rotated properly, and they might potentially have stopped responding and required a reset to recover.

6613542

If you had set your device language to Spanish and touched and held text in an app, you might have seen some menu items in English.

6609202

When you pressed the Enter key in a TextArea, focus management consumed the key event before the TextArea could consume it, so no shortcut was set.

6599724

In some cases, list items disappeared when multiple items were added to the list.

6579830

The LocalizationManager class was implemented as a singleton with a static instance, which was not thread-safe and could cause the QNX Momentics IDE to terminate unexpectedly.

6569800

When you used a StandardListItem in a list, sometimes the list item retained its activated visual state (by changing color) even when the item was not active.

6564609

If you double-tapped a fine cursor for text selection and then moved it before the fine cursor disappeared, the application might have terminated unexpectedly.

6559969

If you had a ListView with multiple top-level items, some of the top-level items disappeared when sub-items were added to the top-level items.

6558522

To support foreign windows in Cascades, the main window must be made transparent when there are foreign windows in the scene. For example, when invoking cards, the main Cascades window marks itself as transparent. If another card is pushed onto the first card, the first card also becomes transparent. The main window was never made opaque after the first card was invoked, which may have caused performance issues and unnecessary power drain.

6525049

If you selected text on the screen and then rotated your device from portrait to landscape orientation, the text selection handles would lose their place relative to the selection.

6520040

If you tapped and held on a fine cursor, the context menu was not invoked.

6507255

Switching from English to another language didn't translate the context (or cross-cut) menu during a cut, select, copy, or dismiss action.

6460151

When you attempted to select text with two fingers, sometimes the text wasn't selected.

6418535

If your application opened a Sheet and closed it using a timer, memory from the sheet might not have been freed after it was closed.

6403109

If you were using your device in Arabic and you tapped and held to open a menu, text in the menu might have been truncated.

6381529

If you set the focusRetentionPolicyFlags for a text field to FocusRetentionPolicy.LoseOnScroll, the text field could not be focused.

6374811

Sometimes when selecting text, the text selection handles on either side of the text didn't follow your finger when moved.

6310354

The text on the tab menu would be larger than expected.

6304350

If you were using your device in portrait orientation and then switched to landscape orientation, your device might not have displayed as expected.

6046186

When setting focus to multiple DropDown controls with the keyboard, only the first DropDown would display the entire control.

6033728

In a TextArea, if you pressed and held Enter to focus on the next item, the focus would instead skip past that item to the next item in the tab order.

6031114
(5555059)

When returning from a peek transition, the TitleBar from the previous view sometimes incorrectly appeared in the returned view.

6001122

If you pressed and held on the whitespace of a StandardListItem, the context menu was not displayed.

5996964

If you entered long text into a TextField so that the TextField scrolled to the right, then tapped outside the control to drop focus, the text in the TextField might not have scrolled back to the beginning.

5984452

The space between title and description on a StandardListItem was smaller than intended.

5960667

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

5384092

Right-to-left language text started on the left instead of on the right when using a TextField or TextArea.

3556364

When you used a GridListLayout object, calling the setSpacingAfterHeader() function did not add spacing after the header. If the spacingAfterHeader property was connected to a slot function, a signal was not emitted when the setSpacingAfterHeader() function was called, as it should have been.

Cascades platform APIs

6949324

When you compiled and launched an app that uses multiple target types (such as cards and applications), then queried for cards, the card targets from the application were not returned.

6839539

When you had more than two cards stacked on the parent app, and then performed a peek root from the top card, the cardPeekStarted signal was not emitted.

6822756

When DataSource::setSource() was called, it used bb::UiToolkitSupport::absolutePathFromUrl() to translate the source URL. This function would log a warning if the URL was using a scheme other than "asset" or "file" (including the "http" scheme).

6795802

When you had the setProgress() function set at 100, the ProgressDialog class displayed an incorrect progress bar.

6738777

When you used the invocation framework and you tried to query another application's filter (for example, NFC), the filter query may have been successful. You should not be able to query another application's filter and should receive a TargetNotOwned error.

6721812

When an app used cards and the cards were peeked at many times in quick succession, the device may have become unresponsive or the app may have terminated unexpectedly.

6609560

When using the windowGroupFullscreen() signal in the Application class, the documentation now notes that the window group ID of a window will not be available until a window message has been processed by the application.

6608383

When you used the Message API to read the list of SMS messages on the device, and you tried to read the body of the messages, the body couldn't be accessed. The message body would appear as an empty string.

6601448

When using application targets in the invocation framework, an app may have been able to incorrectly modify the targets of other applications on the device, even if the app was not the owner of the target.

6576301

When using a dialog box in your app and the dialog request could not be completed, the appropriate finished signals were not emitted. For example, this situation might have occurred when a PPS channel could not be opened.

6573226

When you used an SqlConnection object and tried to add an empty QVariantList, the empty list reused the previous list item's data and was added to the SqlConnection. The empty list data should not have been added.

6563298

The BatteryChargingState class returned the incorrect charging state when the charger was unplugged.

6531602

The appearance of the barcode detector control is now consistent with that of other controls.

6520029

The Marker class is now available.

6520021

The AttachmentDownloadStatus class is now available.

6519357

If you were using the InvokeTargetReply class and the error() function returned a value other than None, the targetType() function returned values outside the defined range.

6518347

If your application used the Card class and a SystemDialog control, and called SystemDialog.exec() to display the dialog, your application could sometimes have terminated unexpectedly.

6515035

The NFC secure element APIs now support, and enforce where appropriate, the Global Platform ACF format. If you were using certain Gemalto SIMs, you may have found that you received the error response NFC_RESULT_SE_REQUEST_REJECTED from the APIs due to a "deny all" rule in the GlobalPlatform ACF applet that Gemalto load onto their SIMs. You should explicitly whitelist any particular AID that you want your application to have access to by providing an "any application can access AID X.Y.Z rule".

6513573

If your application had the post_notification permission and the application ID, <id>, defined in the bar-descriptor.xml file was longer than 50 characters, the notification service terminated unexpectedly.

6505004

The CalendarEventPicker and CalendarEventPickerError classes are now available.

6494931

The MapView API didn't work on the BlackBerry 10 Device Simulator.

6485812

When using certain Qt classes (such as Qtimer), Cascades may not have properly unblocked these classes when an application returned to a fullscreen state from a thumbnailed state.

6481846

In some cases, you might have seen a %20 in a Title instead of a space.

6480612

If you were using the SqlDataAccess class, calling the execute() function on a table that didn't exist returned an error message that lacked information about the non-existence of that table. The message "No query/ Unable to fetch row" was returned.

6458073

If you deleted an app whose icon was dimmed, the app might not have been deleted and might have reappeared when you restarted your device.

6403809

Sheet controls that were opened from the application menu could be displayed only once.

6162943

If the language on the device was set to Arabic, the Calculator app showed a 'k' as the decimal point.

5933235

MenuManager would not create the menu if you had set the TargetType to -100.

5923898

Setting a button area limit on a SystemCredentialsPrompt caused the confirm button to be enabled.

4393245

The JsonDataAccess class could not handle JSON files that were saved in UTF-8 with byte order mark (BOM).

Cascades Builder

6924568

In the QNX Momentics IDE, when you opened the QML code template under Preferences, then modified and removed the code template, that modification was not synced to the Asset view.

6886082

When you selected 'Insert spaces for tabs' under Text Editors preferences, pressing Tab may have resulted in no action, or moved the cursor to the next line.

6785508

Assets that you used in your projects may not have been discovered or updated correctly in the QNX Momentics IDE. This issue affected primarily images, but may have occurred with other asset types. For example, if you dragged an image into the QML preview window, the image may not have been displayed.

6785315

After deploying an application to a device or simulator, subsequent attempts to use QML preview within the IDE may have failed.

6783088

The QML editor did not allow you to add more than one empty line (that is, by pressing the Enter key multiple times). The issue was present only if you used the "Windows/DOS" style for your files in the QML editor.

6710869

When you saved Cascades Profiler data to a file, nested spans may have been double-counted.

6628131

When you added a library to a Cascades project, the Add Library wizard contained instructions that were incorrect.

6604815

After building a project in the QNX Momentics IDE, the project may have compiled correctly but, in some cases, it may have shown header files as unresolved.

6384012

If you created a Cascades project with a name that included a hyphen (-), the app could not be deployed to a device.

6001024

If a color was set on text, the color shown in the Properties view was incorrect, though the color appeared correctly in QML preview and on the device.

BBM Social Platform

6739888

When you called ProfileBox::requestRetrieveIcon() to obtain the profile box icon that was registered with BBM Social Platform, the icon was not retrieved.

Back to Top

Known issues

Cascades UI framework

7141717

In the Cascades StarshipSettings sample app, if you drag a slider handle from one end of the slider to the other and release it, the tooltip for the slider does not disappear as expected.

7137262

If you swipe at the exact distance of the scroll/peek threshold, a peek is detected instead of a scroll.

7133787

If you type some text in a TextField or TextArea and simultaneously use two fingers to select text in another TextField or TextArea, the focus may remain on the original TextField or TextArea, producing a blinking text cursor in both.

7127069

When you peek at a screen that includes a freeform TitleBar, the expandable area of the TitleBar may be revealed.

7072997

If you're using a Picker and you set the rootIndexPath property to rootIndexPath: [0], the QNX Momentics IDE may become unresponsive.

7042073

In a ListView, calling itemRemoved() and itemAdded() with the same index path may cause the app to become unresponsive.

7032346

If you invoke and then dismiss a tooltip using two fingers, the ActionBar will become unresponsive to some actions.

7013947

If a DropDown automatically receives focus before it is fully populated with options (for example, by pressing Enter to submit an input field when the DropDown is the next control), this focus will prevent the DropDown from updating as expected.
Workaround: Set focusPolicy = FocusPolicy.Touch on the DropDown.

7003155

When you have a WebView and call storage()->clear(), the WebView storage will not be cleared.
Workaround: Use a render fence to set up WebView storage after the WebView has been rendered.

6985266

The logs for a Cascades app may contain irrelevant entries.

6974593

If you have a ScrollView below a TitleBar and the ScrollView contains text input, then you type some text in a TextField, select the text and grab the selection handle, the app will become unresponsive.

6949083

When using keyboard shortcuts, keys are case-sensitive (that is, "Alt + r" is not the same as "Alt + R"). They should be case-insensitive.

6892803

When the local storage file system on your device is filled to maximum capacity, the device may become partially unresponsive.

6889257

When you set a custom title for the Back button on the action bar, the tooltip will continue to display the default "Back" instead.

6878729

When you open a secondary page, view and swipe a list until the action bar disappears, then start to peek the page back and release the peek before it completes, the action bar will not reappear.

6877490

When your device language and region are set to Greek and Greece respectively, if you press and hold the V key on your keyboard to enter an accented Greek character, then press the Shift key to capitalize the accented character, it remains lower case.

6866370

When you use a validator in a password TextField and the validation fails, the errorMessage icon and text are not displayed.

6861944

When you reach the bottom of a view and the action bar reappears, it may cause the scrollbar to display incorrectly and "bounce."

6859981

When you display the action menu in a list, and then navigate quickly between pages, sometimes the action menu will open with an empty or incorrect display.

6854001

When the keyboard is displayed in an app (for example, if a user taps a text field), the transition of the page content is not in sync with the appearance transition of the keyboard.

6819099

When you move the cursor from a position in the middle of the second word in a text field, and hold the Shift key and tap the screen to select the first word in the text field, sometimes it does not also select the part of the second word preceding the cursor's initial position.

6812828

Once an InvokeQuery object is initialized, it may be locked and calling updateQuery() will not update the query.

6792951

When selecting and highlighting text to copy in a Cascades app, text handle bars sometimes do not appear.

6788842

You might have trouble highlighting texts or copying and pasting text on your device.

6778145

When using a TextField, you cannot invoke the NumericPassword keyboard.

6769184

When you change the orientation in the QML preview of the QNX Momentics IDE, sometimes the orientation doesn't change correctly.

6764259
(6298916)

Asset resolution when using QRC embedded QML files or resources may not work as expected.
Workaround: Use file-based resources instead.

6740735

When you use a DropDown control and you try to remove the option at index 0 while the option at index 1 is selected, the app may terminate unexpectedly.

6698227

Icons that are used in a SegmentedControl may be cropped at the left and right edges, even if there is width available to display the icons correctly.

6697336

Calling bb::cascades::QmlDocument::create() in a non-Cascades app may cause the app to terminate unexpectedly.

6687368

The ImageSource property of an ImageView does not respond to changes in bound properties.

6668175

The setKey() function in the Shortcut class can erroneously accept invalid strings (that is, strings that don't correspond to an acceptable shortcut).

6421441

If an implicit or explicit animation occurs immediately after an orientation change of the device, the animation does not play but instead jumps to its final position. For example, this issue may occur if animations are started from the rotationCompleted() or orientationChanged() signals.

6338532

When a ListView control's flick mode is set to a non-default value and a slot function is connected to the flickModeChanged() signal, calling the resetFlickMode() function doesn't set the flick mode back to the default value and no signal is emitted.

3630528

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

3139275

Default-sized TextField controls in Container controls with LeftToRight layouts can push some Label controls out of view by exceeding the bounds of the Container .

Cascades platform APIs

7144027

If you use the PlatformInfo class in a QML file, then call osVersion(), the app will become unresponsive.
Workaround: Use this class in C++ instead of QML.

6987098

On the BlackBerry 10 Device Simulator, if you connect the windowGroupInvisible() and processStateChanged() signals and then minimize the app, neither signal is emitted.

6989566

When you have an app with paid digital items listed on the BlackBerry World storefront, each time you call the requestPrice() function, a response is required before sending the next request. Calling requestPrice() multiple times without waiting for a response will result in a PriceReply error.

6989397

When you have an app with paid digital items listed on the BlackBerry World storefront and call the requestPrice() function, both a valid SKU value and a valid ID number are required in order to retrieve the price. However, the documentation states that only one of the ID or SKU is required in order to retrieve the price.

6954925

When you call setSoundUrl() to post notification with a specified sound file, the app plays the sound specified by the user settings instead.

6828738

If you stack many cards on top of each other, it will lead to low system resources. This may lead to UI distortion, or in some cases cause the device to stop responding.

6791208

When you set a URL property for a QML object, file paths are case-sensitive when they should be case-insensitive. For example, "FILE:app/native/assets/contacts.json" and "file:app/native/assets/contacts.json" should be treated the same, but are not. Also, a URL that's defined in QML may result in a URL that has part of the path duplicated.

6776604

If there are no list items in the SystemListDialog class, the confirmButton function can't be enabled.

6761803

When using cards in an app and the app is run on the BlackBerry 10 Device Simulator, rotating the simulator may cause the UI to become distorted.

6644302

When you use the HardwareInfo class to query for device information, the modelName() function returns the incorrect model name.

6627992

On the BlackBerry 10 Device Simulator, if you start the controller from the installation folder and connect it to the simulator, then launch an app, you may not be able to switch the charging state to "charging."

6593094

When you add a custom URI to an InvokeTargetFilter and then retrieve the list of custom attributes, the size of the custom attribute list is reported as 0. The documentation does not specify that the returned size will be 0.

6557112

Progress toasts sometimes time out incorrectly when show() or exec() is called repeatedly.

6488711

On the BlackBerry 10 Device Simulator, if you're using the SdCardInfo API, the SD card channel requires access_shared permissions, but no permissions should need to be set.

6480942

If an application has an invoke filter containing an asterisk (*), the application fails to install, showing a failure 884.

6430427

The BatteryInfo API returns -1 as the value of the full charge capacity.

6376562

The API documentation for the Application.pooling() signal needs improvement. The app needs to be closed to trigger the pooling feature and pooling() signal. In the pooling() slot function, the handler, or somewhere after the pooling() signal is emitted, the app must call poolingCompleted(). If not, the app will be terminated in the normal way. In order to properly have pooling working, the app must be deployed using the 'BlackBerry-deploy' command line program. Pooling will not work if you run your app from the QNX Momentics IDE using the 'Run as' option.
Workaround: Deploy your app using the command line. To do this, in your project, remove "-devmode" from the makefile. Open a command prompt, navigate to the bbndk folder, and run the following command: bbndk-env. After that, navigate to the app directory, and make the BAR file. If you need to sign the BAR file, use the following command: blackberry-signer -storepass thePassword yourApp.arm.bar. To deploy the application, run the following command: blackberry-deploy -installApp -device 169.254.0.1 -password DevicePassword yourAppName.arm.bar.

6375594

The ProcessState API documentation doesn't contain enough information on the difference between background and stopping Type enumerations.

6251593

The API reference for resetEmoticonsEnabled() of the SystemCredentialsPrompt class says the function resets the main text of the pop-up to QString::null. However, the function actually resets the emoticonsEnabled property back to the default value of false.

6218365

The move() function of QListDataModel moves items incorrectly. If the 'from' index is lower than the 'to' index, the item is moved to the 'to' index minus 1.
Workaround: If you're moving to any index except for the last, move to an index expected plus one. There is no way to move to the last index with this issue present.

6172139

There is missing documentation on QtNfcSubset classes including some enumerations and constructors in QNdefRecord, QNdefMessage, QNdefNfcSmartPosterRecord, QNdefNfcTextRecord, and QNdefNfcUriRecord.
Workaround: Look at the respective header files in the installation folder of the BlackBerry 10 Native SDK.

5969845

If invocation requests are pending, sometimes peeking and closing a card does not work.

5868072

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

5731088

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

5522084

On the BlackBerry 10 Device Simulator, calling secondaryDisplayId() from the DisplayInfo class returns invalid display, and no secondary display is simulated.

3212561

Classes that inherit DataModel, such as GroupDataModel, QListDataModel, and XmlDataModel, are missing some description information for implemented superclass functions, such as childCount(), hasChildren(), type(), and data().

Cascades Builder

7154140

If you create an app using the Cascades StarshipSettings sample app on Windows 8 or Mac OS, then open the main.qml file, go to Design mode, and change the theme dimensions, the QNX Momentics IDE may become unresponsive.

7153906

QML profiling may generate more binding entries when simulating a BlackBerry Q10 smartphone on the BlackBerry 10 Device Simulator than on a device.

7087512

QML profiling may be unavailable over Wi-Fi on Linux platforms.

7078160

On Linux, if you deploy a Cascades app to the BlackBerry 10 Device Simulator using the Debug As option, the application BAR file may not be generated in time for a successful deployment.
Workaround: Deploy multiple times until the action completes successfully.

6962706

If you run a C++ debug session on an app, add a JavaScript function while the C++ debug session is still running, and then set a breakpoint in the JavaScript function and debug the app again, you are not prompted to enable JavaScript debugging.

6954450

If you create a list with a context menu, profile the app using the Cascades Profiler, and then check the binding data of the list items on the Event tab, the call number may be double the correct size, with each list item binding twice.

6950453

If QML profiling is started after the application is launched, Caller/Callee information may be missing from the Events tab and 'Jump to Resources' may be disabled.
Workaround: Ensure that the 'Start profiling during application launch' checkbox is enabled prior to profiling.

6923772

If your project contains QML assets stored outside the assets folder, Cascades Builder may not be able to correctly discover them, generating error and warning markers within the editor.

6902394

The lupdate tool does not correctly handle files with names containing more than one dot.
Workaround: Do not use more than one dot when naming project files.

6756141

"When previewing the QML file created using the UIA project template, if you switch between devices and then change the orientation to landscape mode, landscape mode may not display properly and the zoom controls may stop working.
Workaround: Close the QML file and reopen it."

6628784

The application profiler does not correctly report the number of function calls in a shared library of a Cascades app.

6477938

Restarting the QNX Momentics IDE on a Mac may trigger an erroneous "Possible crash detected" message, which can be safely ignored.

6337173

When using the Memory Analysis Tool to analyze Cascades projects, the Memory Problems view takes longer than expected to populate the errors.

6042185

The conditional breakpoint doesn't work in both a JavaScript section of a QML file and a JavaScript function of a JavaScript file.

5896179

You may not be able to run a JavaScript debug session over Wi-Fi.

5886848

WebView controls don't render in QML preview.

5814025

Sometimes when editing JavaScript, code completion displays no proposals when there are proposals to display, including on console functions (such as the console.debug() function) or math functions (such as the Math.sin() function). The functions still work at runtime though.

BBM Social Platform

6592081

Images that use transparency might not appear correctly in the user's list of BBM applications.

6515937

When BBM Connect (Settings > Security and Privacy > Application Permissions) is toggled from on to off, or from off to on, the registration and permission states are not updated.

6118318

If BBM Connect (Settings > Security and Privacy > Application Permissions) for an app is turned off before launching the app, toggling BBM Connect doesn't update the registration status of the app.
Workaround: Turn BBM Connect on before launching the app.

Back to Top

Looking for release notes for previous releases?

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

Back to Top

Last modified: May 1, 2013
  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.