Skip to main content

Spike ReactNative SDK Changelog

4.3.153

  • Added documentation

4.3.143

  • Fixed building iOS on Expo 54+ with New Architecture
  • Updated Expo android manifest script
  • Update Android SDK to 4.3.82:
    • Workaround for Android 15 bug to make background delivery more resilient
    • More efficient pushes to Spike API

4.3.133

  • New Spike.setLogCallback() method to receive logs from the native SDK:
await Spike.setLogCallback((level, message) => {
    if (level === LogLevel.verbose) {
        return
    }
    console.log(`[SpikeSDK.${level.toUpperCase()}] ${message}`);
});
  • Fixed getBackgroundDeliveryConfig() method to be async getBackgroundDeliveryConfig(): Promise<BackgroundDeliveryConfig | null>
  • Update Android SDK to 4.3.72:
    • Allow reading SPO2 and SWIMMING_LENGTHS in getActivities
    • Allow reading SPO2 and SKIN_TEMPERATURE in getSleeps
  • Update iOS SDK to 4.3.101:
    • Improved how sleep data is read for sleep score

4.3.123

  • Update Android SDK to 4.3.62:
    • Optimized background delivery

4.3.113

  • Added .coros Provider
  • Updated ProviderSource enum
  • Update Android SDK to 4.3.52:
    • Added Provider.COROS
    • Updated ProviderSource enum
    • Added new Statistic types:
      • STRESS_SCORE
      • RECOVERY_SCORE
      • ACTIVITY_SCORE
    • Added new Metric types for getSleep request:
      • SLEEP_DURATION
      • SLEEP_DURATION_AWAKE
      • SLEEP_DURATION_DEEP
      • SLEEP_DURATION_LIGHT
      • SLEEP_DURATION_NAP
      • SLEEP_DURATION_REM
      • SLEEP_EFFICIENCY
      • SLEEP_INTERRUPTIONS
      • SLEEP_LATENCY
      • SLEEP_SCORE
  • Update iOS SDK to 4.3.91:
    • Added .coros Provider
    • Updated ProviderSource enum
    • Improved the way data is sent to API to reduce the size and speed of calls to Spike
    • Added new Statistic types:
      • stressScore
      • recoveryScore
      • activityScore
    • Added new Metric types for getSleep request:
      • sleepDuration
      • sleepDurationAwake
      • sleepDurationDeep
      • sleepDurationLight
      • sleepDurationNap
      • sleepDurationRem
      • sleepEfficiency
      • sleepInterruptions
      • sleepLatency
      • sleepScore
    • Better keychain compatibility NOTE: If you use the keychain in your app with a service name equal to your bundle identifier, please check if it contains key named spikeApiToken and delete it.

4.3.103

  • New metric type:
    • glucose
  • Update Android SDK to 4.3.42:
    • New MetricType.GLUCOSE available in both Health Connect and Samsung Health
    • Update Samsung Health Data SDK to version 1.0.0 (available only on Android 29+)
  • Update iOS SDK to 4.3.81:
    • Added MetricType: .glucose

4.3.93

  • The old SpikeSDK API has been deprecated
  • Added disableHealthKitIntegration and isHealthKitIntegrationEnabled functions for iOS HealthKit
  • Update Android SDK to 4.3.32:
    • Switch to protobuf java-lite 3.25.5 for better compatibility with firebase
    • The old SpikeSDK API has been deprecated
  • Update iOS SDK to 4.3.71:
    • The old SpikeSDK API has been deprecated
    • Added disableHealthKitIntegration and isHealthKitIntegrationEnabled functions in spike connection

4.3.83

  • New providers added: dexcom, freestyleLibre, huawei, strava
  • Added .distanceSwimming into the list of metrics available in activities
  • Updated native iOS SDK Version to 4.3.61
  • Updated native Android SDK Version to 4.3.22
  • Fixed prop names in SpikeRecord and Statistic data models

