React Native Graph: Smooth, Performant Graphs for Your Mobile Apps
If you've ever tried to render real-time graphs or charts in React Native, you know the struggle. Performance tanks, animations stutter, and you end up fighting the JavaScript bridge instead of shipping features.
That's where React Native Graph comes in. It's a native module that offloads graph rendering to the GPU, giving you smooth, high-performance line and area charts that feel native. No more janky canvas workarounds.
What It Does
React Native Graph is a simple, declarative component for rendering line graphs (and soon other chart types) in React Native. Under the hood, it uses Metal on iOS and OpenGL on Android to draw directly on the GPU, bypassing the JavaScript thread entirely.
You define your data points as an array of {x, y} values, set a few props like color and lineWidth, and you get a beautifully smooth animated graph. It even supports real-time data updates without frame drops.
Why It’s Cool
Zero JavaScript bridge overhead. Most chart libraries in RN serialize data through the bridge, which kills performance for anything beyond a few hundred points. React Native Graph sends raw data to the native side once, then just holds a reference.
Hardware accelerated. By using Metal and OpenGL, it gets full GPU rendering. That means smooth animations, even with thousands of data points.
Simple API. You don't need to learn a complex charting DSL. Just pass your data and style it like any other RN component.
Real-time ready. Perfect for streaming data from sensors, crypto prices, or live health metrics. The component handles updates efficiently without re-rendering the whole tree.
How to Try It
Install it via npm or yarn:
npm install react-native-graph
# or
yarn add react-native-graph
Then link the native module (if you're not using autolinking):
cd ios && pod install
Basic usage looks like this:
import { Graph } from 'react-native-graph';
const data = [
{ x: 0, y: 10 },
{ x: 1, y: 20 },
{ x: 2, y: 15 },
{ x: 3, y: 30 },
{ x: 4, y: 25 },
];
export default function MyChart() {
return (
<Graph
data={data}
color="#6A8E9F"
lineWidth={2}
animated={true}
style={{ height: 200, width: 300 }}
/>
);
}
Check the GitHub repo for more advanced examples and the full API.
Final Thoughts
This isn't another overengineered charting library. It's a focused solution to a specific pain point: rendering smooth, performant graphs in React Native without fighting the platform. If you've ever needed to show real-time data on mobile, it's worth a look.
Give it a spin, and let me know if it lives up to the hype (or not).
Want more cool open source finds? Follow us at @githubprojects
Repository: https://github.com/margelo/react-native-graph