React Native Gesture Handler
Declarative, native-driven touch and gesture handling for React Native, recognized on the UI thread.
Repository Health
Technical Analysis
React Native Gesture Handler replaces the JavaScript responder system with a declarative API that recognizes and tracks gestures directly on the native UI thread. Because touch handling never has to round-trip through the JS bridge, interactions stay smooth, deterministic, and responsive even when the JS thread is busy.
The library ships a rich gesture vocabulary — pan, pinch, rotation, tap, long-press, fling, hover, and more — that can be composed together, plus native-backed buttons, touchables, and drop-in replacements for common React Native components. It pairs naturally with Reanimated to build high-performance, fully native touch experiences.
What You Get
- A declarative Gesture API with GestureDetector for defining and composing recognizers
- A full set of built-in gestures: pan, pinch, rotation, tap, long-press, fling, hover, native, and manual
- Native-backed buttons and touchables (RectButton, BorderlessButton, TouchableOpacity, and more)
- First-class integration with Reanimated for UI-thread-driven animations
- Cross-platform support across iOS, Android, web, and macOS
Common Use Cases
- Building swipeable rows, drawers, and bottom sheets
- Implementing pinch-to-zoom and rotation on images or maps
- Creating draggable and reorderable list interfaces
- Wiring smooth, gesture-driven animations together with Reanimated
Under The Hood
Architecture - The library is split between a TypeScript surface in packages/react-native-gesture-handler/src and native implementations in Kotlin (Android), Objective-C++/Objective-C (iOS), and shared C++. The JS layer (src/handlers/gestures) defines composable Gesture objects — pan, pinch, rotation, tap, long-press, fling, hover, native, and manual — that are attached to views through a single GestureDetector. Gesture configuration is serialized down to the native RNGestureHandlerModule (with .web, .windows platform variants), where recognition and tracking happen on the UI thread; results flow back through an event receiver so gestures resolve without a JS-bridge round-trip.
Tech Stack - Written primarily in TypeScript (~58%) with Kotlin, Objective-C++, and C++ for the native modules. The package is built with react-native-builder-bob and tsc, managed in a Yarn 4 workspaces monorepo alongside example apps. It targets the three latest React Native minor releases and integrates optionally with Reanimated for worklet-driven animation.
Code Quality - The codebase is strongly typed with dedicated type files (typeUtils.ts, per-gesture prop types) and platform-specific file resolution (.web.ts, .android.tsx, .windows.ts). A Jest test suite lives under src/__tests__ with mocks in src/__mocks__, and the project enforces ESLint, Prettier, and a circular-dependency check via madge. Native formatting is gated through spotless and clang-format in CI.
API Design - The modern Gesture API is ergonomic and declarative: recognizers are created via a Gesture factory, configured with chained methods, composed with Race/Simultaneous/Exclusive relations, and attached with one GestureDetector. Extensive documentation, a versioned compatibility table, and a runnable example app lower the barrier, though the breadth of gestures, composition rules, and required root-view setup give it a moderate learning curve.
Used by 23 apps in this directory
MentraOS
AI Development · Developer Tools
The open source operating system and SDK that lets developers build one app and run it across smart glasses from Even Realities, Vuzix, Mentra Live, and more.
Multica
AI Assistants · AI Development
Turn coding agents into real teammates — assign issues, track progress, and compound reusable skills across a vendor-neutral, self-hosted platform.
Notesnook
File Storage · Note Taking · Security
End-to-end encrypted, open-source note-taking where your data stays yours — even from the server.
Onyx
AI Agents · AI Assistants · Knowledge Management
Self-hostable AI platform with agentic RAG, 50+ connectors, deep research, code execution, and support for every major LLM provider.
Orca
AI Agents · AI Code Assistants
An open-source Agent Development Environment that orchestrates fleets of parallel AI coding agents — Claude Code, Codex, Gemini and more — each running in its own isolated git worktree.
Papra
Bookmarks Archiving
Self-hosted document archiving with email ingestion, OCR full-text search, and pluggable storage — store once, find anything.
paseo
AI Agents · AI Code Assistants
One unified interface to orchestrate Claude Code, Codex, Copilot, OpenCode, and Pi agents in parallel from desktop, mobile, or the terminal.
Polar
Developer Tools · Ecommerce · Invoicing Finance
Open source payments infrastructure that turns software into a business — subscriptions, usage-based billing, digital products, and merchant-of-record compliance in one platform.
rakazo
AI Agents · AI Assistants
An open-source platform for persistent AI teammates that own their own conversations, memory, routines, and computers — self-hosted, model-agnostic, and available on web, desktop, and mobile.