koma_flutter 1.0.1
koma_flutter: ^1.0.1 copied to clipboard
Koma Analytics SDK for Flutter — event tracking, user identification, and user properties with a durable offline queue.
Changelog #
All notable changes to koma_flutter are documented here. This project follows
Semantic Versioning.
1.0.1 #
Fixed #
device.metadataandapplication.metadatanow match the dashboard's live-event contract (theuser_agent-shaped structure the React SDK emits). Nativedevice_info_plus/package_info_plusfields are mapped into the nested{ name, type, os:{…}, device:{…}, engine:{…}, … }shape, so the live-event timeline renders mobile sessions instead of breaking on the previous flat native shape ({ os, osVersion, brand, model, … }).
1.0.0 #
First stable release. Feature and behavior parity with the Koma React SDK.
Added #
- Public API:
Komasingleton (init,track,identify,setUserProperty),KomaConfig,ConnectionError/ConnectionErrorCode, and the opt-inKomaNavigatorObserver/KomaScreenEvent. - Event tracking, user identification, and user properties over Socket.IO,
matching the server wire contract (with
insertIddeduplication). - Durable FIFO event queue (
shared_preferences+ file): no event loss across restarts or disconnects; single-flight drain, linear retry backoff, and poison-event drop. - Offline-first delivery with automatic flush on reconnect; app-lifecycle aware (resume → reconnect + flush).
- Device / app / network / location metadata via
device_info_plus,package_info_plus,connectivity_plus, andgeolocator(precise location only when already granted; never prompts), with a complete device-only fallback so tracking never breaks. - IP enrichment proxied through the Koma server (no third-party key in the SDK); the lookup runs on-device so it resolves the real client IP.
- Debug mode,
onConnectionErrorcallback, and a small fully-typed surface.
Notes #
- The API host is internal (build-mode driven) and not customer-configurable.
- Verified end-to-end on Android and iOS; 57 unit/integration tests.
1.0.0-dev.1 — unreleased #
Phase 3 (Flutter API design). Public surface frozen; internals stubbed.
Added #
- Public API:
Komasingleton (init,track,identify,setUserProperty),KomaConfig,ConnectionError/ConnectionErrorCode,KomaNavigatorObserver/KomaScreenEvent. - Frozen internal module layout (
src/{client,config,events,session,queue,persistence,transport,device,lifecycle,util}). - Implemented pieces: constants, config, connection error, event model/type, payload builder (wire contract), UUID + logger utilities, navigator observer.
- Behavioral modules (transport, queue, persistence, device, session, lifecycle) are signature-frozen stubs pending Phases 4–6.
No Dart toolchain was available at authoring time; flutter analyze /
format / test gates are pending first CI run.