Skip to main content

4.3.173

  • Update Android SDK to 4.3.92
    • Enable Health Connect integration in the admin console right after enabling integration
    • Enable Samsung Health Data integration in the admin console right after enabling integration
  • Update iOS SDK to 4.3.111
    • Enable HealthKit integration in the admin console right after requesting permissions

4.3.163

  • Added ability to read mindfulness activities:
spikeConnection.getActivities(
    config: ActivityConfig(activityCategories: [ActivityCategory.mindfulness])
    from: dateFrom,
    to: dateTo
)
  • Added ability to check Android Health Connect features availability:
const isMindfulessAvailable = spikeConnection.isHealthConnectFeatureAvailable(HealthConnectFeature.FEATURE_MINDFULNESS_SESSION)
  • Added new ActivityTag types:
    • mindfulness
  • Added new ActivityType types:
    • ecgMeasurement
    • triathlon
    • biathlon
    • duathlon
    • rollerblading
    • skateboarding
    • skating
    • calisthenics
    • weightLifting
    • canoeing
    • floorball
    • jiuJitsu
    • diving
    • orienteering
    • bootcamp
    • motorsports
    • horseriding
    • paragliding
    • multisport
    • bloodTest
    • mindfulnessSession
  • Added new ProviderSource types:
    • appleHealthkitMindfulness
    • healthConnectMindfulnessSession
  • Added a new ActivityCategory type:
    • mindfulness
  • Update Android SDK to 4.3.92
    • Updated Health connect to 1.1.0-rc03
    • Updated compileSdk to 36
    • Updated gradle to 8.13
  • Update iOS SDK to 4.3.111

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 the 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 the 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 the 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, birthdate, 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: birthdate, 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:})
  • 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
    • Add background delivery (see documentation for more information)
    • Health Connect library updated to 1.1.0-alpha11
    • Compile SDK and target SDK updated to 35
    • Updated kotlin version to 1.9.25
    • Updated other dependencies
    • Add log callback
    • Update gradle to 8.8.0
  • iOS Spike SDK: 4.1.11
    • Add background delivery
    • Add log callback
    • Send more sleep data

4.0.23

  • Android Spike SDK: 4.0.22
  • iOS Spike SDK: 4.0.11

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

  • iOS Spike SDK: 2.4.5
  • Android Spike SDK: 3.1.6
    • Android: Update steps intraday to better check for manual entries
    • Android: Add permissions specific to steps_intraday

2.5.7

  • iOS Spike SDK: 2.4.5
  • Android Spike SDK: 3.1.5
    • Android: check for permissions before reading additional sleep data

2.5.6

  • iOS Spike SDK: 2.4.5
  • Android Spike SDK: 3.1.4
    • Android: update to the newest SDK version

2.5.5

  • Android Spike SDK: 3.1.1
  • iOS Spike SDK: 2.4.5
    • iOS: update to the newest SDK version

2.5.4

  • Android Spike SDK: 3.1.1
  • iOS Spike SDK: 2.4.4
    • iOS: Read more distance fields in a workout object from HealthKit

2.5.3

  • Android Spike SDK: 3.1.1
  • iOS Spike SDK: 2.4.2
    • Pin iOS SDK version

2.5.2

  • iOS Spike SDK: 2.4.2
    • iOS: Add customer user id validation
  • Android Spike SDK: 3.1.1
    • Android: Better way to authenticate with API
    • Android: Add saved session validation before connection is established
    • Android: Add customer user id validation.

2.5.1

  • Android Spike SDK: 3.0.19
  • iOS Spike SDK: 2.4.1
    • iOS: Fix an issue when the timezone changes while the app is running.

2.5.0

  • Android Spike SDK: 3.0.19
  • iOS Spike SDK: 2.4.0
    • iOS: Add ECG data type.

2.4.5

  • iOS Spike SDK: 2.3.2
  • Android Spike SDK: 3.0.19
    • 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
    • iOS: Fix an issue caused by calling SpikeSDK methods from different threads at the same time.

2.4.3

  • iOS Spike SDK: 2.3.2
  • Android Spike SDK: 3.0.19
    • Add Background deliveries support for Expo-managed projects.

2.4.2

  • Android Spike SDK: 3.0.19
  • iOS Spike SDK: 2.3.2
    • iOS: Add trigger extractAndPostData request done from the background.

2.4.1

  • Android Spike SDK: 3.0.19
  • iOS Spike SDK: 2.3.1
    • iOS: Send cycling parameters with Activities stream data
  • PROD & DEV environments are no longer supported.

2.3.7

  • iOS Spike SDK: 2.2.3
  • Android Spike SDK: 3.0.19
    • Android: Add new logic for detecting changes in intraday_steps metadata.
    • 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
  • Add providerTimestamp to Activities Summary data model.

2.3.5

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

2.3.3

  • Android Spike SDK: 3.0.15
  • iOS Spike SDK: 2.2.1
  • Add a metadata object for Spike intraday entries.

2.3.2

  • iOS Spike SDK: 2.2.0
  • Android Spike SDK: 3.0.11
    • Android: add safeguards for edge cases when a function could be called without necessary data.

2.3.1

  • iOS Spike SDK: 2.2.0
  • Android Spike SDK: 3.0.11
    • Android: improve Android wrapper.

2.3.0

  • Android Spike SDK: 3.0.11
  • iOS Spike SDK: 2.2.0
    • iOS: SpikeData wrapper model aligned with server.

2.2.11

  • Android Spike SDK: 3.0.10
  • iOS Spike SDK: 2.1.14
    • iOS: Fix date range parsing.

2.2.10

  • iOS Spike SDK: 2.1.13
  • Android Spike SDK: 3.0.10
    • Android: Step intraday data improvements.

2.2.9

  • Android Spike SDK: 3.0.8
  • iOS Spike SDK: 2.1.13
  • Step intraday data improvements.

2.2.8

  • Android Spike SDK: 3.0.8
  • iOS Spike SDK: 2.1.12
    • iOS: Step intraday data improvements.

2.2.7

  • iOS Spike SDK: 2.1.11
  • Android Spike SDK: 3.0.8
    • Allow requesting multiple permission for Android using requestHealthPermissions method. Provide a 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
    • iOS: Add a method to check Health Store data availability (isHealthDataAvailable).

2.2.5

  • iOS Spike SDK: 2.1.10
  • Android Spike SDK: 3.0.8
    • Android: Can get permission contract before SpikeConnection is created.
    • Android: Update package checker function to avoid unnecessary check for Android 14 and up versions.

2.2.4

  • iOS Spike SDK: 2.1.10
  • Android Spike SDK: 3.0.6
    • Android: Move permission checking before data extraction to the SDK connection layer

2.2.3

  • iOS Spike SDK: 2.1.10
  • Android Spike SDK: 3.0.5
    • Android: Extracting heart data fixed

2.2.2

  • iOS Spike SDK: 2.1.10
  • Android Spike SDK: 3.0.4
    • Android: Added support for Android 14.
    • Android: Fixed some issues with data requesting for a specified date range.

2.2.1

  • Android Spike SDK: 3.0.2
  • iOS Spike SDK: 2.1.10
    • iOS: Spike SDK now uses ISO8601 standardized Calendar.

2.2.0

  • iOS Spike SDK: 2.1.9
  • Android Spike SDK: 3.0.2
    • Android: Activity summary and activity stream can be called without granting all their permissions. Returned data depends on which permissions were provided.
    • 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
    • Android: Works up to Android 13.