Logo Lanfrica

Unilitix-hq/react-native-unilitix

Domain:

digital infrastructure

Record type:

software
Creator:
Uni
Host:
Official React Native SDK for Unilitix — African-first mobile UX analytics # react-native-unilitix Official React Native SDK for Unilitix — African-first mobile UX analytics. ## Install ```bash npm install react-native-unilitix@^1.0.4 # or yarn add react-native-unilitix@^1.0.4 ``` ## Quick start ```tsx import Unilitix, { setupUnilitixCrashHandler } from 'react-native-unilitix'; import { useEffect } from 'react'; export default function App() { useEffect(() => { Unilitix.init('YOUR_API_KEY', { debug: true }).then(() => { setupUnilitixCrashHandler(); }); }, []); } ``` Get your API key at app.unilitix.com → Settings → Apps → Create App. ## Track events ```ts Unilitix.track('purchase_completed', { amount: 5000, currency: 'NGN', }); ``` ## Identify users ```ts // After login Unilitix.identify('user_123', { name: 'Tosin', plan: 'pro', country: 'Nigeria', }); // After logout Unilitix.reset(); ``` ## Screen tracking Automatic screen tracking requires wiring the navigation listener: ```ts import { createUnilitixNavigationListener } from 'react-native-unilitix'; {/* your app */} ``` > **Note:** The `autoTrackScreens` config option has no effect in React Native — all screens run inside a single Android `Activity`, so native lifecycle callbacks cannot detect React Navigation transitions. Always use `createUnilitixNavigationListener` or call `Unilitix.screen()` manually. ## Crash tracking Native crashes are captured automatically. For JS exception tracking, add: ```ts import { setupUnilitixCrashHandler } from 'react-native-unilitix'; // Call once after init() Unilitix.init('YOUR_API_KEY').then(() => { setupUnilitixCrashHandler(); }); ``` ## Verify your integration In debug mode, after `init()` resolves you will see in Metro console: ``` [Unilitix] ✅ SDK initialized [Unilitix] ✅ Session started [Unilitix] ⚠️ No screen events detected. Did you wire Unilitix.screen() to NavigationContainer.onStateChange? ``` The `⚠️` warning only appears if `Unilitix.screen()` or `createUnilitixNavigationListener` is never called within 5 sec …