beekon_flutter 0.0.7 copy "beekon_flutter: ^0.0.7" to clipboard
beekon_flutter: ^0.0.7 copied to clipboard

Flutter plugin for the Beekon location SDK (Android + iOS).

Changelog #

All notable changes to beekon_flutter are documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.0.7 #

Built against the native 0.0.7 API; requires native ≥ 0.0.7 at runtime.

Added #

  • License surface (license-format-v1) — a pure pass-through to the native verifier; the wrapper performs no validation of its own.
    • BeekonConfig.licenseKey — supply a license token (a license-format-v1 JWS). The highest-priority channel, overriding the Android manifest / iOS Info.plist value; null/blank means unset. Safe to commit to source control (app-id- and product-bound).
    • Beekon.licenseStatus() (one-shot) and Beekon.licenseStatusUpdates (replay-1 stream) expose the current platform's status: sealed LicenseStatus (NotDetermined / Licensed(tier, entitlements) / Evaluation / Expired / UpdateEntitlementLapsed / Invalid(reason)) plus LicenseInvalidReason. Purely observational — no status ever blocks, degrades, or delays the SDK; Android and iOS may legally diverge for the same app.
    • The plugin identifies itself to the verifier as the flutter product during native registration.
  • Native pins bumped to 0.0.7 (Maven io.github.wayqteam:beekon, SwiftPM beekon-ios-binary).

0.0.6 #

Built against the native 0.0.6 API; requires native ≥ 0.0.6 at runtime.

Added #

  • Native token refreshSyncConfig.auth (AuthConfig) lets the SDK attach and natively refresh the upload access token, proactively before expiry and reactively on 401/403, in the background and on a cold launch. Rotated credentials surface on the new Beekon.authChanges stream (AuthTokens). Adds AuthStrategy, AuthBodyFormat, and AuthResponseMapping. null keeps the legacy static-headers behaviour.
  • On-demand fixgetCurrentLocation({timeout, accuracy}) returns a single fresh location (or null on timeout), independent of tracking; throws the new LocationUnavailable (LocationUnavailableReason) on a precondition failure.
  • Restored NotificationConfig.smallIcon — an optional Android foreground-service status-bar icon (drawable/mipmap resource name; null keeps the host launcher icon). Android-only; iOS ignores it. Reverses the 0.0.5 "smallIcon removed" note.

0.0.5 #

Full rebuild against the native 0.0.5 API — a breaking, no-backward-compat release (Beekon is pre-1.0). The Dart surface is now a faithful 1:1 mirror of the native Beekon (Android) / Beekon.shared (iOS).

Added #

  • Server sync: SyncConfig on BeekonConfig, plus sync(), setExtras(), pendingUploadCount(), and the syncStatus stream (SyncIdle/SyncPending/SyncFailed).
  • Geofencing: addGeofences() / removeGeofences() / listGeofences() and the geofenceEvents stream (BeekonGeofence, GeofenceEvent, Transition).
  • Richer config: accuracyMode, whenStationary, stationaryRadiusMeters, detectActivity (AccuracyMode, StationaryMode).
  • Richer Location: id, quality, trigger, motion, activity, isMock (LocationQuality, LocationTrigger, MotionState, ActivityType).
  • deleteLocations({before}), resumeIfNeeded(), and StopReason.locationUnavailable.

Changed #

  • intervalSecondsminTimeBetweenLocationsSeconds; distanceMetersminDistanceBetweenLocationsMeters.
  • history(from, to)getLocations(from: , to: ).
  • AndroidNotification{title,text,smallIcon}NotificationConfig{title,text} (Android-only; smallIcon removed).
  • iOS registers the background-refresh task and installs cold-launch resume hooks during plugin registration; Android no longer calls initialize() (the SDK auto-initializes via AndroidX Startup).
  • Native pins bumped to 0.0.5 (Maven io.github.wayqteam:beekon, SwiftPM beekon-ios-binary).

Removed #

  • PermissionDenied / LocationServicesDisabled exceptions — permission and service problems now surface only on state as Stopped(reason). The only thrown errors are StorageException and InvalidGeofence.

0.0.3 #

First synchronized release across all four registries (Maven Central, wayqteam/beekon-ios-binary xcframework, pub.dev, npm). The native floors bumped: iOS BeekonKit.xcframework now ships with importable .swiftinterface files and keeps GRDB out of the public ABI; the Android AAR's Kotlin metadata is at 2.1 so Kotlin 2.1.x/2.2.x consumers can read it without -Xskip-metadata-version-check. Location accuracy/speed/bearing/altitude are now nullable to faithfully represent providers that don't deliver them.

The 0.0.2 slot was used as a release dry-run — only the Android AAR landed on Maven Central (the registry is immutable). pub.dev sees this as a non-incremental jump from 0.0.1 to 0.0.3; that is intentional.

0.0.1 #

Initial release.

Added #

  • Flutter plugin bridging the native Beekon location SDKs (Android .aar, iOS BeekonKit xcframework) into Dart.
  • Public API mirroring the native surface: Beekon.instance.initialize / configure / start / stop / shutdown, state and positions streams, history(from, to).
  • Sealed BeekonState (Idle/Starting/Tracking/Paused/Stopped) and BeekonException types for exhaustive Dart 3 pattern matching.
  • Position (lat/lng/accuracy/speed/bearing/altitude/timestamp) and BeekonConfig (preset, Duration interval override, AndroidNotification for the foreground service).
  • Pigeon-generated type-safe channels (BeekonHostApi + event channels for state and positions).
  • Example app demonstrating live tracking, state transitions, and history queries.
  • iOS distribution via SwiftPM (binary target on wayqteam/beekon-ios-binary); requires Flutter 3.44+ or Flutter 3.32–3.43 with flutter config --enable-swift-package-manager.
  • Android distribution via Maven Central (io.github.wayqteam:beekon).