carp_mobile_sensing
Mobile Sensing Framework for Flutter. A software framework for collecting sensor data from the phone and attached wearable devices via probes. Can be extended.
2.3.1
2.8K downloads/mo
#4757 most downloaded on pub.dev
cph-cachet/carp.sensing-flutter
What this package is like to depend on
Last release 7 days ago
17 Aug 2026
Ships unpredictably
gaps range from 8 days to 10 months
Most releases are documented
notes for 113 of 171 stable releases
3 versions withdrawn
withdrawn after publishing
8 years old
174 releases · first in 2018
13 releases in the last 12 months
see the full history below
Release timeline
174 releases · Oct 2018 to Aug 2026Releases
latest 60 of 174-
2.3.117 Aug 2026Release notes
Open source →- fix
duplicate column name: record_idcrash in therecord_idSQLite migration (SQLiteDataManager.onUpgrade) by only adding the column/index when it isn't already there
- fix
-
2.3.017 Aug 2026Release notes
Open source →- upgrade to
device_info_plus^13.2.0 andpackage_info_plus^10.2.1, which require Flutter >=3.38.1- needed for compatibility with
health^13.3.2, which also requiresdevice_info_plus^13.x - both bumps pull in
win326.x; neither changes the API used here
- needed for compatibility with
- upgrade to
-
2.2.014 Aug 2026Release notes
Open source →- require
carp_serializable^3.0.0, which replaces the built-inUuidwith the uuid package
- require
-
2.1.807 Aug 2026Nothing published for this version
-
2.1.706 Aug 2026Release notes
Open source →- resume a connectable device's task control executors when it connects after the study has started - previously they stayed paused and the device never sampled
- request location permission for BLE devices on Android, which is required for BLE scanning to return any results
- cancel the previous subscription when a [StreamProbe] is resumed, so resuming an already resumed probe no longer orphans a subscription that keeps delivering and collects every measurement once per resume
-
2.1.624 Jul 2026Nothing published for this version
-
2.1.522 Jul 2026Nothing published for this version
-
2.1.421 Jul 2026Nothing published for this version
-
2.1.330 Jun 2026 -
2.1.212 Jun 2026Release notes
Open source →Backwards compatibility with studies created on CAMS 1.x (protocol API level < 2.0), so that apps can upgrade from 1.x to 2.x without losing running deployments.
- Support deserialization of 1.x protocols and deployments, which used the
carp_coredevice namespace before the rename todk.carp.cams.devices— the 1.x device type names are now registered asfromJsonaliases (Smartphone,BLEHeartRateDevice,SmartphoneDeviceRegistration). - Tolerate missing BLE scan fields (
serviceUuids,allowDuplicates) and the missingdeployed/ 1.xstatusfields when deserializing 1.x deployments. - Restore the 1.x
stepcountmeasure type and probe. - Migrate the local SQLite database from the 1.x schema to the 2.x schema on first launch (
studiestable and thedevice_role_namecolumn ontask_queue), instead of failing withno such table/no such column.
- Support deserialization of 1.x protocols and deployments, which used the
-
2.1.102 Apr 2026Release notes
Open source →This release has two new main features: (i) to support adding, running, and removing multiple studies to the client manager, and (ii) to save runtime state persistently so that sampling of data in all studies will resume effortlessly across app restart. In addition, a set of issues have been addressed, as listed in Milestone 2.0.0. The important ones include:
- Update of the client software architecture to reflect the CARP Core client architecture. This - amongst other things - provides better support for
StudyStatusin the client manager (#504) - Simplified configuration - now only the client and not the controller needs configuration.
- Revised state machine model for executors, now using states 'resumed' and 'paused' instead of 'started' and 'stopped'
- Added
AppLifecycleEventmeasure to collect life-cycle event from the app - Correct device registration in the deployment service (#550).
The example app has also been update to illustrate how a client can run multiple studies (#559). Also note that CAMS now has a completely new documentation site.
- Update of the client software architecture to reflect the CARP Core client architecture. This - amongst other things - provides better support for
-
2.1.001 Apr 2026Nothing published for this version
-
2.0.011 Mar 2026 withdrawn -
1.13.123 May 2025 -
1.13.020 May 2025Nothing published for this version
-
1.12.629 Apr 2025Release notes
Open source →- Deprecating the
ONE_TIME_SENSING_TYPE- now there is only one type of sensing user task (#488)
- Deprecating the
-
1.12.524 Apr 2025 withdrawnNothing published for this version
-
1.12.408 Apr 2025 -
1.12.306 Apr 2025 withdrawnNothing published for this version
-
1.12.202 Apr 2025Nothing published for this version
-
1.12.127 Feb 2025Nothing published for this version
-
1.12.012 Feb 2025Nothing published for this version
-
1.11.604 Dec 2024 -
1.11.510 Nov 2024 -
1.11.404 Nov 2024 -
1.11.329 Oct 2024Nothing published for this version
-
1.11.213 Oct 2024Nothing published for this version
-
1.11.113 Oct 2024Nothing published for this version
-
1.11.009 Oct 2024Nothing published for this version
-
1.10.023 Sep 2024Release notes
Open source →- Upgrade to carp_core v. 1.8 & carp_serialization v. 2.0
- Type safe
fromJson()methods & nested json serialization - Upgrade of example app to use new Flutter Android Gradle build setup
-
1.9.022 Jul 2024 -
1.8.209 Jul 2024 -
1.8.119 Jun 2024Release notes
Open source →- Added support for extension of triggers, #403. See the section on Adding new Trigger on the CAMS wiki.
- Refactor of the software architecture to align better with a domain-driven design architecture.
- Improvements to executor state machine (can only restart an executor/probe that is already started)
-
1.8.009 Jun 2024Nothing published for this version
-
1.7.204 Jun 2024Nothing published for this version
-
1.7.103 Jun 2024 -
1.7.003 Jun 2024Release notes
Open source →- Refactor task and notification enqueueing process:
- Move from sequential scheduling for each TaskControl to buffering tasks in AppTaskController.
- Buffered tasks are sorted by time and scheduled in batches based on platform limits (iOS and Android notification limits).
- Enhance consistency in task scheduling:
- Ensured all necessary tasks in the foreseeable future are queued.
- Prevent task and notification drops due to notification slot limitations.
- Resolve issue with duplicate tasks being scheduled:
- Ensure tasks are stored in the database after being scheduled the first time.
- Refactor task and notification enqueueing process:
-
1.6.106 May 2024Release notes
Open source →- Improvement to removing studies (linked to issue #283 in the CARP Studies App)
- adding a new "disposed" sensing state
- removing study deployment runtime
- better handling of restarting sampling on device reconnection
- Upgrade of carp_serialization and carp_core
- Getting rid of uuid package dependency
- Fix of #394
- Improvement to removing studies (linked to issue #283 in the CARP Studies App)
-
1.6.005 May 2024Nothing published for this version
-
1.5.125 Apr 2024Release notes
Open source →- Automatically stopping a background task if all of its underlying probes have stopped (fix of 384)
- Upgrade to carp_core v. 1.5.0 (getting rid of
IsoDuration)
-
1.5.018 Apr 2024 -
1.4.720 Mar 2024Release notes
Open source →- Improvements to handling connected BLE devices
- Improvement to triggers and probes using BLE devices
- Improvements to restarting sampling on device reconnect
- Upgrade of packages
-
1.4.620 Mar 2024Nothing published for this version
-
1.4.529 Feb 2024Nothing published for this version
-
1.4.412 Feb 2024Release notes
Open source →- Upgrade of plugins (battery_plus, sensor_plus, cron)
- Support for specifying ("overriding") sampling frequency in sensor measures (accelerometer, gyroscope, magnetometer) by using a
IntervalSamplingConfiguration - Improvement to executor state machine
- Improvement to restarting sampling on device (re)connection, including now also online service like the location service
- Improvements to device manager
-
1.4.329 Jan 2024Nothing published for this version
-
1.4.226 Jan 2024Nothing published for this version
-
1.4.122 Jan 2024Nothing published for this version
-
1.4.025 Nov 2023Release notes
Open source →First major release of CARP Mobile Sensing based on CARP Core API level 1.x.
-
1.4.0+126 Nov 2023 -
1.3.522 Nov 2023Release notes
Open source →- Upgrade of uuid and permission_handler plugins
- Addition of a ACCELERATION_FEATURES that samples accelerometer readings over a sampling period and calculates a set of statistical features (Issue 336 & 347)
- Removal of support for awesome_notifications which does not compile on iOS
- Improvements to API docs
- Removal of
toString()methods on data points - if you want to print data, print the json generated from thetoJson()method. - Rename of
TransformerSchemaRegistrytoDataTransformerSchemaRegistry
-
1.3.420 Oct 2023Nothing published for this version
-
1.3.308 Oct 2023Nothing published for this version
-
1.3.201 Oct 2023Nothing published for this version
-
1.3.125 Sep 2023Nothing published for this version
-
1.3.018 Sep 2023Nothing published for this version
-
1.2.004 Sep 2023Release notes
Open source →- Battery stream on device controller and device managers
- Support for creating, scheduling, and cancelling generic text-based notifications in the notification controller
- A device manager can now specify and handle its required permissions
-
1.1.325 Aug 2023Release notes
Open source →- Added support for restoring a
SmartPhoneClientManageron app restart - A
privacySchemaNameis moved to be part of theSmartphoneStudyProtocolconfiguration. - Simplification of API so that a simple local study can be configured, initialized, and started in one statement (without the need for understanding the whole deployment architecture).
- Added support for restoring a
-
1.1.223 Jul 2023Release notes
Open source →Note: This release has breaking changes.
-
The first stable release of CARP Mobile Sensing which follows the carp.core-kotlin v. 1.1.0 domain model, which again is implemented in the carp_core v. 1.1.0 Dart Domain model.
-
This entails a set of breaking changes to the domain model:
- CARP cores now comes with a range of pre-defined Measure Types (e.g.,
geolocation,stepcount, etc.). These CARP Core measures has replaced the previous CAMS versions of these. However, most of the "old" measures are kept, so there should be backward compatibility. - Important new measure types are the
TriggeredTask,CompletedTask, which now automatically collected data on when and how a trigger and task are done. - A
Heartbeatmeasurement has been added, which sends a measure every 5 minutes for each device (incl. the phone), if connected. This can be used to retrospectively check if sampling has been running (typically used in our so-called Coverage tests). - In the protocol, triggering is now controlled by the
Controlclass, which basically states if sampling should be started or stopped. So, instead of adding aTriggeredTaskto a protocol you now add aTaskControlinstead. - As part of this, the states of sampling has changed from "resumed" and "paused" to "started" and "stopped" (to reflect the
Controlstate of aTaskControl). - Configuration of sampling is done using the
SamplingConfigurationwhich can be part of aDataTypeSamplingSchemewhich again can be part of aDataTypeSamplingSchemeMap. A description of how this works is on the CARP Core description of Sampling Schemes and Configuration section. Note that sampling configurations can be associated both with aMeasure, with aDeviceConfigurationfor a device, and with aSamplingPackage.
- CARP cores now comes with a range of pre-defined Measure Types (e.g.,
-
The new
datasub-system has been implemented in CAMS. This entails:- Sampled data is now stored as
Dataobjects which again are stored as part of aMeasurement(this replaces the oldDataPointdata model). - Measurements are streamed using the
measurementsstream which is accessible from theSmartphoneDeploymentController. - Measurements can be stored or managed by a
DataManager. CAMS comes with two build-in data managers: theFileDataManagerand theSQLiteDataManager.
- Sampled data is now stored as
-
The
UserTaskis no longer responsible for showing the user interface of the task. Now, instead of showing the user interface, theonStartmethods now returns aWidgetto be shown. In this model, the app (and not CAMS) is responsible for deciding when and how to show the user interface. This entails that the the life cycle methods ofonStart,onCancel,onExpired, andonDoneno longer takes the FlutterBuildContextas a parameter. Read more on theAppTaskandUserTaskmodel on the CAMS wiki. -
Other smaller changes include:
- Use the
CarpMobileSensing.ensureInitialized()static method in yourmainmethod to ensure that CAMS is initialized before use. - Update of
AppDelegate.swiftin example app to handle notifications in the background. - Adding info, warning, and debug information to the system log (instead of the console) using colors for better reading.
- Use the
-
-
1.1.123 Jul 2023Nothing published for this version