Docs · SDK · Flutter

Install the Flutter widget.

The same drop-in feedback widget for iOS, Android, and Flutter web — bootstrap once, wrap your app, start collecting issues.

1. Install

Add the package to your Flutter project:

flutter pub add brevwick

2. Bootstrap

Call Brevwick.init with a BrevwickConfig before runApp. The SDK installs its console + error handlers as part of init.

import 'package:brevwick/brevwick.dart';
import 'package:flutter/material.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Brevwick.init(const BrevwickConfig(
    projectKey: 'pk_live_...',
    environment: BrevwickEnvironment.prod,
  ));

  runApp(const MyApp());
}

3. Mount the overlay

Wrap your app body in BrevwickOverlay. It paints the floating action button in dev/stg builds and owns the Screenshot controller that powers the capture flow.

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: BrevwickOverlay(
        child: HomePage(),
      ),
    );
  }
}

4. Wire the Dio ring (optional)

If your app uses Dio for HTTP, attach the SDK’s interceptor so failed requests show up alongside every submission:

import 'package:dio/dio.dart';
import 'package:brevwick/brevwick.dart';

final dio = Dio()
  ..interceptors.add(Brevwick.instance.dioInterceptor);

5. Add the route ring (optional)

Pass the SDK-provided Brevwick.instance.routeObserver() to MaterialApp.navigatorObservers so the SDK can stamp the current route onto every submission. A bare RouteObserverwon’t work — only the SDK-provided observer feeds the ring.

import 'package:brevwick/brevwick.dart';

MaterialApp(
  navigatorObservers: [Brevwick.instance.routeObserver()],
  home: BrevwickOverlay(child: HomePage()),
);

6. Verify

Build the app, tap the FAB, submit a test issue, then open /app/issues in the dashboard. The submission carries the route, device, and breadcrumb rings you wired above.

Platform-view caveat

The underlying screenshot package cannot capture AndroidView or UiKitView — maps, webviews, and native ad SDKs render as black rectangles in the screenshot. The rest of your tree captures normally. Details live in the brevwick-sdk-flutter README.

Full API reference: brevwick-sdk-flutter README.

Browse the registry for version history, source, and download counts.