Skip to main content

4.3.144

  • Added Nutrition AI features for analyzing food images. For more information please visit our documentation.
    • analyzeNutrition(imageBase64, consumedAt, config) - Analyze food image synchronously and wait for results
    • submitNutritionForAnalysis(imageBase64, consumedAt, config) - Analyze food image asynchronously, returns record ID
    • getNutritionRecords(from, to) - Retrieve nutrition records for a date range
    • getNutritionRecord(id) - Get a specific nutrition record by ID
    • deleteNutritionRecord(id) - Delete a nutrition record
    • updateNutritionRecordServingSize(id, servingSize) - Update serving size for a nutrition record
  • Added new Provider:
    • luna
  • Added new ProviderSource types:
    • fitbitSkinTemperatureSummary
    • garminWellnessSkinTemperatureSummary
    • lunaSleep
  • Removed ProviderSource types:
    • fitbitUserActivitiesList
    • fitbitUserActivitiesDate
    • fitbitUserActivitiesHeartDate
    • fitbitUserActivitiesHeartDateInterday
    • withingsMeasureGetWorkouts
    • withingsMeasureGetActivity
    • withingsMeasureGetMeas
  • Removed ActivityTag:
    • onBicycle
  • Removed Provider:
    • wahoo

4.3.134

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

4.3.124

  • 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
  • Updated Android SDK to 4.3.92
    • Updated Health connect to 1.1.0-rc03
    • Updated compileSdk to 36
    • Updated gradle to 8.13
    • android.permission.health.READ_MINDFULNESS user permission should be added to AndroidManifest.xml file
  • Updated iOS SDK to 4.3.111

4.3.114

  • Updated 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.104

  • Updated Android SDK to 4.3.72:
    • Allow reading SPO2 and SWIMMING_LENGTHS in getActivities
    • Allow reading SPO2 and SKIN_TEMPERATURE in getSleeps
  • Updated iOS SDK to 4.3.101:
    • Improved how sleep data is read for sleep score

4.3.94

  • Updated Android SDK to 4.3.62:
    • Optimized background delivery

4.3.84

  • Added .coros Provider
  • Updated ProviderSource enum
  • Added statistics: stressScore, recoveryScore, activityScore
  • Updated 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
  • Updated 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.74

  • Added new SpikeSDKV3.setLogCallback() method to receive logs from the native SDK. Example usage:
    await SpikeSDKV3.setLogCallback(
      callback: (level, message) {
        print("[SpikeSDK.${level.toJson()}] $message");
      },
    );
    
  • Added a new metric type:
    • glucose
  • Updated 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+)
  • Updated iOS SDK to 4.3.81:
    • Added MetricType: .glucose

4.3.64

  • Updated Android SDK to 4.3.93:
    • Deprecated the old Spike SpikeSDK
    • Switch to protobuf java-lite 3.25.5 for better compatibility with firebase
  • Updated iOS SDK to 4.3.71:
    • Deprecated the old Spike SpikeSDK
    • Added disableHealthKitIntegration and isHealthKitIntegrationEnabled functions in spike connection

4.3.54

  • Added 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

4.3.44

  • 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.34

  • 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: IntegrationInitConfig(providerUserIdentifier: "[email protected]"))
    

4.3.24

  • 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: "[email protected]"))
      
    • Improved transport protocol for background delivery
  • Updated native Android SDK Version to 4.2.72
    • Added new MetricTypes:
      • 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
    • Added 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 = "[email protected]"))
      

4.3.14

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

4.2.74

4.2.64

  • Updated readme file

4.2.54

  • Updated native iOS SDK Version to iOS 4.2.41
    • Fixed the date format in JSON push

4.2.44

  • Fixed JSON parsing of user info response

4.2.34

  • Added 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.24

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

4.2.14

  • Updated native Android SDK Version to 4.2.12
  • Updated native iOS SDK Version to 4.2.11
  • 🔴 Breaking Change: Update to SpikeSDKV3.createConnection. The method Spike.createConnectionAPIv3({appId:, authToken:, customerEndUserId:}) has been updated to: SpikeSDKV3.createConnection(applicationId:, signature:, endUserId:)
  • The applicationId parameter must now be provided as an int.
  • 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: SpikeSDKV3.createConnectionLegacy(appId:, authToken:, customerEndUserId:)

4.1.14

  • Background delivery for both iOS and Android
  • Added triathlon activity type
  • Better error messages in iOS SpikeSDK wrapper
  • Updated native Android SDK Version to 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
    • Updated gradle to 8.8.0
  • Updated native iOS SDK Version to 4.1.11
    • Added background delivery
    • Implemented sending more sleep data

4.0.14

  • Completely new SDK! Please see our official documentation for more details and usage instructions
  • Updated native Android SDK Version to 4.0.22
  • Updated native iOS SDK Version to 4.0.12
  • Added getIntegrationInitUrl method to SpikeConnectionV3: generates integration url for the given provider

1.3.3

  • Android: Fixed build issue on AGP8+

1.3.2

  • Updated native Android SDK Version to 3.1.4
    • Added more raw data to calories request

1.3.1

  • Updated native iOS SDK Version to 2.4.2:
    • Added customer user id validation
  • Updated native Android SDK Version to 3.1.1:
    • Better way to authenticate with API
    • Added saved session validation before the connection is established
    • Added customer user id validation

1.3.0

  • Added ECG handling in iOS.
  • Added empty results when ECG is asked for on an Android device.
  • Made connections array in iOS thread-safe.
  • Updated structure of SpikeSource data model.
  • README updated with ECG data type.
  • Updated native iOS SDK Version to 2.4.1:
    • Fix the timezone in case it changes while the app is running.
    • Better way to authenticate with API.
    • ECG support.
    • Add trigger property to extractAndPostData request.
    • Add cycling parameters to Activities stream data request.

1.2.10

  • Updated native Android SDK Version.
  • Updated native iOS SDK Version.
  • README updated.

1.2.9

  • Updated native iOS SDK Version.

1.2.8

  • Updated native Android SDK Version.
  • Updated native iOS SDK Version.
  • PROD/DEV environments separation added.
  • Background delivery handling is documented for the iOS.
  • Method to disable background delivery introduced.
  • setEnvironment method removed as environment must be set when creating the connection.

1.2.7

  • Updated native Android SDK Version.
  • Updated native iOS SDK Version.

1.2.6

  • Updated native Android SDK Version.
  • Updated native iOS SDK Version.

1.2.5

  • SpikeStepData class name renamed into SpikeStepsData to keep aligned with Dart coding conventions.
  • Intraday steps data introduced.

1.2.4

  • Updated native Android SDK Version.

1.2.3

  • Updated native Android SDK Version.

1.2.2

  • Updated native Android SDK Version

1.2.1

  • Updated native Android SDK Version

1.2.0

  • Updated README with Android 14 set-up guide
  • Ensured permissions are checked and requested when the user tries to extract the data
  • Introduced ensurePermissionsAreGrantedV2 method, so it would become possible to get more information about what happened when requesting for permissions, which might be useful for Flutter Android apps
  • Improved processing of the Health Connect permissions when a user cancels giving permissions, gives them partially, or performs some other unexpected behavior
  • Updated native iOS SDK Version

1.1.1

  • Android Native SDK version updated

1.1.0

  • Updated iOS Native SDK version
  • Updated Android Native SDK version
  • Recreated Android Native SDK permissions handling

1.0.27

  • Updated iOS Native SDK version

1.0.26

  • Updated iOS Native SDK version

1.0.25

  • Updated iOS Native SDK version
  • Updated Android Native SDK version
  • Added the method isPackageInstalled to Android

1.0.24

  • Updated iOS Native SDK version

