Neptune's Potato Monsters

    react-native-device-kit
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.1 • Public • Published

    react-native-device-kit

    A React Native wrapper for MedM DeviceKit SDK. It allows to seamlessly connect to a great deal of medical sensors via Bluetooth and get such data as heart rate, blood pressure, temperature, spirometry, etc. And with React Native it's even better! Just think about it: one codebase that works on both major platforms (iOS and Android) and supports lots of medical devices right out of the box! Note that this is just a wrapper, so in order to use it you still have to purchase the original library.

    Getting started

    $ npm install react-native-device-kit --save
    

    Injecting the MedM DeviceKit

    In order for react-native-device-kit to work you have to provide the original MedM DeviceKit library:

    $ npx inject-device-kit --android /path/to/MedMDeviceKit.aar --ios /path/to/MedMDeviceKit.framework
    

    You could as well add it to your package.json scripts:

    "postinstall": "inject-device-kit --android /path/to/MedMDeviceKit.aar --ios /path/to/MedMDeviceKit.framework"
    

    Also, don't forget to embed MedM DeviceKit binaries into your application. In order to do that add MedMDeviceKit.framework to your project in Xcode, then in "General" tab of your target add it to "Embedded Binaries" section.

    Mostly automatic installation

    $ react-native link
    

    Alternatively:

    $ react-native link react-native-device-kit
    $ react-native link react-native-swift
    

    Yes, react-native-swift peer dependency is required unless you already use Swift in your project.

    Manual installation

    iOS

    1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
    2. Go to node_modulesreact-native-device-kit and add RNDeviceKit.xcodeproj
    3. In XCode, in the project navigator, select your project. Add libRNDeviceKit.a to your project's Build PhasesLink Binary With Libraries
    4. Add $(PROJECT_DIR)/../node_modules/react-native-device-kit/ios/Frameworks to FRAMEWORK_SEARCH_PATHS.
    5. Run your project (Cmd+R)<

    Android

    1. Open up android/app/src/main/java/[...]/MainActivity.java
    • Add import com.reactnative.devicekit.RNDeviceKitPackage; to the imports at the top of the file
    • Add new RNDeviceKitPackage() to the list returned by the getPackages() method
    1. Append the following lines to android/settings.gradle:
      include ':react-native-device-kit'
      project(':react-native-device-kit').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-device-kit/android')
      
    2. Insert the following lines inside the dependencies block in android/app/build.gradle:
        compile project(':react-native-device-kit')
      
    3. Add the following repository to your app level build.gradle:
      repositories{
          flatDir{
              dirs "$rootDir/../node_modules/react-native-device-kit/android/libs"
          }
      }

    Usage

    import DeviceKit from 'react-native-device-kit';
     
    const sdk = new DeviceKit()
     
    sdk.register(process.env.MEDM_DEVICEKIT_LICENSE_KEY)
      .then(() => {
        // You're good to go.
      })
      .catch(() => {
        // Don't forget to provide a licence key!
      });

    Check out the full API in docs.

    Notes

    • There're no tests (sigh). MedM DeviceKit SDK itself is well tested, but writing tests for a wrapper is just too much pain: it needs a test react native app, SDK mock and also RNDeviceKit native module mock to test JavaScript side. Another solution is to use AWS Device Farm, but it's not free.
    • If you're planning to use stream measurements (as opposed to scalar measurements like blood glucose) then you'll probably need your app to work in background. For Android you would have to create a foreground service. On iOS it's easier: just add bluetooth-central mode to your Info.plist.
    • Currently MedM DeviceKit returns measurements only as XML (documented here), so you'll need to use something like xmldom.

    Install

    npm i react-native-device-kit

    DownloadsWeekly Downloads

    4

    Version

    0.1.1

    License

    MIT

    Unpacked Size

    131 kB

    Total Files

    32

    Last publish

    Collaborators

    • baygeldin