brevwick 0.4.3
brevwick: ^0.4.3 copied to clipboard
Brevwick SDK for Flutter — send QA feedback from your app in one widget wrap.
brevwick #
Flutter SDK for Brevwick — send rich QA feedback from inside your app by wrapping it in a single widget. Bug reports arrive with a screenshot, the recent console / network / route history, and device context already attached, so you spend less time asking "what were you doing when it broke?".
Runs on all six Flutter platforms — Android, iOS, macOS, Linux, Windows, and web.
Install #
flutter pub add brevwick
Quick start #
Wrap your app once. Brevwick.runGuarded captures uncaught errors,
BrevwickScreenshotScope enables screenshot capture, and BrevwickOverlay
adds the feedback affordance on top of every route.
import 'package:brevwick/brevwick.dart';
import 'package:flutter/material.dart';
void main() {
Brevwick.runGuarded<void>(() async {
WidgetsFlutterBinding.ensureInitialized();
await Brevwick.install(
const BrevwickConfig(
projectKey: 'pk_live_...',
environment: 'prod',
),
);
runApp(const MyApp());
});
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
// Wrap at the builder level so the feedback overlay persists
// across every named route.
builder: (context, child) =>
BrevwickOverlay(child: child ?? const SizedBox.shrink()),
navigatorObservers: [Brevwick.instance.routeObserver()],
home: const BrevwickScreenshotScope(child: HomePage()),
);
}
}
To capture failing HTTP calls in the network ring, add the interceptor to your Dio instance:
final dio = Dio()..interceptors.add(Brevwick.instance.dioInterceptor());
What gets attached #
Every report carries, automatically:
- Screenshot of the screen the user was on when they tapped the feedback button (captured before the composer opens, so the sheet itself isn't in the frame).
- Breadcrumb rings — the recent
consolelogs,networkrequests, androutetransitions, each toggleable viaRingFlagsonBrevwickConfig. - Device context — platform, OS, locale, viewport, and SDK version.
- User context — anything you supply via
BrevwickConfig.user/userContext.
Users can add a title, expected/actual notes, and up to a handful of attachments (10 MB each), and optionally let AI format the report.
Privacy & redaction #
Every payload runs through a redaction pass before it leaves the device —
emails, tokens, and other sensitive values are scrubbed client-side. Set
fingerprintOptOut: true on BrevwickConfig to suppress device-fingerprint
signals.
Platform view caveat #
The screenshot layer cannot capture AndroidView / UiKitView (maps,
webviews, and other embedded platform views), which appear as gaps in the
captured frame. Document this for any screen that embeds them.
Contract #
The canonical SDK contract lives in
brevwick-ops/docs/brevwick-sdd.md § 12.
The wire format mirrors the brevwick-sdk-js
SDK byte-for-byte.
License #
MIT — see LICENSE.