smart_location 3.4.0 copy "smart_location: ^3.4.0" to clipboard
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: DrivingTelematicsEngine detects 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. Includes TelematicsConfig.city() and TelematicsConfig.fleet() presets and an event history. Access via SmartLocation.telematics.
  • iOS 17/18 Background Hardening: Upgraded iOS plugin with CLBackgroundActivitySession (iOS 17) and CLServiceSession (iOS 18) to keep GPS running through extended background sessions. All CLLocationManagerDelegate callbacks are now wrapped in UIBackgroundTask for safe execution. Stale locations (>10 s old) are rejected at the native layer.
  • Android Boot-on-Start: BootReceiver auto-restarts background tracking after device reboot if tracking was active. Tracking state is persisted in SharedPreferences and restored on BOOT_COMPLETED and MY_PACKAGE_REPLACED.
  • Android OEM Battery Native Implementation: SmartLocationPlugin.kt now implements the smart_location/oem MethodChannel fully in Kotlin — detects 10 OEM brands, launches brand-specific battery settings activities, queries PowerManager.isIgnoringBatteryOptimizations, and calls ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS directly.
  • Android Battery Level Native: getBatteryLevel call now reads directly from BatteryManager.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 full HealthSnapshot covering permissions, battery, GPS signal, offline storage, and active geofences, with auto-generated HealthWarnings and actionable fix hints.
  • OEM Compatibility Layer: OemCompat.detect() identifies aggressive power-management manufacturers (Xiaomi, Huawei, Samsung, OnePlus, Oppo, Vivo, etc.) and showPowerManagerSettings() opens the OEM-specific battery whitelisting screen to prevent background tracking from being killed.
  • Delta Encoding in SyncEngine: DeltaEncoder compresses location batches by transmitting coordinate deltas instead of absolute values, achieving 60–80 % smaller HTTP payloads on real GPS tracks. Enabled via SyncEngine.start(useDeltaEncoding: true).
  • 401-Aware JWT Refresh in SyncEngine: New onUnauthorized callback 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-tunes distanceFilter and LocationAccuracy to stay within a configurable targetPercentPerHour target. Access via SmartLocation.budgetEngine.
  • Adaptive Sampling: AdaptiveSampler computes the optimal distanceFilter based on current activity type, battery level, charging state, and speed. Wire into the stream via SmartLocation.streamWithSettings(useAdaptiveSampling: true) after calling SmartLocation.applyAdaptiveSampling(...).
  • Built-in Kalman Filter on Stream: SmartLocation.streamWithSettings(useKalmanFilter: true) now applies GPS smoothing inline on the location stream — no more manual KalmanFilter instance 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.yaml description 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 #

Added #

  • Added WebAssembly (WASM) compilation support.
  • Added Swift Package Manager (SPM) support for iOS and macOS.

Fixed #

  • Replaced deprecated desiredAccuracy and timeLimit in geolocator by passing a LocationSettings object.

2.0.1 - 2026-06-11 #

Added #

  • Expanded platform support to officially include Web, macOS, Windows, and Linux.

Changed #

  • Updated package dependencies to their latest versions (geolocator: ^14.0.2, flutter_lints: ^6.0.0).

2.0.0 - 2026-06-11 #

Major Architectural Rewrite #

  • Native Background Tracking: Completely removed geolocator dependency. smart_location is now a true native plugin utilizing Android Foreground Services (LocationService) and iOS CLLocationManager directly.
  • 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 (WorkManager on Android, BGTaskScheduler on iOS). Wakes up a hidden Dart Isolate in the background to run custom data-sync functions without draining the battery.
  • Motion Intelligence: Implemented native pausesLocationUpdatesAutomatically on iOS to aggressively preserve battery when the device is stationary.

1.0.1 - 2026-05-26 #

Changed #

  • Update README documentation setup version references to 1.0.0.

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.md to fix broken Markdown formatting — all documentation content was accidentally embedded inside an unclosed ```dart code fence in 0.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 description in pubspec.yaml
  • Added topics to pubspec.yaml for better discoverability on pub.dev (location, gps, geolocation, tracking)
  • Updated dependency reference in README.md to ^0.0.4

0.0.2 - 2026-03-27 #

Changed #

  • Updated pubspec.yaml version to 0.0.2
  • Updated README.md dependency reference to ^0.0.2

Documentation #

  • Expanded README.md with 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
5
likes
0
points
549
downloads

Publisher

unverified uploader

Weekly Downloads

Smart Location is a powerful, battery-conscious Flutter plugin for continuous background geolocation tracking, advanced geofencing, and motion-aware updates.

Repository (GitHub)
View/report issues

Topics

#geofencing #background #geolocation #location #tracking

License

unknown (license)

Dependencies

cryptography, flutter, flutter_web_plugins, geolocator, http, plugin_platform_interface, web

More

Packages that depend on smart_location

Packages that implement smart_location