1. React Native Checklist

This document refers to deprecated parts of the platform and has been left intact to help customers with legacy integrations. In order to access the latest platform features and documentation, please go to https://docs.sentiance.com.

Follow the step below to integrate the ReactNative Bridge (SDK).

1. Installation

1.1 Dependency
npm install --save react-native-sentiance

2. iOS Setup

2.1 Pod Installation

Install the iOS SDK

cd ios
pod install
2.2 Configuration: Background Modes

Ensure you turn on Background Modes and enable Location updates

2.2 Configuration: Permissions

Ensure you include the following permission in info.plist

NSLocationAlwaysAndWhenInUseUsageDescription
NSMotionUsageDescription (Recommended)
2.3 Background Detections

Include the following line in the application didFinishLaunchingWithOptions method of your AppDelegate.m file

[bridge moduleForName:@"RNSentiance"] initializeWithSuccess:nil failure:nil];

3. Android Setup

3.1 Dependency

Add the Sentiance repository to your project (top-level) build.gradle file.

allprojects {
  repositories {
    ...
    maven {
      url "https://repository.sentiance.com"
    }
  }
}

In the build.gradle file of your app module, add the following line to the dependencies section.

implementation ('com.sentiance:sdk:4.21.2@aar') { transitive = true }
3.2 Notification & Foreground Service

Depending on your app's configuration and OS version, the SDK may need to start a foreground service every now and again. You must therefore pass a notification that can be used by the service. In the next section, you'll find a handy notification creation method.

Learn more on how to easily setup a sample notification

4. Data Collection & SDK User Creation

In order for the SDK to collect data the application would need to first "create a user" on the SDK. The "createUser" should ideally be called when the user registers, logs in.

4.1 createUser

Invoke the RNSentiance.createUserExperimental method at the moment you are ready to start the data collection. (e.g on user login, on user registration, at a feature, etc)

await RNSentiance.createUserExperimental({
    credentials: {appId, appSecret},
    linker: async (installId, done) => {
        // perform your user-linking
        ...
    }
})
await RNSentiance.start()
4.2 linker

This method will receive the parameters: installId, done

4.3 User linking in your backend

In the link function, at this point, make your backend tell the Sentiance backend the userId that should be related to the installId

4.3 done()

Upon your backend successfully performing the user linking execute the

done()

In case your backend was unable to perform the linking execute done(false)

Verifying the Integration

You can verify the SDK integration by reading the following statuses from the SDK

RNSentiance.getInitState()

INITIALIZED

RNSentiance.getSdkStatus().startStatus

STARTED

Note: If you find the startStatus to be PENDING it usually implies that the user has not granted location:always permission. To know more, click here__

You can continue reading through the next sections to get a deeper understanding of the integration and the SDK capabilities.

Last updated