Skip Navigation

BlackBerry Dynamics SDK for React Native
version 14.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
Changes to supported
React Native
versions
This release adds support for
React Native
0.76.x and 0.77.x.
React Native
0.74.x is deprecated and will be removed in an upcoming release.
This release removes support for
React Native
0.71.x, 0.72.x, and 0.73.x.
Support for 16 KB page sizes
Android
has announced that, starting November 1, 2025, all new and updated apps targeting
Android
15 and later must support 16 KB page sizes. For more information, see Android Developers: Support 16 KB page sizes and Android Developers Bog: Get your apps ready for 16 KB page size devices.
This release of the
BlackBerry Dynamics SDK for React Native
is compatible with the 16 KB page size requirement. It is recommended that you run a mock submission of custom
BlackBerry Dynamics
apps to
Google Play
to identify any additional dependencies that you need to resolve to meet the 16 KB page size requirement.
You must use
React Native
0.77.x to support 16 KB page sizes.
Changes for data leakage prevention (DLP) for
Android
Previously, for
Android
, <Text /> and <TextInput /> components were secured using the BlackBerry-Dynamics-for-React-Native-Text and BlackBerry-Dynamics-for-React-Native-TextInput UI components.
In this release, those UI components have been removed and a new method is required to secure <Text /> and <TextInput />. For instructions, see the DLP for
Android
row in the Features section below.
Support
Feature
Description
Development requirements
  • Windows 11
    (
    Android
    only)
  • Windows 10
    (
    Android
    only)
  • macOS
    X
React Native
supported versions
  • 0.77.x
  • 0.76.x
  • 0.75.x
React Native
version 0.74.x is deprecated and support will be removed in an upcoming release.
The supported versions of
React Native
require
Java
17.
Support for 16 KB page sizes on
Android
requires
React Native
0.77.x (or a later version when supported).
BlackBerry Dynamics SDK
supported versions
Node.js
Version 20.19.4 or later
iOS
requirements
  • Xcode
    15 or later
  • BlackBerry Dynamics SDK for iOS
    14.0:
    iOS
    18 or later
  • BlackBerry Dynamics SDK for iOS
    13.1:
    iOS
    17 or later
  • BlackBerry Dynamics SDK for iOS
    13.0:
    iOS
    16 or later
Android
requirements
  • Java
    17
  • BlackBerry Dynamics SDK for Android
    13.2:
    Android OS
    12 or later, API 31 or later
  • BlackBerry Dynamics SDK for Android
    13.0:
    Android OS
    11 or later, API 30 or later
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.
Secure connectivity
  • On
    iOS
    , XMLHttpRequest, fetch, and WebSocket are secured by the
    BlackBerry Dynamics
    runtime when you add the BlackBerry-Dynamics-for-React-Native-Base module.
  • On
    Android
    , XMLHttpRequest, fetch, and WebSocket are secured by the BlackBerry-Dynamics-for-React-Native-Networking module.
  • <WebView /> is secured in scope of the BlackBerry-Dynamics-for-React-Native-WebView UI component.