4.3.73

  • Updated React native to 0.79
  • Enhanced Expo support:
    • Added a plugin to automatically configure the Android app by updating the necessary fields in build.gradle files and AndroidManifest.xml, including handling specified permissions.
    • Enabled configuration of iOS HealthKit permission texts directly from the plugin settings.
    • Added support for enabling background delivery via plugin configuration.
Config entry example for app.json:
    [
        "react-native-spike-sdk",
        {
          "ios": {
            "healthSharePermission": "$(PRODUCT_NAME) needs access to read your health data",
            "healthUpdatePermission": "$(PRODUCT_NAME) needs permission to save health data",
            "isBackgroundDeliveryEnabled": true
          },
          "android": {
            "healthConnectPermissions": [
              "android.permission.health.READ_BASAL_METABOLIC_RATE",
              "android.permission.health.READ_WEIGHT"
            ],
            "isBackgroundDeliveryEnabled": true
          }
        }
    ]

4.3.63

  • Added Samsung Health Integration on Android
  • Updated native Android SDK Version to 4.3.12:
    • New statistics for Health Connect:
    • HEARTRATE
    • HEARTRATE_MAX
    • HEARTRATE_MIN
    • New metrics for Health Connect:
    • HEARTRATE
    • HEARTRATE_MAX
    • HEARTRATE_MIN
    • Improved transport protocol for even faster requests to Spike API
    • Added Samsung Health Integration for:
    • StatisticTypes:
      • STEPS
      • DISTANCE_TOTAL
      • CALORIES_BURNED_ACTIVE
      • CALORIES_BURNED_TOTAL
      • CALORIES_BURNED_BASAL
    • Added new Provider:
    • SAMSUNG_HEALTH_DATA
    • Added new ProviderSource:
    • SAMSUNG_HEALTH_DATA_AGGREGATION
    • Renamed MetricTypes:
    • SLEEP_BREATHING_RATE to BREATHING_RATE
    • SLEEP_BREATHING_RATE_MIN to BREATHING_RATE_MIN
    • SLEEP_BREATHING_RATE_MAX to BREATHING_RATE_MAX
  • Updated native iOS SDK Version to 4.3.51:
    • Added new Provider:
    • samsungHealthData
    • Added new ProviderSource:
    • samsungHealthDataAggregation
    • Renamed MetricTypes:
    • sleepBreathingRate to breathingRate
    • sleepBreathingRateMin to breathingRateMin
    • sleepBreathingRateMax to breathingRateMax

4.3.53

  • Catch all exception types in Android module

4.3.43

  • Added missing parameter in getHealthConnectPermissions

