Skip to content

Installation

Install the SDK and its peer dependencies — peers are not self-enforcing, so install them explicitly alongside the SDK:

Terminal window
npx expo install @rogue/console-sdk react-native-ble-plx

Expo apps also need a development build and the SDK’s config plugin — Bluetooth Low Energy does not run in Expo Go. Continue with Expo setup.

@react-native-async-storage/async-storage is an optional peer. It backs the @rogue/console-sdk/storage/async-storage adapter, which persists the saved-device fleet across app launches:

Terminal window
npx expo install @react-native-async-storage/async-storage

Without it the SDK falls back to in-memory storage — everything works, but saved devices are forgotten when the app restarts, and the SDK logs a one-time warning in development builds so the fallback is never silent.

Requirement Version
React Native 0.79+ (New Architecture)
React ≥ 19.1
react-native-ble-plx ≥ 3.5
Node ≥ 20.19
Expo tested on the two most recent Expo SDKs

@rogue/console-sdk ships as ESM with a curated exports map — there is no CommonJS build. Metro and modern bundlers handle this out of the box.

Jest needs the standard React Native caveat: ESM packages under node_modules must be allow-listed for transformation via transformIgnorePatterns:

jest.config.js
module.exports = {
preset: 'jest-expo', // or 'react-native'
transformIgnorePatterns: [
'node_modules/(?!((jest-)?react-native|@react-native(-community)?|expo(nent)?|@expo(nent)?/.*|@rogue/console-sdk|react-native-ble-plx)/)',
],
};

No moduleNameMapper BLE remapping is needed in tests — mocking is a transport swap through @rogue/console-sdk/testing, so react-native-ble-plx is simply never constructed on test paths.