spike_flutter_sdk 4.3.174
spike_flutter_sdk: ^4.3.174 copied to clipboard
Spike Health data reader for Android and iOS platforms.
4.3.174 #
- MetricType: added namespace with metric allowlists for API requests:
MetricType.availableForRecordsRequest– list of metric types available for records requestsMetricType.availableForActivitiesRequest– list of metric types available for activities requestsMetricType.availableForSleepRequest– list of metric types available for sleep requestsMetricType.availableForPersonRequest– list of metric types available for person requests
- Updated iOS SDK to
4.3.151:- Improved data push to API
- Fixed workout digest generation for caching
- Improved client cache configuration
4.3.164 #
- Updated Android SDK to
4.3.132:- Samsung Health Data Integration - Major Expansion:
- Added support for reading and pushing the following data types from Samsung Health:
- Workouts (exercises)
- Sleep data
- Body composition data (weight, height, BMI, body fat)
- User profile data (weight, height, birth date, gender)
- Blood pressure measurements
- Skin temperature measurements
- Heart rate measurements
- Blood oxygen saturation (SpO2) measurements
- Body temperature measurements
- More efficient Samsung Health Data pushes
- Large Samsung Health Data pushes are now automatically split into smaller chunks for reliable delivery
- Large Health Connect pushes are now automatically split into smaller chunks for reliable delivery
4.3.154 #
- Added Nutrition Facts Label Recognition for extracting nutritional information from label photos.
For more information please visit our documentation.
recognizeNutritionFactsLabel({required String imageBase64, NutritionFactsLabelRecognitionConfig? config})- Analyze a nutrition facts label image and extract nutritional data
- Added methods for manual nutrition record management:
createNutritionRecord(NutritionRecord nutritionRecord)- Insert a new nutrition record with custom datareplaceNutritionRecord(NutritionRecord nutritionRecord)- Replace an existing nutrition record completely
- Added
NutritionRecordUtilsfor creating and manipulating nutrition records:NutritionRecordUtils.create({...})- Create a new nutrition record with specified propertiesrecord.withIngredient(ingredient)- Add an ingredient to a recordrecord.withoutIngredient(ingredient)- Remove an ingredient from a recordrecord.withServingSize(servingSize, unit)- Update serving size and unit
- Added
NutritionRecordIngredientUtilsfor creating and manipulating ingredients:NutritionRecordIngredientUtils.create({...})- Create a new nutrition record ingredientingredient.withNutritionalField(nutritionalField, value)- Set a nutritional field valueingredient.withoutNutritionalField(nutritionalField)- Remove a nutritional fieldingredient.withScaledServingSize(newServingSize)- Scale serving size and nutritional values proportionally
- Nutrition AI methods now return
NutritionRecordAnalysisResultinstead ofNutritionRecord. This separates processing metadata (status, failure reason) from the actual nutrition data. The following methods are affected:analyzeNutrition()→ returnsFuture<NutritionRecordAnalysisResult>getNutritionRecords()→ returnsFuture<List<NutritionRecordAnalysisResult>>getNutritionRecord()→ returnsFuture<NutritionRecordAnalysisResult?>updateNutritionRecordServingSize()→ returnsFuture<NutritionRecordAnalysisResult>createNutritionRecord()→ returnsFuture<NutritionRecordAnalysisResult>replaceNutritionRecord()→ returnsFuture<NutritionRecordAnalysisResult>TheNutritionRecordAnalysisResultcontains:recordId- The record IDstatus- Processing status (pending, processing, completed, failed, updated)failureReason- Reason for failure (if status is failed)uploadedAt- Upload timestampnutritionRecord- The actualNutritionRecord(null if status is not completed/updated)
- Update Android SDK to
4.3.122 - Update iOS SDK to
4.3.141- IMPORTANT! If after updating you get errors while building iOS app please do following:
rm -rf ios/Pods/ ios/Podfile.lock- delete old podscd ios; pod install --repo-update- install updated pods- Open project in XCode 26 and do a full clean:
Product -> Clean build folderorShift + Command + K
- IMPORTANT! If after updating you get errors while building iOS app please do following:
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 resultssubmitNutritionForAnalysis(imageBase64, consumedAt, config)- Analyze food image asynchronously, returns record IDgetNutritionRecords(from, to)- Retrieve nutrition records for a date rangegetNutritionRecord(id)- Get a specific nutrition record by IDdeleteNutritionRecord(id)- Delete a nutrition recordupdateNutritionRecordServingSize(id, servingSize)- Update serving size for a nutrition record
- Added new
Provider:- luna
- Added new
ProviderSourcetypes:- fitbitSkinTemperatureSummary
- garminWellnessSkinTemperatureSummary
- lunaSleep
- Removed
ProviderSourcetypes:- 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_MINDFULNESSuser permission should be added toAndroidManifest.xmlfile
- Updated Health connect to
- 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
SPO2andSWIMMING_LENGTHSingetActivities - Allow reading
SPO2andSKIN_TEMPERATUREingetSleeps
- Allow reading
- 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
.corosProvider - Updated
ProviderSourceenum - Added statistics:
stressScore,recoveryScore,activityScore - Updated Android SDK to
4.3.52:- Added
Provider.COROS - Updated
ProviderSourceenum - Added new Statistic types:
- STRESS_SCORE
- RECOVERY_SCORE
- ACTIVITY_SCORE
- Added new Metric types for
getSleeprequest:- 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
- Added
- Updated iOS SDK to
4.3.91:- Added
.corosProvider - Updated
ProviderSourceenum - 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
getSleeprequest:- 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
spikeApiTokenand delete it.
- Added
4.3.74 #
- Added new
SpikeSDKV3.setLogCallback()method to receive logs from the native SDK. Example usage:dart 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.GLUCOSEavailable in both Health Connect and Samsung Health - Update Samsung Health Data SDK to version 1.0.0 (available only on Android 29+)
- New
- Updated iOS SDK to
4.3.81:- Added
MetricType:.glucose
- Added
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
- Deprecated the old Spike
- Updated iOS SDK to
4.3.71:- Deprecated the old Spike
SpikeSDK - Added
disableHealthKitIntegrationandisHealthKitIntegrationEnabledfunctions in spike connection
- Deprecated the old Spike
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: sleepBreathingRatetobreathingRatesleepBreathingRateMintobreathingRateMinsleepBreathingRateMaxtobreathingRateMax
- Added new
4.3.34 #
- Updated native iOS SDK Version to
4.3.41- IntegrationInitConfig is now codable
- Additional check in
getIntegrationInitUrlfor email in ultrahuman integration
- Updated native Android SDK Version to
4.2.82- Added
IntegrationInitConfigUtilsfor usage in Flutter and React Native libraries - Additional check in
getIntegrationInitUrlfor email in ultrahuman integration
- Added
- New provider:
ultrahumanWhen integrating with Ultrahuman, you have to provide ultrahuman user email inIntegrationInitConfig.providerUserIdentifier. Example:spikeConnection.getIntegrationInitUrl(provider: .ultrahuman, config: IntegrationInitConfig(providerUserIdentifier: "user@mail.com"))
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 acceptsIntegrationInitConfigconfig object where you can pass:redirectUri: will override the one set in admin consolestate: when the authorization server redirects back to the client, it includes thestatevalue originally sentproviderUserIdentifier: at the moment used (and required) only when integrating with ultrahuman
- New provider:
ultrahumanWhen integrating with Ultrahuman, you have to provide ultrahuman user email inIntegrationInitConfig.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- 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 acceptsIntegrationInitConfigconfig object where you can pass:redirectUri: will override the one set in admin consolestate: when the authorization server redirects back to the client, it includes thestatevalue originally sentproviderUserIdentifier: at the moment used (and required) only when integrating with ultrahuman
- Added new provider:
ultrahumanWhen integrating with Ultrahuman, you have to provide Ultrahuman user email inIntegrationInitConfig.providerUserIdentifier. Example:spikeConnection.getIntegrationInitUrl(provider = Provider.ULTRAHUMAN, config = IntegrationInitConfig(providerUserIdentifier = "user@mail.com"))
- Added new
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
- Added new statistic metrics:
4.2.74 #
- Removed outdated example. Please follow Flutter SDK Usage Guide.
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:
VO2MAXavailable ingetRecordsandgetActivities - Changed hrv metric names:
hrvRmssd,hrvSdnn - Added new statistic:
sleepScore - Updated native iOS SDK Version to iOS 4.2.21
- Added new
getUserPropertiesmethod for reading: weight, height, timezone, birthdate, gender
- Added new
- Updated native Android SDK Version to 4.2.32
- Added new
getUserPropertiesmethod for reading: weight, height, timezone from Health Connect - Added new
getUserPropertiesmethod for reading: birthdate, gender from other providers
- Added new
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 methodSpike.createConnectionAPIv3({appId:, authToken:, customerEndUserId:})has been updated to:SpikeSDKV3.createConnection(applicationId:, signature:, endUserId:) -
The
applicationIdparameter must now be provided as anint. -
The
signatureparameter now requires anHMAC-SHA256signed 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
SpikeSourcedata 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
isPackageInstalledto 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
getSpikeEndUserIdinto theSpikeConnection
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