4.3.33

  • Updated native iOS SDK Version to 4.3.31
    • Improve how statistics are read from HealthKit
    • New metric types:
      • bodyFat
      • bodyFatMax
      • bodyFatMin
      • bodyBoneMass
      • bodyMassIndex
      • bloodPressureSystolic
      • bloodPressureSystolicMax
      • bloodPressureSystolicMin
      • bloodPressureDiastolic
      • bloodPressureDiastolicMax
      • bloodPressureDiastolicMin
    • New fields in UserProperties:
      • bodyBoneMass
      • bodyFat
      • bodyMassIndex
    • Updated getIntegrationInitUrl. Now it accepts IntegrationInitConfig config object where you can pass:
      • redirectUri: will override the one set in admin console
      • state: when the authorization server redirects back to the client, it includes the state value originally sent
      • providerUserIdentifier: at the moment used (and required) only when integrating with ultrahuman
    • New provider: ultrahuman When integrating with Ultrahuman, you have to provide ultrahuman user email in IntegrationInitConfig.providerUserIdentifier. Example:
      spikeConnection.getIntegrationInitUrl(provider: .ultrahuman, config: IntegrationInitConfig(providerUserIdentifier: "user@mail.com"))
      
    • Improved transport protocol for background delivery
  • Updated native Android SDK Version to 4.2.72
    • New MetricTypes added:
      • BODY_FAT
      • BODY_FAT_MAX
      • BODY_FAT_MIN
      • BODY_BONE_MASS
      • BODY_MASS_INDEX
      • BLOOD_PRESSURE_SYSTOLIC
      • BLOOD_PRESSURE_SYSTOLIC_MIN
      • BLOOD_PRESSURE_SYSTOLIC_MAX
      • BLOOD_PRESSURE_DIASTOLIC
      • BLOOD_PRESSURE_DIASTOLIC_MIN
      • BLOOD_PRESSURE_DIASTOLIC_MAX
      • New fields in UserProperties:
      • BODY_FAT
      • BODY_BONE_MASS
      • BODY_MASS_INDEX
    • Updated getIntegrationInitUrl. Now it accepts IntegrationInitConfig config object where you can pass:
      • redirectUri: will override the one set in admin console
      • state: when the authorization server redirects back to the client, it includes the state value originally sent
      • providerUserIdentifier: at the moment used (and required) only when integrating with ultrahuman
    • New provider: ultrahuman When integrating with Ultrahuman, you have to provide Ultrahuman user email in IntegrationInitConfig.providerUserIdentifier. Example:
      spikeConnection.getIntegrationInitUrl(provider = Provider.ULTRAHUMAN, config = IntegrationInitConfig(providerUserIdentifier = "user@mail.com"))
      
  • Updated native iOS SDK Version to 4.3.41
    • IntegrationInitConfig is now codable
    • Additional check in getIntegrationInitUrl for email in ultrahuman integration
  • Updated native Android SDK Version to 4.2.82
    • Added IntegrationInitConfigUtils for usage in Flutter and React Native libraries
    • Additional check in getIntegrationInitUrl for email in ultrahuman integration
  • New provider: ultrahuman When integrating with Ultrahuman, you have to provide ultrahuman user email in IntegrationInitConfig.providerUserIdentifier. Example:
    spikeConnection.getIntegrationInitUrl(provider: .ultrahuman, config: {providerUserIdentifier: "user@mail.com"})
    

4.3.23

  • Updated native iOS SDK Version to 4.3.21
    • Improve how statistics are read from HealthKit
  • Updated native Android SDK Version to 4.2.62
    • Added consumer proguard rules

4.3.13

  • Updated native iOS SDK Version to 4.3.11
    • Improved transport protocol for even faster requests to Spike API
    • New statistics: heartrate, heartrateMax, heartrateMin, heartrateResting
  • Updated native Android SDK Version to 4.2.52
    • New statistics:
      • HEARTRATE_RESTING
      • SLEEP_DURATION_TOTAL
    • New statistics (only from non-HealthConnect providers):
      • HEARTRATE
      • HEARTRATE_MIN
      • HEARTRATE_MAX
    • Metric types updates
    • Better proguard settings for uniqueness of generated class names
    • Fix for statistics in different time zones

4.2.73

  • Updated readme file

4.2.63

  • Updated native iOS SDK Version to iOS 4.2.41
    • Fix date format in json push

4.2.53

  • Fixed typo in method name: getGrantedHealthKitPermissions in now properly called getGrantedHealthConnectPermissions

4.2.43

  • Add support for React Native New Architecture (interop)

4.2.33

  • New metrics:
    • spo2
    • bodyTemperature
    • skinTemperature (available only on getSleep())
    • sleepBreathingRate (available only on getSleep())
    • sleepBreathingRateMin (available only on getSleep())
    • sleepBreathingRateMax (available only on getSleep())
    • sleepBreathingRateAvg (available only on getSleep())
  • Updated native iOS SDK Version to iOS 4.2.31
  • Updated native Android SDK Version to 4.2.42
  • Added sleepScore property in Record type

4.2.23

  • New metric: vo2Max available in getRecords and getActivities
  • Changed hrv metric names: hrvRmssd, hrvSdnn
  • New statistic: sleepScore
  • Updated native iOS SDK Version to iOS 4.2.21
    • New getUserProperties method for reading: weight, height, timezone, birth date, gender
  • Updated native Android SDK Version to 4.2.32
    • New getUserProperties method for reading: weight, height, timezone from Health Connect
    • New getUserProperties method for reading: birth date, gender from other providers

