smart_location 3.4.0
smart_location: ^3.4.0 copied to clipboard
Smart Location is a powerful, battery-conscious Flutter plugin for continuous background geolocation tracking, advanced geofencing, and motion-aware updates.
All notable changes to this project will be documented in this file.
3.4.0 - 2026-06-23 #
Added #
- Zero-Lag GPS Smoothing: Moved location processing directly to the native OS layer, providing buttery-smooth movement streams while consuming near-zero CPU and battery overhead.
- Unkillable Background Tracking: Engineered an OS-level fallback mechanism that instantly resurrects the tracking service even if the device aggressively tries to kill the app in the background.
- Military-Grade Location Security: Upgraded our data security layer to lock sensitive tracking data with military-grade encryption, ensuring data is kept completely safe.
- Example App Polish: Fixed race conditions in the search UI, updated the Splash Screen with a beautiful native animation, and improved app icon transparency.
- Streamlined Documentation: Rewrote the documentation to focus purely on the core enterprise benefits (Reliability, Battery, Security) that matter most to your users.
3.3.0 - 2026-06-23 #
Added #
- SmartLocation Doctor UI: Draggable floating diagnostic overlay (
SmartLocationDoctor.show(...)) displaying live GPS signal bars, battery mini-bar with mode, permission status, activity type + speed, active geofence count, sync queue depth, and a live warning panel. Dark GitHub-themed design with animated pulse indicator and collapse/expand gesture. - Driving Telematics Engine:
DrivingTelematicsEnginedetects harsh braking, harsh acceleration, sharp cornering, and speeding from any GPS stream. Each event carries a 0–1 severity score proportional to the violation magnitude. IncludesTelematicsConfig.city()andTelematicsConfig.fleet()presets and an event history. Access viaSmartLocation.telematics. - iOS 17/18 Background Hardening: Upgraded iOS plugin with
CLBackgroundActivitySession(iOS 17) andCLServiceSession(iOS 18) to keep GPS running through extended background sessions. AllCLLocationManagerDelegatecallbacks are now wrapped inUIBackgroundTaskfor safe execution. Stale locations (>10 s old) are rejected at the native layer. - Android Boot-on-Start:
BootReceiverauto-restarts background tracking after device reboot if tracking was active. Tracking state is persisted inSharedPreferencesand restored onBOOT_COMPLETEDandMY_PACKAGE_REPLACED. - Android OEM Battery Native Implementation:
SmartLocationPlugin.ktnow implements thesmart_location/oemMethodChannel fully in Kotlin — detects 10 OEM brands, launches brand-specific battery settings activities, queriesPowerManager.isIgnoringBatteryOptimizations, and callsACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONSdirectly. - Android Battery Level Native:
getBatteryLevelcall now reads directly fromBatteryManager.BATTERY_PROPERTY_CAPACITY(precise integer %, not approximation).
3.2.0 - 2026-06-23 #
Added #
- Health Check API: Comprehensive
HealthCheckEngine.getHealth()— a single call returning a fullHealthSnapshotcovering permissions, battery, GPS signal, offline storage, and active geofences, with auto-generatedHealthWarnings and actionable fix hints. - OEM Compatibility Layer:
OemCompat.detect()identifies aggressive power-management manufacturers (Xiaomi, Huawei, Samsung, OnePlus, Oppo, Vivo, etc.) andshowPowerManagerSettings()opens the OEM-specific battery whitelisting screen to prevent background tracking from being killed. - Delta Encoding in SyncEngine:
DeltaEncodercompresses location batches by transmitting coordinate deltas instead of absolute values, achieving 60–80 % smaller HTTP payloads on real GPS tracks. Enabled viaSyncEngine.start(useDeltaEncoding: true). - 401-Aware JWT Refresh in SyncEngine: New
onUnauthorizedcallback is invoked when the server returns a 401, allowing headless token refresh before a single re-attempt — no more dropped syncs on token expiry. - Battery Budget Engine:
BatteryBudgetEngine— a feedback-control loop that monitors actual battery drain rate every 5 minutes and auto-tunesdistanceFilterandLocationAccuracyto stay within a configurabletargetPercentPerHourtarget. Access viaSmartLocation.budgetEngine. - Adaptive Sampling:
AdaptiveSamplercomputes the optimaldistanceFilterbased on current activity type, battery level, charging state, and speed. Wire into the stream viaSmartLocation.streamWithSettings(useAdaptiveSampling: true)after callingSmartLocation.applyAdaptiveSampling(...). - Built-in Kalman Filter on Stream:
SmartLocation.streamWithSettings(useKalmanFilter: true)now applies GPS smoothing inline on the location stream — no more manualKalmanFilterinstance needed. - GDPR / CCPA Compliance Report Generator:
SmartLocation.compliance.generate(...)produces a structured GDPR Article 30 data processing inventory in both JSON and Markdown formats, covering data categories, purposes, retention, safeguards, and data subject rights.
3.1.0 - 2026-06-22 #
Added #
- On-Device Route Learning Engine: A pure-Dart statistical machine learning engine that learns route travel times on-device to predict future ETAs, without external APIs.
- Predictive Geofencing: Automatically spawn predictive geofences ahead of time based on the user's learned movement patterns.
- Time-Gated Geofences: Geofences that respect operational hours, saving battery by remaining dormant when inactive.
Fixed #
- Updated README.md dependency instructions to reflect the latest version correctly on pub.dev.
3.0.1 - 2026-06-17 #
Changed #
- SEO optimizations: Updated
pubspec.yamldescription to improve indexing on pub.dev and Google Search.
3.0.0 - 2026-06-16 #
Major Enterprise Feature Additions #
- Anti-Spoofing & Fake GPS Engine: Filters mock locations and physically impossible "teleportation" speed jumps.
- Route Deviation & Off-Route Detection: Detects and alerts when a driver veers off their prescribed route.
- Multi-Stop Journey Manager: Automates tracking progress along a multi-stop delivery or ride sequence.
- Live Streaming Adapter: Exposes an adapter to effortlessly push GPS streams directly to WebSockets or MQTT publishers at controlled rates.
- OS Health Monitor: Continuously watches for silent OS permission downgrades or battery saver mode activations.
- Severe Crash Detector: Identifies violent vehicular impacts by analyzing extreme G-force deceleration.
2.1.0 - 2026-06-12 #
2.0.1 - 2026-06-11 #
2.0.0 - 2026-06-11 #
Major Architectural Rewrite #
- Native Background Tracking: Completely removed
geolocatordependency.smart_locationis now a true native plugin utilizing Android Foreground Services (LocationService) and iOSCLLocationManagerdirectly. - Offline Persistence: GPS coordinates tracked in the background are now automatically and securely cached locally (Android SQLite / iOS Memory) when the device loses network connectivity.
- Headless Dart Execution (Batched): Replaced per-location isolate spawning with a highly efficient 15-minute batched task scheduler (
WorkManageron Android,BGTaskScheduleron iOS). Wakes up a hidden Dart Isolate in the background to run custom data-sync functions without draining the battery. - Motion Intelligence: Implemented native
pausesLocationUpdatesAutomaticallyon iOS to aggressively preserve battery when the device is stationary.
1.0.0 - 2026-05-26 #
Added #
- Battery Policy Manager: Dynamic location tracking adaptations based on battery percentage.
- OSM Road Snapper: Query routing network endpoints to snap coordinates to roads.
- Markov Predictor: Learns visit patterns to estimate the most likely next destination zone.
- Geo-Cryptography: Location-locked data encryption and decryption bound to geofence regions.
- Signal Health Diagnostics: Real-time HDOP/VDOP metrics, satellite count estimates, and signal strength bars.
- Transit Detector: Telemetry pattern analysis to classify public transit types (e.g. Bus vs. Train).
- Indoor Beacon Connector: BLE beacon scanner RSSI mapping to feed indoor centroid positioning models.
- Native Geofencing Bridge: MethodChannel bridge for iOS CoreLocation and Android GeofencingClient background triggers.
0.0.5 - 2026-05-22 #
Added #
- DeadReckoning Engine: Kinematic vector coordinate projection during GPS signal loss.
- Road Snapping & Smoothing: Velocity outlier filtering for GPS drift removal and road network snapping.
- Spatial Hashing: Optimized geofence evaluations from $O(N)$ to $O(1)$ grid index bucket queries.
- Eco Optimizer: Dynamic recommendations for power-adaptive and network-aware location tracking.
- Indoor Centroid Locator: Centroid tracking by signal RSSI signal strengths (Wi-Fi/Bluetooth Beacons).
- Map Utilities: Added RDP path simplification (
simplifyPath), Google Encoded Polyline, and GeoJSON exporters. - Simulators: Interactive demonstration panels in the example application for all advanced features.
- Unit Tests: Comprehensive suite covering all advanced features.
0.0.4 - 2026-03-27 #
Fixed #
- Rewrote
README.mdto fix broken Markdown formatting — all documentation content was accidentally embedded inside an unclosed```dartcode fence in0.0.2, causing pub.dev to render raw text instead of formatted documentation - Restored proper headings, tables, code blocks, and section structure throughout
README.md
Changed #
- Shortened and clarified the package
descriptioninpubspec.yaml - Added
topicstopubspec.yamlfor better discoverability on pub.dev (location,gps,geolocation,tracking) - Updated dependency reference in
README.mdto^0.0.4
0.0.2 - 2026-03-27 #
Changed #
- Updated
pubspec.yamlversion to0.0.2 - Updated
README.mddependency reference to^0.0.2
Documentation #
- Expanded
README.mdwith a comprehensive usage guide covering 7 real-world scenarios:- One-time location fetch (delivery, profile setup)
- Live tracking (ride-sharing, food delivery)
- Geofencing / proximity alerts
- Distance-based tracking with
distanceFilter(fitness apps) - Fast startup using
lastKnown()cached location - Heading / bearing for navigation and compass UIs
- Permission-only check for feature gating
- Added error handling best practices section
- Added Android (
AndroidManifest.xml) and iOS (Info.plist) setup instructions - Added background location configuration notes for both platforms
- Added API overview table and usage best practices
0.0.1 - 2026-03-26 #
Added #
- Initial release of Smart Location Flutter package
- Get current location of the device
- Get last known location
- Continuous location updates (stream)
- Check if location services are enabled
- Distance calculation between two coordinates
- Bearing calculation between two coordinates
- Permission handling utilities
- Background tracking support (basic)
- Example app demonstrating all features
- Basic unit tests for core functionality