Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. React Native
  3. react-native-discovery

react-native-discovery

MITObjective-C

A React Native library for discovering nearby devices and exchanging data using Bluetooth Low Energy (BLE).

GitHubGitHub
115 stars19 forks0 contributors

What is react-native-discovery?

Discovery is a React Native library that enables apps to discover nearby devices using Bluetooth Low Energy (BLE) and exchange identifier values, functioning reliably in both foreground and background states. It provides a simple API for device discovery and advertising, making it ideal for proximity-based applications.

Target Audience

React Native developers building mobile applications that require proximity-based device discovery, such as social apps, multiplayer games, or location-aware services.

Value Proposition

Developers choose Discovery for its straightforward API that abstracts BLE complexities, reliable foreground/background operation, and cross-platform consistency on iOS and Android.

Overview

Discover nearby devices using BLE.

Use Cases

Best For

  • Building React Native apps that need to detect nearby devices via Bluetooth Low Energy (BLE).
  • Creating proximity-based applications like social networks or games that exchange user identifiers.
  • Developing apps requiring reliable device discovery in both foreground and background states.
  • Implementing multi-UUID support for managing separate discovery sessions within a single app.
  • Optimizing BLE scanning on Android with customizable scan cycles to conserve battery.
  • Monitoring Bluetooth state changes in React Native applications through event emitters.

Not Ideal For

  • Applications requiring extensive data transfer beyond simple identifiers, such as file sharing or streaming.
  • Projects needing fine-grained control over BLE GATT profiles or custom service/characteristic management.
  • Teams seeking a zero-config, auto-linked React Native library with modern Expo or CLI integration.
  • Developers building cross-platform apps not based on React Native.

Pros & Cons

Pros

Simple API Abstraction

Provides straightforward methods like `initialize` and `setShouldAdvertise` to handle BLE discovery without low-level complexities, as shown in the minimal example code.

Reliable Background Operation

Functions consistently in both foreground and background states, enabling proximity-based apps to work even when minimized, as stated in the key features.

Multi-UUID Session Management

Supports initializing and managing multiple UUIDs separately for different discovery sessions, evidenced by the API changes requiring UUID parameters for actions.

Android Battery Optimization

Offers customizable scan cycles with `setScanForSeconds` and `setWaitForSeconds` to follow Android best practices and conserve battery, as detailed in the API section.

Bluetooth State Monitoring

Includes event emitters for real-time BLE state changes via `bleStateChanged`, allowing apps to react dynamically to Bluetooth availability.

Cons

Manual Native Setup

Requires manual steps like dragging Xcode projects and editing Gradle files, which is more complex and error-prone compared to auto-linking in modern React Native.

Platform Callback Inconsistencies

The README notes a 'slight callback discrepancy between the iOS and Android libraries,' forcing developers to handle differences with conditional checks, as seen in the example code.

Limited Data Payload

Only exchanges identifier values or usernames, not supporting larger data transfers, which restricts use cases to simple proximity detection rather than full BLE communication.

Breaking API Changes

Version updates introduced significant API changes, such as requiring UUID parameters for methods that previously didn't need them, which could break existing implementations without clear migration paths.

Frequently Asked Questions

Quick Stats

Stars115
Forks19
Contributors0
Open Issues6
Last commit8 years ago
CreatedSince 2015

Tags

#proximity-detection#device-discovery#bluetooth-low-energy#react-native#ble-scanning#mobile-development#cross-platform

Built With

R
React Native

Included in

React Native35.6k
Auto-fetched 1 day ago

Related Projects

React Native FirebaseReact Native Firebase

🔥 A well-tested feature-rich modular Firebase implementation for React Native. Supports both iOS & Android platforms for all Firebase services.

Stars12,304
Forks2,319
Last commit5 days ago
react-native-push-notificationreact-native-push-notification

React Native Local and Remote Notifications

Stars6,792
Forks2,002
Last commit2 years ago
react-native-device-inforeact-native-device-info

Device Information for React Native iOS and Android

Stars6,669
Forks1,460
Last commit22 days ago
react-native-fsreact-native-fs

Native filesystem access for react-native

Stars5,044
Forks1,011
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub