
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
react-native-shake
Advanced tools
A lightweight React Native library that detects shake gestures on both iOS and Android. Built with support for React Native's New Architecture (Turbo Modules).
Works best on real devices — shake detection is limited in simulators/emulators.
If this project helps you, consider buying me a pizza 🍕
| Minimum | |
|---|---|
| iOS | iOS 13.0+ |
| Android | API 21+ (Android 5.0) |
| React Native | 0.68+ |
npm install react-native-shake
or
yarn add react-native-shake
Run pod install after installing the package:
cd ios && pod install
No additional configuration required. The library links automatically via autolinking (React Native 0.60+).
import React from 'react';
import RNShake from 'react-native-shake';
export const MyComponent = () => {
React.useEffect(() => {
const subscription = RNShake.addListener(() => {
// Your shake handler here...
});
return () => {
subscription.remove();
};
}, []);
return null;
};
import RNShake from 'react-native-shake';
// For v4.x.x:
class MyComponent extends React.Component {
componentDidMount() {
RNShake.addListener(() => {
// Your code...
});
}
componentWillUnmount() {
RNShake.removeListener();
}
}
// For v3.x.x and below:
class MyComponent extends React.Component {
componentDidMount() {
RNShake.addEventListener('ShakeEvent', () => {
// Your code...
});
}
componentWillUnmount() {
RNShake.removeEventListener('ShakeEvent');
}
}
RNShake.addListener(callback)Registers a listener for the shake event. Returns a subscription object.
| Parameter | Type | Description |
|---|---|---|
callback | () => void | Function called when a shake is detected |
Returns: EmitterSubscription — call .remove() to unsubscribe.
const subscription = RNShake.addListener(() => {
console.log('Device shaken!');
});
// Later, to unsubscribe:
subscription.remove();
RNShake.removeAllListeners()Removes all active shake event listeners.
RNShake.removeAllListeners();
This package includes full TypeScript definitions. Import and use it directly with type safety:
import RNShake from 'react-native-shake';
import type { EmitterSubscription } from 'react-native';
const subscription: EmitterSubscription = RNShake.addListener(() => {
console.log('Shake detected!');
});
See the contributing guide to learn how to contribute to the repository and the development workflow.
MIT
FAQs
React Native shake event detector
The npm package react-native-shake receives a total of 27,255 weekly downloads. As such, react-native-shake popularity was classified as popular.
We found that react-native-shake demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.