1.0.23

  • Updated iOS Native SDK version
  • Updated Android Native SDK version
  • Added more information on exceptions thrown in the README

1.0.22

  • Updated iOS Native SDK version

1.0.21

  • Updated iOS Native SDK version

1.0.20

  • Updated native Android SDK version usage
  • Made it possible to set the environment when using Android SDK

1.0.19

  • Added the method getSpikeEndUserId into the SpikeConnection

1.0.18

  • Updated Android SDK integration

1.0.17

  • Removed pack, unpack, since it is clients who need to manage their state
  • Integrated web hook connections into SpikeConnection
  • Reduced minimum SDK version to 28
  • Reduced compile an SDK version to 33
  • Updated examples
  • Updated README
  • Fully changed the integration with Android SDK

1.0.16

  • Implemented returning boolean after requesting permissions.

1.0.15

  • Native wrapping with native Android SDK release build issues resolved
  • Resolved requesting permissions issues using native Android SDK
  • Updated README
  • Updated examples

1.0.14

  • Native wrapping with native Android SDK finalized

1.0.13

  • Introduced native wrapping with native Android SDK
  • Introduced native wrapping with native iOS SDK

1.0.12

  • Min iOS version reduced for the sleep data

1.0.11

  • Updated README
  • Updated examples

1.0.10

  • Updated README
  • Ensured dart doc is working

1.0.9

  • Updated README
  • Made sure that casting when using connection.extractData() is no longer needed

1.0.8

  • Updated README
  • Updated data keys expectations per changed backend

1.0.7

  • iOS workouts reading problems resolved
  • Made sure floors are added from the iOS data
  • Added functionality that allows configuration of the background delivery tasks
  • Added debouncing for the background delivery tasks of five seconds, so they would not trigger unnecessary sending to the backend
  • Fixed an issue of reading sleep data. Ensured user is requested for additional permissions that are required to collect the statistics needed regarding sleep
  • Made sure that in sleep statistics zeroes would be changed into null when no data is read
  • Updated README with the background delivery example information

1.0.6

  • Breathing data issues resolved
  • Workouts reading issues resolved
  • Updated README
  • Updated SpikeSDK so that SpikeSDK.initialize() would not be needed as per documentation

1.0.5

  • Better background delivery configuration into SpikeSDK added

1.0.4

  • Improved logging
  • Improved sending data to the backend
  • Android Health Connect Core recreated using direct API for the Health Connect due to the failure of the Flutter package to properly convert data under the release mode

1.0.3

  • Added more logging
  • Fixed IDs usage

1.0.2

  • Improved logging

1.0.1

  • Fully rewritten of the communication with the backend
  • Introduced reading the body data
  • Improved calculation of time
  • Added more logging

1.0.0

  • Complete rewrite of the library to follow the Spike standards required

0.0.10

  • Sleep data reading and sending support introduced

0.0.9

  • Activity groups support introduced

0.0.8

  • Removed some data for summary
  • Workouts data times rounding added, so conversions would not fail

0.0.7

  • Updated examples
  • Summary data reading improved even further
  • Added the way to send separate identifier data
  • Updated README

0.0.6

  • Introduced workout data reading
  • Improved reading of summary data, and now all the summary data can be read

0.0.5

  • Background delivery now takes the last three days for the data to be sent
  • Removed calories, and basal energy burned introduced instead

0.0.4

  • Background delivery support introduced
  • Better code organization regarding storing some configured data in the storage
  • Background delivery interval support introduced
  • Improvements regarding date and time resolution when resolving or sending the data

0.0.3

  • Made sure background tasks would take correct intervals to send the data
  • Added more information to logging
  • Made sure events logged would be sorted by the date in ascending order

0.0.2

  • Improved handling of the background tasks registration
  • Support to set custom task ID introduced to check if background tasks actually work
  • Support for event tracking introduced. Tracking can be enabled or disabled

0.0.1

  • Apple HealthKit data reading functionality with the ability to send this data to the server of your choice