4.2.13

Android Spike SDK: 4.2.12

iOS Spike SDK: 4.2.11

🔴 Breaking Change: Update to Spike.createConnectionAPIv3

The method Spike.createConnectionAPIv3({appId:, authToken:, customerEndUserId:}) has been updated to:

Spike.createConnectionAPIv3({applicationId:, signature:, endUserId:})

Key Changes:

  • The applicationId parameter must now be provided as an number.
  • The signature parameter now requires an HMAC-SHA256 signed user ID.
  • ⚠️ Security Notice:
    • Do not store your HMAC signing key within the application itself, as this poses a security risk.
    • Instead, generate and provide the signature from your backend.

Legacy Support:

For development purposes only, the previous connection flow remains available under the renamed method: Spike.createConnectionAPIv3Legacy({appId:, authToken:, customerEndUserId:})

4.1.23

Fixed typescript definitions

4.1.13

Background delivery

Android Spike SDK: 4.1.12

  1. Add background delivery (see documentation for more information)
  2. Health Connect library updated to 1.1.0-alpha11
  3. Compile SDK and target SDK updated to 35
  4. Updated kotlin version to 1.9.25
  5. Updated other dependencies
  6. Add log callback
  7. Update gradle to 8.8.0

iOS Spike SDK: 4.1.11

  1. Add background delivery
  2. Add log callback
  3. Send more sleep data

4.0.23

Android Spike SDK: 4.0.22

iOS Spike SDK: 4.0.11

Updated Android SDK

4.0.13

Android Spike SDK: 4.0.12

iOS Spike SDK: 4.0.11

Completely new SDK! Please see our official documentation for more details and usage instructions

2.5.8

Android Spike SDK: 3.1.6

iOS Spike SDK: 2.4.5

  1. Android: Update steps intraday to better check for manual entries
  2. Android: Add permissions specific to steps_intraday

2.5.7

Android Spike SDK: 3.1.5

iOS Spike SDK: 2.4.5

  1. Android: check for permissions before reading additional sleep data

2.5.6

Android Spike SDK: 3.1.4

iOS Spike SDK: 2.4.5

  1. Android: update to newest SDK version

2.5.5

Android Spike SDK: 3.1.1

iOS Spike SDK: 2.4.5

  1. iOS: update to newest SDK version

2.5.4

Android Spike SDK: 3.1.1

iOS Spike SDK: 2.4.4

  1. iOS: Read more distance fields in workout object from HealthKit

2.5.3

Android Spike SDK: 3.1.1

iOS Spike SDK: 2.4.2

  1. Pin iOS SDK version

2.5.2

Android Spike SDK: 3.1.1

iOS Spike SDK: 2.4.2

  1. iOS: Add customer user id validation
  2. Android: Better way to authenticate with API
  3. Android: Add saved session validation before connection is established
  4. Android: Add customer user id validation.

2.5.1

Android Spike SDK: 3.0.19

iOS Spike SDK: 2.4.1

  1. iOS: Fix an issue when timezone changes while app is running.

2.5.0

Android Spike SDK: 3.0.19

iOS Spike SDK: 2.4.0

  1. iOS: Add ECG data type.

2.4.5

Android Spike SDK: 3.0.19

iOS Spike SDK: 2.3.2

  1. Android: Fix an issue caused by calling spikeSDK methods from different threads at the same time.

2.4.4

Android Spike SDK: 3.0.19

iOS Spike SDK: 2.3.2

  1. iOS: Fix an issue caused by calling spikeSDK methods from different threads at the same time.

2.4.3

Android Spike SDK: 3.0.19

iOS Spike SDK: 2.3.2

  1. Add Background deliveries support for Expo managed projects.

2.4.2

Android Spike SDK: 3.0.19

