A comprehensive network request debugging tool for React Native applications. Monitor, inspect, and debug all your app's network requests with an intuitive overlay interface.
- Real-time Network Monitoring - Automatically intercepts all fetch() and XMLHttpRequest calls
- Overlay Interface - Non-intrusive floating button and modal interface
- Request Details - View headers, body, response, timing, and status codes
- cURL Generation - Copy requests as cURL commands for debugging
- Request Filtering - Search and filter by URL, method, or API endpoints
- Error Tracking - Easily identify failed requests and network errors
- Device Shake Support - Optional shake-to-show functionality
npm install react-native-api-debugger
This package requires the following peer dependencies:
npm install @react-native-clipboard/clipboard react-native-shake
import React, { useEffect } from 'react';
import { View } from 'react-native';
import { networkLogger, NetworkLoggerOverlay } from 'react-native-api-debugger';
export default function App() {
useEffect(() => {
// Initialize the network logger
networkLogger.setupInterceptor();
}, []);
return (
<View style={{ flex: 1 }}>
{/* Your app content */}
{/* Add the network logger overlay */}
<NetworkLoggerOverlay networkLogger={networkLogger} />
</View>
);
}
import React, { useEffect } from 'react';
import { View } from 'react-native';
import { networkLogger, NetworkLoggerOverlay } from 'react-native-api-debugger';
export default function App() {
useEffect(() => {
networkLogger.setupInterceptor();
}, []);
return (
<View style={{ flex: 1 }}>
{/* Your app content */}
{/* Enable shake-to-show functionality */}
<NetworkLoggerOverlay
networkLogger={networkLogger}
enableDeviceShake={true}
/>
</View>
);
}
The UI component that displays the network logs.
Prop | Type | Default | Description |
---|---|---|---|
networkLogger |
NetworkLogger |
Required | The network logger instance |
enableDeviceShake |
boolean |
false |
Enable shake-to-show functionality |
<NetworkLoggerOverlay
networkLogger={networkLogger}
enableDeviceShake={true}
/>
The package exports TypeScript types for better development experience:
import type {
NetworkLog,
NetworkResponse,
NetworkRequestHeaders,
LogListener
} from 'react-native-api-debugger';
import { networkLogger, NetworkLoggerOverlay } from 'react-native-api-debugger';
export default function App() {
useEffect(() => {
// Only enable in development
if (__DEV__) {
networkLogger.setupInterceptor();
}
}, []);
return (
<View style={{ flex: 1 }}>
{/* Your app content */}
{/* Only show in development */}
{__DEV__ && (
<NetworkLoggerOverlay
networkLogger={networkLogger}
enableDeviceShake={true}
/>
)}
</View>
);
}
// Only enable in development builds
if (__DEV__) {
networkLogger.setupInterceptor();
}
The logger automatically limits stored requests to prevent memory issues:
- Maximum 100 requests stored
- Oldest requests are automatically removed
Be cautious with sensitive data in network requests:
- The logger captures all headers and request/response bodies
- Consider disabling in production builds
- Review logged data before sharing screenshots
- Ensure you're importing types correctly:
import type { NetworkLog } from 'react-native-api-logger';
We welcome contributions! Please see our Contributing Guide for details.
MIT License - see LICENSE file for details.
- π Bug Reports: GitHub Issues
- π‘ Feature Requests: GitHub Discussions
- π Documentation: Wiki
Made with β€οΈ for React Native developers
See the contributing guide to learn how to contribute to the repository and the development workflow.
MIT
Made with create-react-native-library