What's new in BlackBerry 10 Native SDK 10.1.0.1020

Mar 22, 2013
  • 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.
  • 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.
  • 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.
  • 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.
  • Other features:
  • MD5 checksum - MD5 checksum files are now available for releases of the BlackBerry 10 Native SDK and the BlackBerry 10 Device Simulator. You can use these files, in conjunction with any checksum tool that supports MD5, to validate the installer files that you download.

New in BlackBerry 10 Native SDK 10.1 Beta (Feb 5, 2013)

  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Other features:
  • MD5 checksum - MD5 checksum files are now available for releases of the BlackBerry 10 Native SDK and the BlackBerry 10 Device Simulator. You can use these files, in conjunction with any checksum tool that supports MD5, to validate the installer files that you download.

New in BlackBerry 10 Native SDK 10.0.09 (Dec 11, 2012)

  • New in this release:
  • Advertising Service
  • Banner ads - You can integrate advertising into your apps and generate additional revenue by using the Advertising Service.
  • APIs
  • Gamepad controllers - Game developers can now receive gamepad and joystick events using the Screen and Windowing Library. Discovering gamepads and handling gamepad input events is done the same way as with other touch events. The SteelSeries Free, Gametel, and Nintendo Wiimote controllers all work out of the box with this API. Bluetooth HID gamepads are also supported. Check out the Gamepad sample.
  • Documentation
  • Near Field Communication Developer's Guide
  • QNX Momentics Tool Suite
  • Windows 8 - Windows 8 is now supported.
  • Mac OS X - Mac OS X Mountain Lion is now supported.
  • Improved build performance of native projects - By default, projects are set up to build one file at a time. To significantly improve build performance, you can use the QNX Momentics IDE parallel build feature.
  • New Project wizard - The New Project wizard combines BlackBerry projects so you can more easily create the project you want. For more information, see Create a BlackBerry C/C++ project
  • IDE updates - The IDE provides an update mechanism to update either or both of the BlackBerry Native SDK or the IDE without reinstallation.
  • Memory Analysis tool - The Memory Analysis tool supports a memory leak collection control which you can activate at any time. You can also change tracing settings dynamically.
  • Device Log - You can use the Device Log view when debugging applications to view log information when using the slogger2 API.
  • BlackBerry WebWorks - You can create BlackBerry WebWorks native extension projects to enable your BlackBerry WebWorks apps to access native APIs.
  • SDK selector - The SDK selector on the toolbar allows you to switch quickly between different OS versions if multiple SDKs are installed.
  • Changes in this release:
  • Application Integration
  • Invocation Framework - To properly support extended character sets, the invocation framework updated its URI handling to enable clients and targets to better coordinate their use of URIs. The invocation framework will now expect valid URIs to be passed in their encoded form to enable the targets to interpret them properly. For non-file URIs, the updated handling will ensure that the framework does not alter the URIs and delivers them as-is. With this change, the targets receiving URIs in invocations can expect to receive encoded URIs and will be required to decode them.
  • Devices
  • Icon size - The icon size for BlackBerry 10 Dev Alpha devices has changed from 150x150 to 114x114. For more information, see the UI guidelines.
  • Bluetooth Library
  • Near Field Communication Library
  • Fixed in this release:
  • BBM Social Platform
  • After blocking a contact from sending application download invitations by selecting "block future invites from " from a pending application invite, the user was unable to unblock the contact.
  • You could create more than the maximum allowable three items in an application profile box on a BlackBerry 10 device.
  • A user could not block future application download invitations from a contact. After selecting "block future invites from ", the contact was still able to send the user invitations.
  • Profile boxes were not updated in real time. For example, when a contact's profile box was modified, the changes were not immediately updated on the current user's BlackBerry device.
  • QNX Momentics Tools Suite
  • The qde utility icon was displayed as an Eclipse icon instead of the QNX Momentics IDE icon.
  • Previously, you couldn't see the Usage and Bands pages in the Memory Analysis tool and you could not select Snapshots from settings. Now you can enable Snapshots and you can see charts for memory snapshots.
  • Warnings when building sample apps no longer appear.
  • OpenAL
  • You could not create two contexts with different attributes by calling alcCreateContext(). Errors were produced after attempting to create the second context, you could not call alcOpenDevice(), and sound was not playable in other OpenAL apps.
  • The function alBufferData() threw an error when called with NULL as the data parameter.

