Skip to main content

Compatibility

The SDK works across the widest surface — no fork crashes; every fork can chat.
CapabilityBare RN (old + New Arch)Expo dev build / EASExpo Go
Device key✅ Secure Enclave / Keystore✅ (via config plugin)⚠️ software P-256 fallback
Secure storagereact-native-keychainexpo-secure-storeexpo-secure-store
Realtime (Centrifugo + SSE)
Push✅ (host Firebase)⛔ remote push N/A in Go
Attachments✅ (Expo pickers)
Prebuilt UI
The hardware key needs a dev build (Expo Go can’t load native modules); the SDK transparently falls back to a software ECDSA P-256 key, so you can evaluate the whole flow in Expo Go and ship hardware-backed with no code change.

Core install

npm install @clariodesk/react-native
npm install react-native-get-random-values   # secure RNG — required
Import react-native-get-random-values once, at the very top of index.js, before any other import. The crypto layer depends on it being registered first.

Peer dependencies

Install only what your stack and features need:
# secure storage (required — pick one)
npx expo install expo-secure-store        # Expo
npm install react-native-keychain         # bare RN

# attachments (optional — only if you attach files)
npx expo install expo-image-picker expo-document-picker expo-image-manipulator   # Expo
npm install react-native-image-picker @react-native-documents/picker             # bare RN

# connectivity-reactive reconnect (optional)
npm install @react-native-community/netinfo

Expo

Add the config plugin, then make a dev build (or run in Expo Go for the software tier):
{ "expo": { "plugins": ["@clariodesk/react-native"] } }
// parameterize: ["@clariodesk/react-native", { "enableCamera": false, "enablePush": true }]
npx expo prebuild && npx expo run:ios
The config plugin wires the native module and adds the iOS photo/camera/mic usage strings needed for attachments.

Bare React Native

Autolinking handles the native module. Run the Expo modules installer once (the device-key module is authored with the Expo Modules API), then install pods:
npx install-expo-modules@latest
cd ios && pod install

Push (separate package)

Push lives in @clariodesk/react-native-push so Firebase never autolinks into a headless host. See the push guide.

Next: lifecycle

Wire login, launch, logout, and user-switch.