react-native-quiet

0.1.0¬†‚Äʬ†Public¬†‚Äʬ†Published

react-native-quiet

This is a React Native wrapper around the Quiet Project, which enables the transfer of data using sound as the transfer medium. This has a number of benefits:

  • Super cross-platform. (You just need a microphone and a speaker.)
  • Broadcast to devices within range without pairing.
  • No network connection required.

Quiet can even go ultrasonic, allowing us to communicate without impacting on noise levels that are perceptible by human ears.

Try the awesome online demo here.

ūüöÄ Getting started

Using npm:

$ npm install react-native-quiet --save

Using yarn:

yarn add react-native-quiet

Android

This project relies upon the Android NDK; please make sure this is configured within your system path. Android relies upon caching the Quiet Android Project, meaning that we have to manually configure it's visibility to your compiled application. To do this, in your <project-dir>/android/settings.gradle, append the :quiet native project, which is packaged inside of react-native-quiet:

include ':quiet'
project(':quiet').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-quiet/android/Transducer/quiet')

Finally, under File > Project Structure, be sure to define your Android NDK location under SDK Location. You can just use the dropdown to select the default location.

iOS

On iOS, after installing be sure to sync your Cocoapods via pod install.

Upgrading

0.1.0

android/settings.xml

 
include ':quiet'
- project(':quiet').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-quiet/android/org.quietmodem.Quiet/quiet')
+ project(':quiet').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-quiet/android/Transducer/quiet')

‚úćÔłŹ Example

This project exposes high level functionality to send and receive messages using near-ultrasound. Simply start the library, use send() to transmit a message string and addListener to listen to receive sent messages. Be careful; you can hear your own messages.

import Quiet from 'react-native-quiet';
 
// Start listening. (This will ask for microphone permissions!)
(async() => {
  await Quiet.start("ultrasonic-experimental");
  const { unsubscribe } = Quiet
    .addListener(msg => console.warn(msg));
  Quiet.send("hello, world!");
  await new Promise(resolve => setTimeout(resolve, 10000));
  Quiet.stop();
  unsubscribe();
})();

‚úĆÔłŹ License

MIT

Package Sidebar

Install

npm i react-native-quiet

Weekly Downloads

11

Version

0.1.0

License

MIT

Unpacked Size

33.9 kB

Total Files

31

Last publish

Collaborators

  • cawfree