Vivanta Connect for Flutter

Plugin to integrate Vivanta Connect in Flutter Projects

How to implement Vivanta Connect Flow

  1. Add the import of Vivanta Connect
import 'package:vivanta_connect_flutter/views/start_vivanta_connect.dart';
  1. Create a route to open Vivanta Connect. For example:
 Navigator.of(context).push(
  MaterialPageRoute(
    builder: (context) => VivantaConnectFlutter(
      apiKey: apiKey,                   // Required
      customerId: customerId,           // Required
      externalUserId: externalUserId,   // Required
      companyId: companyId,             // Optional
    ),
  ),
);

Optional use with a JWT Token obtained by the /users/auth endpoint:

 Navigator.of(context).push(
  MaterialPageRoute(
    builder: (context) => VivantaConnectFlutter(
      token: token,                     // Required
    ),
  ),
);
  1. Vivanta Connect will start and automatically set the language based on the configuration of the device.

Note: Vivanta Connect requires a valid API Key and the associated Customer ID to fully function.

How to implement Embedded Graphs

  1. Create a route to open an Embedded Graph
Navigator.of(context).push(
  MaterialPageRoute(
    builder: (context) => EmbeddedGraph(
      apiKey: apiKey,                    // Required
      customerId: customerId,            // Required
      externalUserId: externalUserId,    // Required
      graphType: graphType,              // Required (Sleep, Active Time, Activity)
      brandId: brandId,                  // Optional, only for users with more than 1 brand connected
    ),
  ),
);

Only for Apple Health integrations (iOS)

  1. Add this code at the start of your user's session for obtaining and syncing Apple Health data.
  import 'package:vivanta_connect_flutter/helpers/vivanta_sync.dart';

  final vivantaSyncData = VivantaSync(
    apiKey: apiKey,                   // Required
    customerId: customerId,           // Required
    externalUserId: externalUserId,   // Required
  );
  vivantaSyncData.executeAll();       // This process gets data from HealthKit and uploads to Vivanta
);

Optional use with a JWT Token obtained by the /users/auth endpoint:

  import 'package:vivanta_connect_flutter/helpers/vivanta_sync.dart';

  final vivantaSyncData = VivantaSync(
    token: token,                       // Required
  );
  vivantaSyncData.executeAll();       // This process gets data from HealthKit and uploads to Vivanta
);
  1. Add the following elements in the Info.plist file.
<key>NSHealthShareUsageDescription</key>
<string>[Add here the purpose for reading from Apple Health]</string>
<key>NSHealthUpdateUsageDescription</key>
<string>[Add here the purpose for writing to Apple Health]</string>

Only for Google Health Connect integrations (Android)

  1. Add the following code in your AndroidManifest.xml, inside the root node:
  <queries>
    <package android:name="com.google.android.apps.healthdata" />
    <package android:name="com.google.android.apps.fitness" />
  </queries>
  1. Add the following code in your main <activity> node:
  <intent-filter>
    <action android:name="androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE" />
  </intent-filter>
  1. Add at least one of the permissions that your app will have access, in your AndroidManifest.xml inside the root node. The complete list of permissions is in this link: developer.android.com/health-and-fitness/guides/health-connect/plan/data-types#alpha10. For example:
    <uses-permission android:name="android.permission.health.READ_STEPS"/>
  1. In your gradle.properties file, replace this values:
org.gradle.jvmargs=-Xmx1536M
android.enableJetifier=true
android.useAndroidX=true
  1. Add this code at the start of your user's session for obtaining and syncing Google Health Connect data.
  import 'package:vivanta_connect_flutter/helpers/vivanta_sync.dart';

  final vivantaSyncData = VivantaSync(
    apiKey: apiKey,                   // Required
    customerId: customerId,           // Required
    externalUserId: externalUserId,   // Required
  );
  vivantaSyncData.executeAll();       // This process gets data from HealthKit and uploads to Vivanta
);

Optional use with a JWT Token obtained by the /users/auth endpoint:

  import 'package:vivanta_connect_flutter/helpers/vivanta_sync.dart';

  final vivantaSyncData = VivantaSync(
    token: token,                      // Required
  );
  vivantaSyncData.executeAll();       // This process gets data from HealthKit and uploads to Vivanta
);