appdoctor-rn
v0.1.3
Published
Lightweight React Native performance and observability SDK
Maintainers
Readme
App Doctor — React Native SDK
Lightweight performance and observability for React Native: screen timing, network latency, and a pluggable event pipeline with minimal setup.
Install
npm install appdoctor-rnPeer dependencies: react, react-native. Optional: @react-navigation/native for stack/tab navigation listeners.
Package
- npm: appdoctor-rn
Quick start
- Wrap your app with
AppDoctorProviderand pass transports (for examplecreateConsoleTransport()). - For React Navigation, pass
createNavigationStateListener(client).listenertoNavigationContainerasonStateChange(see Getting started). - Optionally use
useTrackScreen,useTrackRender,trackApi, andinstrumentAxiosfor extra coverage.
import { NavigationContainer } from "@react-navigation/native";
import {
AppDoctorProvider,
createConsoleTransport,
createNavigationStateListener,
useAppDoctor,
} from "appdoctor-rn";
import { useMemo, type ReactNode } from "react";
function AppShell({ children }: { children: ReactNode }) {
return (
<AppDoctorProvider
transports={[createConsoleTransport()]}
tags={{ env: __DEV__ ? "dev" : "prod" }}
context={{ platform: "react-native" }}
>
<NavWithListener>{children}</NavWithListener>
</AppDoctorProvider>
);
}
function NavWithListener({ children }: { children: ReactNode }) {
const client = useAppDoctor();
const onStateChange = useMemo(
() => createNavigationStateListener(client).listener,
[client],
);
return (
<NavigationContainer onStateChange={onStateChange}>
{children}
</NavigationContainer>
);
}Documentation
Scripts
| Script | Description |
| ------------------- | --------------------------------- |
| npm run build | Build dist/ (CJS + ESM + types) |
| npm test | Run Vitest |
| npm run lint | ESLint |
| npm run typecheck | tsc --noEmit |
License
MIT
