New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

react-native-shake

Package Overview
Dependencies
Maintainers
1
Versions
56
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-shake

React Native shake event detector

latest
Source
npmnpm
Version
6.8.5
Version published
Weekly downloads
33K
15.47%
Maintainers
1
Weekly downloads
 
Created
Source

react-native-shake

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.

npm version Monthly downloads New Architecture TypeScript License: MIT

If this project helps you, consider buying me a pizza 🍕

"Buy Me A Coffee"

Requirements

Minimum
iOSiOS 13.0+
AndroidAPI 21+ (Android 5.0)
React Native0.68+

Features

  • 📱 Cross-Platform: Works on both iOS and Android
  • New Architecture: Built with Turbo Module support
  • 🔷 TypeScript: Full TypeScript definitions included
  • 🪶 Lightweight: Minimal footprint, no heavy dependencies
  • 🔔 Simple API: Subscribe and unsubscribe with one call each

Installation

npm install react-native-shake

or

yarn add react-native-shake

iOS Setup

Run pod install after installing the package:

cd ios && pod install

Android Setup

No additional configuration required. The library links automatically via autolinking (React Native 0.60+).

Usage

Basic Usage (v5.x.x and higher)

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;
};

Legacy Usage

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');
  }
}

API

RNShake.addListener(callback)

Registers a listener for the shake event. Returns a subscription object.

ParameterTypeDescription
callback() => voidFunction 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();

TypeScript Support

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!');
});

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT

Keywords

react-native

FAQs

Package last updated on 04 Apr 2026

Did you know?

Socket

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.

Install

Related posts