New in BlackBerry 10 Native SDK 10.0.09 Beta 4 (Nov 29, 2012)

  • Title bar changes:
  • Several changes have been made to the TitleBar control in Cascades. The appearance has been improved, and support for dark themes and bright themes has been incorporated. Also, the DropDown control is now used automatically with the title bar, when appropriate.
  • Font size changes:
  • Some of the font sizes have changed a bit. If you use system fonts in your apps, you shouldn't need to make any changes to accommodate the new sizes. If you use custom font sizes, you might need to adjust your UI to accommodate the new sizes.
  • Dialogs, prompts, and toasts:
  • Several new features have been added to enhance your experience with these components. Among other additions, you can now enable emoticons, add custom buttons, and customize the message that appears when you use a system credentials prompt.
  • Cascades UI framework:
  • Built-in controls:
  • Text input controls - Controls that let users type text, such as TextField and TextArea, now support text length restrictions. You can limit the amount of text that a user can type in these fields.
  • Title bar - The TitleBar control has changed color and is now blue. You can use the branded property to specify whether you want to use a blue title bar in your apps. The title bar also uses a different default color depending on the theme that you set for your app. If you use the dark theme, the title bar remains dark. If you use the bright theme, the title bar can be either blue or bright, with blue being the default appearance for bright-themed apps.
  • List view - In a ListView, the list items have changed slightly in font size, height, and divider appearance.
  • Segmented control and drop down - A SegmentedControl is typically used in a title bar. Now, this control changes to a DropDown when there are too many options to display at once. To preserve a consistent look and feel, the SegmentedControl and DropDown controls have been aligned.
  • Web view - The WebView control has been improved. You can now share cookies (persistent information across requests) among all WebView controls that are running in the same process. A new class, WebCookieJar, manages cookies as strings in a database.
  • Other features:
  • Text editor API - You can now programmatically insert text into text controls. You can also control the position of the cursor within these controls, and you can track the text that's currently selected.
  • Font sizes - The predefined font sizes (such as XSmall, Medium, XLarge, and so on) have changed slightly. If you use system font sizes in your apps, these changes shouldn't affect the appearance of your UI, but you should test for any inconsistencies.
  • Cascades platform APIs:
  • Dialog boxes, prompts, and toasts - Several additions and improvements have been made to these controls, including the following:
  • You can use the emoticonsEnabled property to display smiley faces as emoticons in a SystemDialog, SystemCredentialsPrompt, or SystemPrompt.
  • You can associate an action with the return key in a SystemDialog, SystemListDialog, or SystemPrompt using the returnKeyAction property.
  • You can add a custom button to a SystemPrompt or SystemCredentialsPrompt.
  • The buttonAreaLimit property has moved from the SystemDialog class to the SystemListDialog class.
  • You can customize a message that is displayed when invalid credentials are entered in a SystemCredentialsPrompt using the validationMessage property.
  • You can use the new system classes, SystemProgressDialog, SystemProgressToast, and SystemUiProgressState, to create standardized progress dialog boxes and prompts.
  • Notifications - You can set, retrieve, or reset the invocation request that is associated with a Notification. When you reset the invocation request for a notification, this resets the invokeRequest property to a context-specific default value, which is a bb::system::InvokeRequest instance.
  • Payment Service - There are several new classes and other elements that can help you make your Payment Service apps more effective:
  • You can use new classes DigitalGoodReply, PriceReply, and ExistingPurchasesReply to analyze replies to PaymentManager requests. The PaymentReply class is the base class for all PaymentManager replies. The DigitalGoodReply, PriceReply, and ExistingPurcasesReply classes are children of PaymentReply and provide details for specific PaymentManager requests.
  • You can use a new constant, PaymentManager::Subscription_App, as the digitalGoodId in a call to the requestSubscriptionStatus() function to check the status of an app that is priced as a subscription item in BlackBerry World.
  • Location - The Maps API has been improved. There is now support for pin drops using the MapLongPressToPinDrop class. A user can press a location on a map to drop a pin at that location. You can create points on a map (represented by latitude and longitude coordinates) using the Point class. You can also define the limits of a geographical area on a map using the BoundingBox class.
  • Development mode notifications - Previously, when you turned on development mode on the device, you would see an indicator at the top of the screen. Now, a notification is displayed in the BlackBerry Hub.

