brevwick 0.4.3 copy "brevwick: ^0.4.3" to clipboard
brevwick: ^0.4.3 copied to clipboard

Brevwick SDK for Flutter — send QA feedback from your app in one widget wrap.

brevwick #

pub package license: MIT

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 console logs, network requests, and route transitions, each toggleable via RingFlags on BrevwickConfig.
  • 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.

0
likes
120
points
--
downloads

Documentation

API reference

Publisher

verified publishertatlacas.com

Weekly Downloads

Brevwick SDK for Flutter — send QA feedback from your app in one widget wrap.

Homepage
Repository (GitHub)
View/report issues

Topics

#feedback #bug-reports #qa #observability

Funding

Consider supporting this project:

github.com

License

MIT (license)

Dependencies

characters, crypto, device_info_plus, dio, file_picker, flutter, package_info_plus, screenshot

More

Packages that depend on brevwick