whatisgithub

What is react-native-gesture-handler?

software-mansion/react-native-gesture-handler — explained in plain English

Analysis updated 2026-06-24

6,724TypeScriptAudience · developerComplexity · 2/5LicenseSetup · moderate

In one sentence

A React Native library that moves touch and gesture recognition off the JavaScript thread and onto the native platform, making swipes, taps, and drags smooth and reliable on iOS and Android.

Mindmap

mindmap
  root((Gesture Handler))
    What It Does
      Native thread gestures
      Replaces JS responders
      Deterministic touch
    Gesture Types
      Tap and long press
      Pan and swipe
      Pinch and rotation
    Platform Support
      iOS native
      Android native
      React Native 0.82+
    Setup
      npm install
      Expo compatible
      Example project included
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add smooth swipe-to-dismiss or swipe-between-screens gestures to a React Native mobile app.

USE CASE 2

Build a Tinder-style draggable card with native-level performance on Android and iOS.

USE CASE 3

Replace sluggish JavaScript gesture handlers in an existing React Native app with native-thread recognition.

USE CASE 4

Create pinch-to-zoom or multi-finger gesture controls in a photo or map view.

What is it built with?

TypeScriptReact NativeJavaObjective-CSwift

How does it compare?

software-mansion/react-native-gesture-handlersteamdeckhomebrew/decky-loaderdinerojs/dinero.js
Stars6,7246,7316,737
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderatemoderateeasy
Complexity2/53/52/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires React Native 0.82 or newer for v3, older projects should use v2 which supports back to React Native 0.63.

MIT license, use freely for any purpose, including commercial apps, with no restrictions beyond keeping the copyright notice.

So what is it?

React Native is a tool for building mobile apps using JavaScript and React. One persistent challenge in this kind of app development is handling touch input: taps, swipes, and other interactions with the screen. By default, React Native manages these through its own JavaScript responder system, which runs on a background thread. That can make gesture recognition feel slow or unpredictable, especially when the app is busy doing other work at the same time. React Native Gesture Handler replaces this default system with one that runs directly on the device's native UI thread, meaning Android or iOS handles the gesture recognition itself rather than delegating it to JavaScript. According to the README, this makes touch interactions not only smooth but also dependable and deterministic, two qualities that are hard to guarantee when gesture tracking runs through a JavaScript layer. The library exposes a declarative API, so developers describe what they want to happen rather than writing step-by-step event handlers. Gestures are no longer routed through the JavaScript responder system at all, they are tracked at the platform level from start to finish. The project is maintained by Software Mansion with support from Shopify and Expo. It supports the three most recent minor versions of React Native. Version 3 requires React Native 0.82 or newer. Version 2 supports a much wider range of older releases going back to React Native 0.63, and a full compatibility table is in the official documentation. There is an example project included in the repository that developers can run on a connected Android or iOS device or emulator to try the API before integrating it into a real project. The library is open source under the MIT License.

Copy-paste prompts

Prompt 1
Help me add a swipe-to-delete gesture to a list item in my React Native app using react-native-gesture-handler.
Prompt 2
Show me how to set up PanGestureHandler from react-native-gesture-handler to build a draggable card component in React Native.
Prompt 3
How do I combine TapGestureHandler and LongPressGestureHandler in react-native-gesture-handler for a press-and-hold action?
Prompt 4
My React Native app gestures feel laggy, show me how to migrate from the default responder system to react-native-gesture-handler.
Prompt 5
Set up react-native-gesture-handler in my Expo project and create a pinch-to-zoom image component.

Frequently asked questions

What is react-native-gesture-handler?

A React Native library that moves touch and gesture recognition off the JavaScript thread and onto the native platform, making swipes, taps, and drags smooth and reliable on iOS and Android.

What language is react-native-gesture-handler written in?

Mainly TypeScript. The stack also includes TypeScript, React Native, Java.

What license does react-native-gesture-handler use?

MIT license, use freely for any purpose, including commercial apps, with no restrictions beyond keeping the copyright notice.

How hard is react-native-gesture-handler to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is react-native-gesture-handler for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.