New in BlackBerry 10 Native SDK 10.0.09 Beta 3 (Sep 26, 2012)

  • 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 centered 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 centered 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++.
  • 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.
  • Cascades platform APIs:
  • 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.
  • 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.

New in BlackBerry 10 Native SDK 10.0.06 Beta 2 (Jul 20, 2012)

  • New in this release:
  • IDE and tooling enhancements including
  • Bar-descriptor.xml in the IDE now provides you the ability to add multiple icons and splashscreens to be uploaded as assets and selects different splash screens based on the resolution of the device.
  • Performance improvements for faster debugging.
  • When you hover over a function in IDE, documentation for that function will be displayed.
  • Tools for Cascades are built into the QNX Momentics IDE and let you design your UI using a visual interface. When you change the code that represents your UI, you can see the effects immediately in the design view.
  • BPS API additions
  • Language and regions (region.h) - The region service provides functions for reading the device's current region locale settings.
  • Media controllers (mediacontroller.h) - This service provides functions for playlist control (next track, previous track), volume control, and for accessing the metadata of media being played.
  • Media players (mediaplayer.h) - This service provides functions for playback state changing, accessing the duration/position values, and setting the metadata for the media.
  • Navigator invoke (navigator_invoke.h) - Navigator invoke defines the invocation framework service, which allows you to send and receive application or viewer invocations, to send queries to the invocation framework, and to send data between a parent application and the corresponding viewer.
  • Notifications (notification.h) - Contains functions to control the notification system on the device.
  • API documentation additions
  • Near Field Communication Library Reference - NFC is simply a very short range radio communication technology. The BlackBerry 10 Near Field Communication library provides various APIs that enable you to create powerful NFC applications.
  • Audio Manager Library Reference - The audio manager library allows applications to set up, and process events from audio devices supported on the target.
  • Scoreloop SDK 2.0 Beta 3
  • Updated documentation to help you create applications, including a new porting guide to help guide you through porting your existing code to the BlackBerry 10 device
  • Fixed in this release:
  • Integrated Development Environment and Tools
  • In the QNX Momentics IDE, it is now possible to add permissions to control the LED in the BAR Descriptor editor on the Application tab.
  • APIs
  • In previous releases of the native SDK, screen events may be dispatched for a brief period after screen_stop_events() is called. This has been fixed.
  • Samples
  • The New Example wizard now asks you to define the active build configuration. This eliminates the requirement to switch it before launching your sample application.
  • In previous versions, some images or dialog boxes in native SDK samples may be cut off or displayed incorrectly. This has been fixed.
  • In previous versons, when you build native SDK sample applications, you might see some build warnings that could be ignored. This has been fixed.

New in BlackBerry 10 Native SDK 10.0.04 Beta (Jun 8, 2012)

  • New in this release:
  • IDE enhancements including
  • Performance improvements for faster debugging.
  • Support for GDB pretty-printing of values.
  • Tools for Cascades are built into the QNX Momentics IDE and let you design your UI using a visual interface. When you change the code that represents your UI, you can see the effects immediately in the design view.
  • Scoreloop SDK 2.0 Beta 1
  • The new Camera Library allows you to interact with cameras connected to a BlackBerry 10 device. You can connect to the camera, control the viewfinder, take photos, and record video. The API also provides you read access from different stages in the imaging datapath.
  • Updated documentation to help you create applications, including a new porting guide to help guide you through porting your existing code to the BlackBerry 10 device.
  • Fixed in this release:
  • Integrated Development Environment and Tools
  • In the QNX Momentics IDE, it is now possible to add permissions to control the LED in the BAR Descriptor editor on the Application tab.