tracelet 0.9.0
tracelet: ^0.9.0 copied to clipboard
Production-grade background geolocation for Flutter. Battery-conscious tracking, geofencing, SQLite persistence, HTTP sync, and headless execution for iOS & Android.
0.9.0 #
- FEAT: Adaptive sampling engine — auto-adjusts
distanceFilterbased on detected activity type, battery level, and speed. Enable withGeoConfig(enableAdaptiveMode: true). See Adaptive Sampling Guide. - FEAT: Health check API —
Tracelet.getHealth()returns a comprehensive diagnostic snapshot covering tracking state, permissions, battery, sensors, database, and geofence state with actionableHealthWarningenum. See Health Check Guide. - FEAT: HTTP sync retry metadata —
HttpEventnow includesisRetryandretryCountfields. - FEAT: Configurable motion sensitivity —
MotionConfiggainsshakeThreshold,stillThreshold, andstillSampleCountfor tuning accelerometer-based motion detection. - FEAT:
HealthWarningDescriptionextension with.descriptiongetter for human-readable warning text. - CHORE: Bump all platform dependencies to ^0.9.0.
0.8.3 #
- FEAT: Unlimited geofences via proximity-based auto-load/unload — only geofences within
geofenceProximityRadiusare registered with the OS (up to 100 on Android, 20 on iOS), sorted by distance. Enables monitoring thousands of geofences despite platform limits. - FEAT:
geofencesChangeevent fires when geofences are activated/deactivated from proximity monitoring. - CHORE: Bump all platform dependencies to ^0.8.3.
0.8.2 #
- DOCS: Improve README visuals with combined Android & iOS demo image.
0.8.1 #
- PERF: iOS background hardening — all native operations (location persist, HTTP sync, headless engine boot, lifecycle transitions) now wrapped in
beginBackgroundTaskfor safe background execution. - FEAT: iOS 17+
CLBackgroundActivitySessionsupport — extends background runtime for location tracking. - FEAT: iOS 18+
CLServiceSessionsupport — maintains authorization state during background execution. - FIX: iOS
preventSuspendlifecycle gaps — audio keep-alive now correctly started/stopped in all tracking modes and transitions. - FIX: Web EventChannel bridge — all event streams (
onLocation,onMotionChange,onHeartbeat, etc.) were broken on web due to events being consumed but never forwarded. Now works correctly. - CHORE: Bump
tracelet_iosto ^0.8.1,tracelet_webto ^0.8.1.
0.8.0 #
- FEAT: OEM compatibility — automatic mitigations for aggressive OEM power management (Huawei, Xiaomi, OnePlus, Samsung, Oppo, Vivo).
- FEAT:
Tracelet.getSettingsHealth()— device health API returning manufacturer, aggression rating, battery optimization status, and available OEM settings screens. - FEAT:
Tracelet.openOemSettings(label)— open OEM-specific settings screens (autostart, battery saver, app launch) by label. - DOCS: Comprehensive OEM-COMPATIBILITY.md guide with per-manufacturer instructions.
- DOCS: Update README with OEM compatibility feature and documentation link.
- CHORE: Bump all platform dependencies to ^0.8.0.
0.7.1 #
- DOCS: Add mock location detection feature to README with documentation links and feature description.
- DOCS: Add Mock Detection guide to documentation table.
- CHORE: Bump all platform dependencies to ^0.7.1.
0.7.0 #
- FEAT: Mock location detection & prevention — detect and reject spoofed GPS locations across Android, iOS, and Web.
- FEAT:
Location.isMockfield — boolean flag indicating if a location came from a mock provider. - FEAT:
Location.mockHeuristicsfield —MockHeuristicsmetadata (satellite count, elapsed realtime drift, timestamp drift, platform flag). - FEAT:
LocationFilter.rejectMockLocationsconfig — block spoofed locations from reaching the app. - FEAT:
LocationFilter.mockDetectionLevelconfig —MockDetectionLevelenum (disabled,basic,heuristic) for configurable detection depth. - FEAT:
ProviderChangeEvent.mockLocationsDetected— real-time alert when mock locations are detected. - FEAT: Re-export
MockDetectionLevelfromtracelet.dartbarrel file. - DOCS: Comprehensive MOCK-DETECTION.md guide.
- DOCS: Updated CONFIGURATION.md with mock detection options.
- CHORE: Bump all platform dependencies to ^0.7.0.
0.6.1 #
- CHORE: Bump all platform dependencies to ^0.6.1.
0.6.0 #
- FEAT: Integrate shared Dart
LocationProcessorintoonLocationstream — distance filtering, elasticity, accuracy filtering, and speed filtering now run in Dart for cross-platform consistency. - FEAT: Integrate shared Dart
GeofenceEvaluatorfor high-accuracy proximity checks. - FIX: Fix broadcast stream bug — stateful
LocationProcessorandKalmanLocationFilterwere called once per listener per event, causing second subscriber to see distance=0 and filter all locations. Now uses cached.asBroadcastStream()so transformations run exactly once. - PERF: Native code no longer duplicates filtering logic — significantly reduces native code surface.
- CHORE: Bump all platform dependencies to ^0.6.0.
0.5.5 #
- FIX: iOS
onScheduleevent now sends full state map instead of partial data. - CHORE: Bump all platform dependencies to ^0.5.5.
0.5.4 #
- FIX: Heartbeat events no longer return zero coordinates on Android and iOS.
0.5.3 #
- CHORE: Bump all platform dependencies to ^0.5.3.
0.5.2 #
- FEAT:
disableMotionActivityUpdatesnow falls back to permission-free accelerometer-only motion detection instead of disabling all motion detection entirely. - DOCS: Expanded
MotionConfig.disableMotionActivityUpdatesdocumentation with fallback behavior, use cases, and battery notes. - DOCS: Updated
getMotionPermissionStatus()/requestMotionPermission()docs to reflect accelerometer-only mode behavior. - DOCS: Added "Opting Out of Motion Permission" section to PERMISSIONS.md with comparison table.
0.5.1 #
- DOCS: Update README with web platform in architecture and documentation tables.
0.5.0 #
- FEAT: Add web platform support via
tracelet_webpackage. - FEAT: Guard
registerHeadlessTask()for web compatibility (kIsWebearly return). - DOCS: Add Web Support guide (
help/WEB-SUPPORT.md) with full API compatibility matrix. - DOCS: Update README with web platform in architecture table and documentation links.
- CHORE: Bump all platform dependencies to ^0.5.0.
0.4.0 #
- FEAT:
getMotionPermissionStatus()andrequestMotionPermission()APIs for activity recognition permission. - FIX: Speed always zero in motionchange events — track
lastEffectiveSpeedacross location updates. - DOCS: Split README into focused help guides (Permissions, Background Tracking, API, Configuration).
- DOCS: Add side-by-side Android/iOS demo recordings.
- CHORE: Bump all platform dependencies to ^0.4.0.
- CHORE: Format all Dart files.
0.3.0 #
- FEAT: One-shot location —
getCurrentPosition()now supportspersist,samples,maximumAge, andextrasparameters for enterprise single-time location requests. - FEAT:
getLastKnownLocation()— returns the last cached location without triggering the GPS, ornullif unavailable. - FEAT:
ForegroundServiceConfig.enabled— disable foreground service/notification for lightweight one-shot requests. - BREAKING: Bump all platform dependencies to ^0.3.0.
0.2.5 #
- Fix LICENSE file format for proper SPDX detection on pub.dev.
- Bump
tracelet_androiddependency to ^0.2.3. - Bump
tracelet_iosdependency to ^0.2.4.
0.2.4 #
- Bump
tracelet_androiddependency to ^0.2.2 (fixes config not applied to foreground notification). - Bump
tracelet_iosdependency to ^0.2.3 (fixes config values ignored on iOS).
0.2.3 #
- Bump
tracelet_iosdependency to ^0.2.2 (fixes iOSConfigManagercrash).
0.2.2 #
- Fix dangling library doc comment lint in
_helpers.dart.
0.2.1 #
- Add
tracelet_androidandtracelet_iosas explicit dependencies to fix default plugin resolution warnings.
0.2.0 #
- Add
isMovingfield toStatemodel. - Fix
Config.toMap()— use nested map structure to prevent extras key collision. - Fix
watchPositionlistener leak — subscriptions now tracked and cancelled. - Fix
removeListeners()to cancel all Dart-side stream subscriptions. - Change
LogLeveldefault fromofftoinfo. - Complete
==/hashCodeon all sub-config classes. - Extract shared deserialization helpers to reduce code duplication.
- Fix example (
LogConfig→LoggerConfig).
0.1.1 #
- Fix pubspec description length for pub.dev scoring.
- Add SPDX
license: Apache-2.0identifier. - Add
example/main.dartfor pub.dev documentation score.
0.1.0 #
- Initial release.
- Full background geolocation API with 38 public methods.
- 14 real-time event streams (location, motion, geofence, HTTP, etc.).
- Comprehensive config system: GeoConfig, AppConfig, HttpConfig, MotionConfig, GeofenceConfig, PersistenceConfig, LoggerConfig.
- Elasticity-based distance filter scaling.
- Location filtering and denoising.
- Headless Dart execution for background events.
- Scheduling with cron-like expressions.
removeListeners()for centralized cleanup.
