React Native SDK
React Native SDK for JustAnalytics mobile app monitoring.
Installation#
npm install @justanalyticsapp/react-native
# or
yarn add @justanalyticsapp/react-native
# Install peer dependencies
npx expo install expo-device expo-constants
Quick Start#
// App.tsx
import { JustAnalyticsProvider } from '@justanalyticsapp/react-native';
export default function App() {
return (
<JustAnalyticsProvider
siteId="YOUR_SITE_ID"
apiKey="YOUR_API_KEY"
environment="production"
>
<NavigationContainer>
<AppNavigator />
</NavigationContainer>
</JustAnalyticsProvider>
);
}
Screen Tracking#
Automatically track screen views with React Navigation:
import { useJustAnalytics } from '@justanalyticsapp/react-native';
function AppNavigator() {
const { trackScreen } = useJustAnalytics();
return (
<NavigationContainer
onStateChange={(state) => {
const currentRoute = getActiveRouteName(state);
trackScreen(currentRoute);
}}
>
<Stack.Navigator>
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Profile" component={ProfileScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
Error Tracking#
import { useJustAnalytics } from '@justanalyticsapp/react-native';
function PaymentScreen() {
const { captureException } = useJustAnalytics();
const handlePayment = async () => {
try {
await processPayment();
} catch (error) {
captureException(error, { tags: { screen: 'payment' } });
}
};
return <Button onPress={handlePayment} title="Pay Now" />;
}
Error Boundary#
import { JustAnalyticsErrorBoundary } from '@justanalyticsapp/react-native';
function App() {
return (
<JustAnalyticsErrorBoundary fallback={<CrashScreen />}>
<MainApp />
</JustAnalyticsErrorBoundary>
);
}
Custom Events#
const { trackEvent } = useJustAnalytics();
trackEvent('purchase_complete', {
product: 'Pro Plan',
price: 49.99,
currency: 'USD',
});
Performance#
const { startSpan } = useJustAnalytics();
const loadData = async () => {
const result = await startSpan('load-feed', async () => {
const response = await fetch('/api/feed');
return response.json();
});
setData(result);
};
User Context#
const { setUser } = useJustAnalytics();
// After login
setUser({
id: user.id,
email: user.email,
name: user.name,
});
Platform Support#
| Platform | Min Version | |----------|------------| | iOS | 13.0+ | | Android | API 24+ (Android 7.0) | | Expo | SDK 49+ |
Auto-Captured Data#
- App launches and foreground/background transitions
- Screen views (with React Navigation integration)
- Unhandled JS exceptions and native crashes
- Network requests (fetch/XMLHttpRequest)
- Device info (model, OS version, screen size)