Secure storage
  • AsyncStorage is secured in the BlackBerry-Dynamics-for-React-Native-Async-Storage module.
  • SQLite is secured in the BlackBerry-Dynamics-for-React-Native-SQLite-Storage module.
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):
yarn integrate-dlp-android
After you run the command, you receive a prompt to confirm the requirement to build the
React Native
library for
Android
from source instead of the default way. Confirm with yes to continue and integrate DLP. Note that rebuilding from source may increase the build time to approximately 20 minutes, and requires 25 to 30 GB of free space on the system.
Previously, the <Text /> and <TextInput /> components were secured using the BlackBerry-Dynamics-for-React-Native-Text and BlackBerry-Dynamics-for-React-Native-TextInput UI components. These UI components were removed in
BlackBerry Dynamics SDK for React Native
version 14.0.
The BlackBerry-Dynamics-for-React-Native-Clipboard module secures the Clipboard API.
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
  • To add a
    BlackBerry Dynamics
    React Native
    module, run following command:
    $ yarn add
    <path_to_module>
  • To remove a
    BlackBerry Dynamics
    React Native
    module, run following command:
    $ yarn remove
    <path_to_module>
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
:
  • For
    iOS
    , add the following property in
    <app>
    /ios/
    <app-name>
    /Info.plist:
    • Hide the Launcher:
      GDDisableAutomaticLauncherManagement = YES
    • Show the Launcher:
      GDDisableAutomaticLauncherManagement = NO
  • For
    Android
    , add the following property in <app>/android/app/src/main/assets/com.blackberry.dynamics.settings.json:
    • Hide the Launcher:
      "AutomaticLauncherManagement": "false"
    • Show the Launcher:
      "AutomaticLauncherManagement": "true"
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
  • BlackBerry-Dynamics-for-React-Native-Base automatically integrates the
    BlackBerry Dynamics SDK
    for
    iOS
    and
    Android
    into the React Native application.
  • BlackBerry-Dynamics-for-React-Native-Networking secures XMLHttpRequest and fetch APIs on
    Android
    . For more information, see React Native: Networking.
  • BlackBerry-Dynamics-for-React-Native-SQLite-Storage secures SQLite database usage, based on the react-native-sqlite-storage third-party module.
  • BlackBerry-Dynamics-for-React-Native-Async-Storage secures built-in AsyncStorage.
  • BlackBerry-Dynamics-for-React-Native-Clipboard secures the built-in Clipboard API.
  • BlackBerry-Dynamics-for-React-Native-AppKinetics provides the ability to use
    BlackBerry Dynamics
    app-based services within a
    BlackBerry Dynamics
    React Native app to securely communicate with other
    BlackBerry Dynamics
    apps in a process called Inter-Container Communication (ICC) or AppKinetics; also provides service discovery, service consumption, and service providing capabilities.
  • BlackBerry-Dynamics-for-React-Native-FileSystem secures the API for the react-native-fs module; the JavaScript API of this module is the same, but files and directories are now stored and managed within the
    BlackBerry Dynamics
    secure container.
  • BlackBerry-Dynamics-for-React-Native-Launcher allows you to programmatically hide or show the
    BlackBerry Dynamics Launcher
    in your
    BlackBerry Dynamics
    React Native
    apps. The
    BlackBerry Dynamics Launcher
    is integrated automatically and displayed by default when you add the BlackBerry-Dynamics-for-React-Native-Base module.
  • BlackBerry-Dynamics-for-React-Native-Application allows you to access information that is globally available to any
    BlackBerry Dynamics
    app.
  • BlackBerry-Dynamics-for-React-Native-Camera secures the API for react-native-vision-camera. The JavaScript API of this React Native module is the same, but captured media files (photos, recorded videos) are now stored in the
    BlackBerry Dynamics
    secure container.
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
  • BasicNetworking provides examples of using fetch and XMLHttpRequest in different scenarios. This app covers different HTTP request types (GET, POST, PUT, DELETE, and so on), authentication types (basic auth, Digest, NTLM), and includes the ability to send different data types to the server and receive responses for different data types.
  • ClipboardTestApp demonstrates how to use the Clipboard API for data leakage prevention (DLP). It is possible to change the DLP policy on
    UEM
    and see how it affects the clipboard within the app. If DLP is enabled, clipboard data cannot be copied from a
    BlackBerry Dynamics
    app to a non-
    BlackBerry Dynamics
    app, and vice-versa.
  • DLP demonstrates how to use the <Text /> and <TextInput /> UI components together with the
    UEM
    DLP policy option. If DLP is on, it is not possible to perform cut-copy-paste operations to transfer data from
    BlackBerry Dynamics
    to non-
    BlackBerry Dynamics
    applications, and vice-versa.
  • SQLite demonstrates how to use a secure SQLite DB instance in a React Native app.
  • UnitTest runs Jasmine unit tests for fetch, XMLHttpRequest, Clipboard, AsyncStorage, SQLite, and AppKinetics in a React Native application.
  • WebViewBrowser demonstrates how to use the <WebView /> component in a
    React Native
    application.
  • FileSystem demonstrates how to use a secure FileSystem instance in a
    React Native
    app, how to manage files and directories, and how to upload and download files.
  • WebSocketClient and WebSocketServer demonstrate how to establish a connection to a WebSocket server using "ws://" or "wss://" protocols, how to send or receive text or binary data over a WebSocket connection, and how to close a WebSocket connection.
  • AppKinetics demonstrates how to use AppKinetics, or secure Inter-Container Communication (ICC), including sending and receiving files using ICC and creating secure email with
    BlackBerry Work
    or the native email client (if permitted).
  • Policy demonstrates how to retrieve a collection of app-specific configuration and policy settings. The retrieval of these settings happens during the method call or whenever settings are changed.
  • Camera demonstrates the use of the BlackBerry-Dynamics-for-React-Native-Camera module to store photos and recorded videos in the
    BlackBerry Dynamics
    secure container, and demonstrates how to send media files to other
    BlackBerry Dynamics
    apps using Inter-Container Communication.

Known issues

Image content may not be visible on the
iOS
clipboard sample app. (GD-63121)
Flipper cannot be used with the
BlackBerry Dynamics SDK for React Native
in the debug configuration because it disables some
BlackBerry Dynamics
secure networking functionality. Flipper is disabled by default on
iOS
and
Android
. If your
BlackBerry Dynamics SDK for React Native
app does not use the secure connectivity feature (BlackBerry-Dynamics-for-React-Native-Networking module), you can enable Flipper by uncommenting the following:
  • On
    iOS
    : Uncomment the
    use_flipper!()
    line in Podfile.
  • On
    Android
    : Uncomment the
    initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
    line in MainApplication.java for
    React Native
    versions less than 71, or uncomment the
    ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
    line in MainApplication.java for React Native versions 71 and later.
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/reactnative- webrtc/react-native-webrtc.podspec, and then run
pod install
again.