flawsnap 0.4.0
flawsnap: ^0.4.0 copied to clipboard
In-app bug reports for Flutter: shake or tap, annotate a screenshot and send it with device details, logs and network calls. Plus Insights: user flow, API timing and errors.
0.4.0 (breaking: the package is renamed) #
First release of the Flawsnap SDK as flawsnap on pub.dev (0.0.1 and
0.0.2 were early test uploads of 0.3.x).
- The package is now
flawsnap(wassnaplog_flutter), and the Dart API is theFlawsnapclass:Flawsnap.init,wrap,navigatorObserver,httpClient,track,screen,resetUser,consent, and the rest, plusFlawsnapTrigger,FlawsnapHttpClient,FlawsnapNavigatorObserver,FlawsnapLogEntryandFlawsnapNetworkEntry. - The old names (
Snaplog,SnaplogTrigger, ...) are still exported as deprecated aliases that behave identically. - Snaplog is now Flawsnap: docs, the sign-in screen ("Approve this
device in Flawsnap", "Open Flawsnap") and log messages (
[flawsnap]). The production API ishttps://backend.flawsnap.com/api/v1; team sign-in openshttps://app.flawsnap.com. - Unchanged, so users stay recognised across the upgrade: stored keys
(
snaplog.uid.<project key>, the saved sign-in, unsent Insights events), the API calls and what's sent.
Migrating from snaplog_flutter #
pubspec.yaml: replace thesnaplog_flutter:dependency withflawsnap: ^0.4.0(from pub.dev;snaplog_flutter0.3.0 on pub.dev gets no more releases):flutter pub remove snaplog_flutter, thenflutter pub add flawsnap.- Imports:
package:snaplog_flutter/snaplog_flutter.dart→package:flawsnap/flawsnap.dart(replacing the prefixpackage:snaplog_flutter/withpackage:flawsnap/also works). - Code:
Snaplog→Flawsnap,SnaplogTrigger→FlawsnapTrigger, and so on. The old names keep working as deprecated aliases, butflutter analyzereports each use and exits with an error code, so rename them, or runflutter analyze --no-fatal-infosmeanwhile.
0.3.0 #
- Insights user journeys: when the project turns on "Recognise returning
visitors", the SDK keeps a random id (
u_+ 26 characters) inshared_preferencesand sends it with Insights events. It isn't your account id;Snaplog.identify()stays bug-report only.consent(false)deletes it,consent(true)starts a fresh one. Snaplog.track(name)records an action on the current screen.Snaplog.resetUser()forgets the id.Snaplog.init(..., consentPending: true): nothing is sent and no id kept untilSnaplog.consent(true).- The id is stored per project (
snaplog.uid.<project key>).
0.2.0 #
- Insights (opt-in with
Snaplog.init(..., insights: true)and the project's Insights switch): user flow (screen views from the navigator observer, back-outs, time on screen, visits), API timing fromSnaplogHttpClient, and Dart errors.Snaplog.screen(name)names a screen.Snaplog.consent(bool)stops it and deletes unsent events, or turns it back on. - Team sign-in: Snaplog members sign in with a code approved in the browser, and their reports are filed under their account.
- The floating button follows the project's settings in the portal (shown or hidden, label, position, colour).
- Requires Dart 3.13 / Flutter 3.47 or newer.
0.1.0 #
- Not released separately: the version reported in bug reports' metadata while the SDK was still marked 0.0.1. 0.2.0 follows 0.0.1.
0.0.1 #
- Initial release: shake or floating button, annotated screenshot, device details, logs and network calls.