beekon_flutter 0.0.7
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 (alicense-format-v1JWS). The highest-priority channel, overriding the Android manifest / iOSInfo.plistvalue;null/blank means unset. Safe to commit to source control (app-id- and product-bound).Beekon.licenseStatus()(one-shot) andBeekon.licenseStatusUpdates(replay-1 stream) expose the current platform's status: sealedLicenseStatus(NotDetermined/Licensed(tier, entitlements)/Evaluation/Expired/UpdateEntitlementLapsed/Invalid(reason)) plusLicenseInvalidReason. 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
flutterproduct during native registration.
- Native pins bumped to
0.0.7(Mavenio.github.wayqteam:beekon, SwiftPMbeekon-ios-binary).
0.0.6 #
Built against the native 0.0.6 API; requires native ≥ 0.0.6 at runtime.
Added #
- Native token refresh —
SyncConfig.auth(AuthConfig) lets the SDK attach and natively refresh the upload access token, proactively before expiry and reactively on401/403, in the background and on a cold launch. Rotated credentials surface on the newBeekon.authChangesstream (AuthTokens). AddsAuthStrategy,AuthBodyFormat, andAuthResponseMapping.nullkeeps the legacy static-headersbehaviour. - On-demand fix —
getCurrentLocation({timeout, accuracy})returns a single fresh location (ornullon timeout), independent of tracking; throws the newLocationUnavailable(LocationUnavailableReason) on a precondition failure. - Restored
NotificationConfig.smallIcon— an optional Android foreground-service status-bar icon (drawable/mipmap resource name;nullkeeps 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:
SyncConfigonBeekonConfig, plussync(),setExtras(),pendingUploadCount(), and thesyncStatusstream (SyncIdle/SyncPending/SyncFailed). - Geofencing:
addGeofences()/removeGeofences()/listGeofences()and thegeofenceEventsstream (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(), andStopReason.locationUnavailable.
Changed #
intervalSeconds→minTimeBetweenLocationsSeconds;distanceMeters→minDistanceBetweenLocationsMeters.history(from, to)→getLocations(from: , to: ).AndroidNotification{title,text,smallIcon}→NotificationConfig{title,text}(Android-only;smallIconremoved).- 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(Mavenio.github.wayqteam:beekon, SwiftPMbeekon-ios-binary).
Removed #
PermissionDenied/LocationServicesDisabledexceptions — permission and service problems now surface only onstateasStopped(reason). The only thrown errors areStorageExceptionandInvalidGeofence.
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, iOSBeekonKitxcframework) into Dart. - Public API mirroring the native surface:
Beekon.instance.initialize / configure / start / stop / shutdown,stateandpositionsstreams,history(from, to). - Sealed
BeekonState(Idle/Starting/Tracking/Paused/Stopped) andBeekonExceptiontypes for exhaustive Dart 3 pattern matching. Position(lat/lng/accuracy/speed/bearing/altitude/timestamp) andBeekonConfig(preset,Durationinterval override,AndroidNotificationfor 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 withflutter config --enable-swift-package-manager. - Android distribution via Maven Central (
io.github.wayqteam:beekon).