Skip to main content

sonis_feedback 0.2.0 copy "sonis_feedback: ^0.2.0" to clipboard
sonis_feedback: ^0.2.0 copied to clipboard

Sonis Panel fix widget for Flutter test builds - shake the phone, describe a fix, the screenshot goes to the project's fixes.

sonis_feedback #

In-app feedback for Sonis Panel projects. Shake an Android or iOS device to capture the Flutter screen and send a fix, bug report or suggestion to your project's feedback list.

Designed for test builds. Includes a dark dialog, Montserrat, Lucide icons, screenshot attachment and recent Flutter error summaries. Requires a Sonis Panel project with a widget key.

Install #

flutter pub add sonis_feedback

Requires Flutter 3.33 or later. Supports Android, iOS and Flutter Web.

Get a project key #

In Sonis Panel, open your project → О проекте → Виджет правок. Copy data-key from Код для сайта. Use this public widget key, never an administrator token or password.

Reports are accepted only while client feedback is open. Otherwise the form displays Правки закрыты.

Quick start #

Wrap your app and pass the same navigator key to MaterialApp:

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

final navigatorKey = GlobalKey<NavigatorState>();

void main() {
  runApp(
    SonisFeedback(
      apiKey: 'pk_YOUR_PROJECT_KEY',
      navigatorKey: navigatorKey,
      child: MaterialApp(
        navigatorKey: navigatorKey,
        home: Scaffold(
          appBar: AppBar(title: const Text('My app')),
          body: const Center(
            child: TextButton(
              onPressed: SonisFeedback.open,
              child: Text('Send feedback'),
            ),
          ),
        ),
      ),
    ),
  );
}

On Android/iOS, shake the device or tap your feedback button. On Web, use your feedback button: shake detection is disabled. Choose a type, enter a description and send. Reports appear as guest feedback in the project.

Test releases #

Enabled by default in debug builds. For release test builds:

flutter build apk --dart-define=SONIS_FEEDBACK=true
flutter build ipa --dart-define=SONIS_FEEDBACK=true

Ordinary release builds leave feedback disabled. enabled overrides this behavior. SonisFeedback.open() does nothing when disabled or the wrapper is not mounted.

Options #

Parameter Default Purpose
apiKey Required Public project widget key
navigatorKey Required The key used by your app navigator
child Required Your application
panel https://panel.denielsonis.com Sonis Panel server URL
enabled null Override build-based enablement
shake true Set to false to open only from code

For router-based apps, attach the key to the root navigator in your router configuration.

Flutter Web #

Use SonisFeedback.open() from a button. Screenshots capture the Flutter canvas; embedded HTML/platform views may be missing. The server must allow the web app origin (configure the project widget website in Sonis Panel). Use HTTPS for deployed apps.

Platform setup #

  • Android: ensure android/app/src/main/AndroidManifest.xml includes <uses-permission android:name="android.permission.INTERNET" /> for release test builds. No camera or storage permission is required.
  • iOS: add NSMotionUsageDescription to ios/Runner/Info.plist with your motion-access explanation, as required by the sensor dependency. No camera or photo-library permission is required.
  • Shake detection needs an accelerometer. On a simulator, use SonisFeedback.open().

Screenshots and privacy #

Screenshots capture Flutter-rendered content before the dialog opens. Native views such as WebView and maps may be missing. If capture fails, reports can still be sent without an image.

When the tester presses Отправить, the package uploads the description, report type, screenshot (if available), operating system, logical screen dimensions and up to five recent Flutter error summaries to your configured Sonis Panel server. Inform testers and review screens for sensitive content.

The form uses Russian labels and a bundled dark Sonis theme. Localization and custom form themes are not currently exposed.

License #

Package code: MIT. Bundled Montserrat: SIL Open Font License in fonts/OFL.txt.

1
likes
0
points
303
downloads

Publisher

unverified uploader

Weekly Downloads

Sonis Panel fix widget for Flutter test builds - shake the phone, describe a fix, the screenshot goes to the project's fixes.

Homepage
Repository (GitHub)
View/report issues

Topics

#feedback #bug-reporting #testing

License

unknown (license)

Dependencies

flutter, http, lucide_icons_flutter, sensors_plus

More

Packages that depend on sonis_feedback