iOS Spike SDK: 2.3.2

  1. iOS: Add trigger extractAndPostData request done from background.

2.4.1

Android Spike SDK: 3.0.19

iOS Spike SDK: 2.3.1

  1. iOS: Send cycling parameters with Activities stream data
  2. PROD & DEV Environments no longer supported.

2.3.7

Android Spike SDK: 3.0.19

iOS Spike SDK: 2.2.3

  1. Android: Add new logic for detecting changes in intraday_steps metadata.
  2. Android: Add safeguard for to handle multiple sources of sleep data and avoid illogical values.

2.3.6

Android Spike SDK: 3.0.17

iOS Spike SDK: 2.2.3

  1. Add providerTimestamp to Activities Summary data model.

2.3.5

Android Spike SDK: 3.0.17

iOS Spike SDK: 2.2.2

  1. Android: Remove the limitation that prevented values from being sent when requested period is more than a day.
  2. Android: Now calculating stage time by stages in sleep data.
  3. iOS: Include intraday entries of Steps intraday data type for range requests.

2.3.3

Android Spike SDK: 3.0.15

iOS Spike SDK: 2.2.1

  1. Add metadata object for Spike intraday entries.

2.3.2

Android Spike SDK: 3.0.11

iOS Spike SDK: 2.2.0

  1. Android: add safeguards for edge cases when function could be called without necessary data.

2.3.1

Android Spike SDK: 3.0.11

iOS Spike SDK: 2.2.0

  1. Android: improve Android wrapper.

2.3.0

Android Spike SDK: 3.0.11

iOS Spike SDK: 2.2.0

  1. iOS: SpikeData wrapper model aligned with server.

2.2.11

Android Spike SDK: 3.0.10

iOS Spike SDK: 2.1.14

  1. iOS: Fix date range parsing.

2.2.10

Android Spike SDK: 3.0.10

iOS Spike SDK: 2.1.13

  1. Android: Step intraday data improvements.

2.2.9

Android Spike SDK: 3.0.8

iOS Spike SDK: 2.1.13

  1. Step intraday data improvements.

2.2.8

Android Spike SDK: 3.0.8

iOS Spike SDK: 2.1.12

  1. iOS: Step intraday data improvements.

2.2.7

Android Spike SDK: 3.0.8

iOS Spike SDK: 2.1.11

  1. Allow request multiple permission for Android using requestHealthPermissions method. Provide single Spike data type or array of Spike data types.

2.2.6

Android Spike SDK: 3.0.8

iOS Spike SDK: 2.1.11

  1. iOS: Add method to check Health Store data availability (isHealthDataAvailable).

2.2.5

Android Spike SDK: 3.0.8

iOS Spike SDK: 2.1.10

  1. Android: Can get permission contract before SpikeConnection is created.
  2. Android: Update package checker function to avoid unnecessary check for Android 14 and up versions.

2.2.4

Android Spike SDK: 3.0.6

iOS Spike SDK: 2.1.10

  1. Android: Move permission checking before data extraction to SDK connection layer

2.2.3

Android Spike SDK: 3.0.5

iOS Spike SDK: 2.1.10

  1. Android: Extracting heart data fixed

2.2.2

Android Spike SDK: 3.0.4

iOS Spike SDK: 2.1.10

  1. Android: Added support for Android 14.
  2. Android: Fixed some issues with data requesting for specified date range.

2.2.1

Android Spike SDK: 3.0.2

iOS Spike SDK: 2.1.10

  1. iOS: Spike SDK now use iso8601 standardized Calendar.

2.2.0

Android Spike SDK: 3.0.2

iOS Spike SDK: 2.1.9

  1. Android: Activity summary and activity stream can be called without granting all their permissions. Returned data depends on which permissions were provided.
  2. Android: Android Permission requests are divided by data types.
SpikeConnection method checkPermissionsGranted now requires Spike data type. SpikeConnection method requestHealthPermissions now requires Spike data type. See more: Permissions section
  1. Android: Works up to Android 13.
I