BlackBerry Dynamics SDK for React Native version 15.0
The BlackBerry Dynamics SDK for React Native can be downloaded from BlackBerry Developer Downloads. Development guidance is contained in the README file of the download package.
New in this release
|
Feature |
Description |
|---|---|
|
Support for the Expo framework |
This release adds support for the Expo framework, which React Native now recommends for app development. Expo support has been added to the updated base module, BlackBerry-Dynamics-for-React-Native-Base version 2.0.0. Expo support was validated with Expo SDK 57. The updated base module works with both native bare projects and Expo projects. The base module detects the project type that it is installed into. For bare projects it installs hooks as it did previously. For Expo apps it functions as an Expo configuration plug-in; you register the base module in the Expo Go is not supported. The BlackBerry Dynamics SDK for React Native requires native module integration, so you must switch from Expo Go to an Expo Development Build when integrating the SDK ( The recently released Expo SDK 58 is not currently supported; do not use Expo SDK 58 as it may cause conflicts with the BlackBerry Dynamics SDK for React Native version 15.0. Support for Expo SDK 58 is planned for an upcoming release. For more implementation details, see the "Expo framework" row in the Features table below. |
|
Supported React Native versions |
This release supports React Native 0.84.x, 0.85.x, and 0.86.x. Earlier versions of React Native are no longer supported. |
|
Supported Node.js versions |
Node.js version 22.13.0 or later. |
|
Android development requirements |
|
|
iOS development requirements |
Note: Xcode 27 is not currently supported due to a React Native limitation. Apple requires UIScene for apps compiled with iOS SDK 27, but the React Native versions that are currently supported use the AppDelegate window lifecycle and do not use UIScene. BlackBerry Dynamics React Native apps built with Xcode 27 may fail at launch, or may build and install and then stop responding immediately.
Adding a SceneDelegate or UIApplicationSceneManifest is not a workaround and can cause additional issues. The current workaround is to build with a supported version of Xcode on a Mac, as apps built this way can be installed and run on devices and simulators running iOS 27. Do not rebuild those apps with Xcode 27 until a later version of the BlackBerry Dynamics SDK for React Native supports a React Native version that implements UIScene. |
|
Enhancements to data leakage prevention (DLP) for Android |
|
|
Updates to the BlackBerry-Dynamics-for-React-Native-Camera module |
The BlackBerry-Dynamics-for-React-Native-Camera module has been updated to version 2.0.0. The new version supports The camera sample (SampleApplications/bare/Camera) has been updated to use the 2.0.0 version of the module. An Expo camera sample is also available at SampleApplications/expo/Camera. Update your custom BlackBerry Dynamics apps that use the BlackBerry-Dynamics-for-React-Native-Camera module to use the new version. See the README file for the BlackBerry-Dynamics-for-React-Native-Camera module for integration instructions and for details about some changes for how to use the module. |
Support
|
Feature |
Description |
|---|---|
|
Development requirements |
|
|
React Native supported versions |
Earlier versions of React Native are not supported. |
|
BlackBerry Dynamics SDK supported versions |
|
|
Node.js |
Version 22.13.0 or later. |
|
iOS requirements |
Note: Xcode 27 is not currently supported due to a React Native limitation. Apple requires UIScene for apps compiled with iOS SDK 27, but the React Native versions that are currently supported use the AppDelegate window lifecycle and do not use UIScene. BlackBerry Dynamics React Native apps built with Xcode 27 may fail at launch, or may build and install and then stop responding immediately.
Adding a SceneDelegate or UIApplicationSceneManifest is not a workaround and can cause additional issues. The current workaround is to build with a supported version of Xcode on a Mac, as apps built this way can be installed and run on devices and simulators running iOS 27. Do not rebuild those apps with Xcode 27 until a later version of the BlackBerry Dynamics SDK for React Native supports a React Native version that implements UIScene. |
|
Android requirements |
|
Features
|
Feature |
Description |
|---|---|
|
Integration with BlackBerry Dynamics |
Integration of the BlackBerry Dynamics SDK for iOS and Android into the React Native application is supported by the addition of the BlackBerry-Dynamics-for-React-Native-Base module. You can also integrate a locally downloaded version of BlackBerry Dynamics SDK for iOS into your BlackBerry Dynamics React Native app. |
|
Expo framework |
The BlackBerry Dynamics SDK for React Native version 15.0 and later supports the Expo framework. Expo support was validated with Expo SDK 57. Version 2.0.0 or later of the base module, BlackBerry-Dynamics-for-React-Native-Base, works with native bare projects and Expo projects. The base module detects the project type that it is installed into. For bare projects it installs hooks, as it did in version 1.x. For Expo apps, the base module functions as an Expo configuration plug-in; you register the base module in the Note the following implementation details:
|
|
Secure connectivity |
|
|
Secure storage |
|
|
Data leakage prevention (DLP) for iOS |
The <Text /> component, <TextInput /> component, and Clipboard API are secured by integrating BlackBerry Dynamics. |
|
Data leakage prevention (DLP) for Android |
After you add the base module, use the following command to secure <Text /> and <TextInput /> components; this should be the last command you run before you build the app (using yarn to add or remove a package afterwards will override the changes made by this command):
This command uses a local copy of the React Native Android library. In previous versions of the BlackBerry Dynamics SDK for React Native, this command built the React Native Android library from source; as of SDK version 15.0, this is no longer required. This new method significantly reduces the build time and removes the heavy storage requirement of the previous method. Expo apps do not require the The BlackBerry-Dynamics-for-React-Native-Clipboard module secures the Clipboard API. For a sample implementation, see the DLP sample (SampleApplications/bare/DLP) or the Expo DLP sample (SampleApplications/expo/DLP). |
|
Inter-Container Communication (ICC) |
ICC (also known as AppKinetics) provides service discovery, service consumption, and service providing capabilities for BlackBerry Dynamics React Native apps and allows secure communication with other BlackBerry Dynamics apps. To implement some ICC capabilities in BlackBerry Dynamics React Native apps, use the BlackBerry-Dynamics-for-React-Native-AppKinetics module. |
|
Support for Yarn package manager |
For more information, see the README file for each module. |
|
Importing a prepopulated SQLite database |
You can use any of the methods detailed here to import a prepopulated SQLite database: Importing a prepopulated database. The third method is supported for Android only. |
|
Integration of the BlackBerry Dynamics Launcher |
As of SDK version 13.0, the BlackBerry Dynamics Launcher is integrated automatically with the BlackBerry Dynamics SDK for React Native and does not need to be integrated separately. When you add the BlackBerry-Dynamics-for-React-Native-Base module, the BlackBerry Dynamics Launcher is integrated automatically and shown in apps by default. You can use the BlackBerry-Dynamics-for-React-Native-Launcher module to hide or show the BlackBerry Dynamics Launcher:
As of the BlackBerry Dynamics SDK for React Native 13.0, the BlackBerry-Dynamics-for-React-Native-Launcher module should be used only with BlackBerry Dynamics SDK for Android 13.0 or later and the BlackBerry Dynamics SDK for iOS 13.0 or later. |
Package contents
|
Feature |
Description |
|---|---|
|
Modules |
|
|
UI components |
BlackBerry-Dynamics-for-React-Native-WebView secures the built-in <WebView /> UI component to securely load public and enterprise resources within a WebView. |
|
Sample apps |
The SDK package includes the following sample apps. There are two versions of each sample app: a version for bare React Native projects, found in SampleApplications/bare, and a version for Expo projects, found in SampleApplications/expo. Every sample app includes setup and integration instructions in a dedicated README file.
|
Known issues
|
Image content may not be visible on the iOS clipboard sample app. (GD-63121) |
|
When both default and secure SQLite libraries are linked to an iOS project, it can cause conflicts and unpredictable behavior. Workaround: Remove the sqlite3 dependency in */node_modules/react-native-webrtc/react-native-webrtc.podspec, and then run |