Skip to main content

Project requirements

iOS

Applies also to Flutter and React Native projects.
ParameterRequirement
Minimum deployment targetiOS 15.1
If you are integrating on React Native or Flutter, or integrating on Native iOS via CocoaPods, make sure you have updated the minimum iOS deployment target in:
  • your Podfile; and
  • your iOS App Target.
Podfile
# e.g., React Native default
-platform :ios, min_ios_version_supported

# Set minimum deployment target to be iOS 14.0.
+platform :ios, '15.1'

Android

Applies also to Flutter, React Native and Expo projects.
ParameterRequirement
Minimum SDK Level26 (Health Connect), 29 (Samsung Health)
Compile SDK Level36
Kotlin compiler version2.1.20 or above
Android Gradle Plugin version8.9.1 or above
Gradle version8.11.1 or above

Flutter

ParameterRequirement
Flutter SDK3.13 or above

React Native

Expo

ParameterRequirement
Expo53 or above

Bare React Native projects

ParameterRequirement
React Native Core0.72.0 or above
Node.js20.0 or above

Setup package dependencies

iOS

Junction Mobile SDKs are available through both Swift Package Manager and CocoaPods.

Swift Package Manager

Add the vital-ios package (https://github.com/tryVital/vital-ios) as a dependency of your project. Link VitalHealthKit and VitalDevices as appropriate. Note that VitalCore is mandatory.

CocoaPods

Add the following declarations to your app target in your Podfile:
pod 'VitalCore'
pod 'VitalDevices'
pod 'VitalHealthKit'

Android

Make sure Maven Central is included in the list of repositories in your build.gradle.
repositories {
  mavenCentral()
}
Then include our Android SDK artifacts as dependencies of your modules as needed:
def vital_version = '3.2.1'

implementation 'io.tryvital:vital-client:$vital_version'
implementation 'io.tryvital:vital-health-connect:$vital_version'
implementation 'io.tryvital:vital-devices:$vital_version'

React Native

Expo projects

Installation

Only Expo Prebuild is supported. Expo Go is incompatible, since it supports neither native library binaries, nor Expo Config Plugin.
First install the package with npx expo install.
npx expo install @tryvital/vital-core-react-native
npx expo install @tryvital/vital-health-react-native
After installing the Junction React Native SDK packages, add the bundled Junction Expo Config Plugins to the plugins array of your Expo app configuration file (app.json or app.config.js):
app.json/app.config.js
{
  "expo": {
    "plugins": [
      "@tryvital/vital-core-react-native",
      "@tryvital/vital-health-react-native"
    ]
  }
}

Android specific configuration

In your Expo app configuration file (app.json or app.config.js), use the expo-build-properties config plugin to customize the minimum, target and compile Android SDK version:
app.json/app.config.js
{
  "expo": {
    // ...
    "plugins": [
      [
        "expo-build-properties",
        {
          "android": {
            "compileSdkVersion": 34,
            "targetSdkVersion": 34,
            "minSdkVersion": 26
          }
        }
      ],
      // ...
    ]
  }
}
Refer to Project Requirements > Android for the constraints on these SDK version levers.
Next, rebuild your app as described in the “Adding custom native code” guide.

Customizations

You can customize the integration by passing additional properties to the Expo config plugin:
KeyValue
healthSharePermission (string)Sets the iOS NSHealthShareUsageDescription permission message to the Info.plist. Defaults to Allow $(PRODUCT_NAME) to check health info
app.json/app.config.js
{
  "expo": {
    "plugins": [
      "@tryvital/vital-core-react-native",
      [
        "@tryvital/vital-health-react-native",
        {
          "healthSharePermission": "Custom health share permission"
        }
      ]
    ]
  }
}
After making changes to your Config Plugin settings, you must re-run Expo Prebuild to re-generate your iOS and Android projects.

Bare React Native projects

Install Junction SDK packages through NPM or Yarn:
npm install @tryvital/vital-core-react-native
npm install @tryvital/vital-health-react-native
npm install @tryvital/vital-devices-react-native
Pull all dependencies for your React Native iOS project:
cd ios
pod install
pod install on your iOS project might error due to version lock conflicts on the Junction iOS libraries. This usually happens after you have bumped the React Native SDK package versions.Use pod update to resolve the conflict:
pod update VitalCore VitalDevices VitalHealthKit VitalLogging --repo-update

Flutter

Add Junction SDK packages to your pubspec.yaml:
dependencies:
  vital_core: ^3.1.1
  vital_health: ^3.1.1
  vital_devices: ^3.1.1
pod install on your iOS project might error due to version lock conflicts on the Junction iOS libraries. This usually happens after you have bumped the Flutter SDK package versions.Use pod update to resolve the conflict:
pod update VitalCore VitalDevices VitalHealthKit --repo-update