Pakete, Repositories und App-Kategorien suchen

Cover von debug_overlay
Paketdetailsv2.0.0

debug_overlay

Sehen Sie Debug-Informationen an und ändern Sie Einstellungen über eine zentrale Überlagerung für Ihre App.

AndroidiOS
30-Tage-Downloads
767
Likes
28
Pub-Punkte
160

Paket installieren

flutter pub add debug_overlay

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Das debug_overlay-Paket bietet in Flutter-Anwendungen eine zentrale Überlagerung, um während der Entwicklung Debug-Informationen anzuzeigen und Einstellungen dynamisch anzupassen. Es ermöglicht Entwicklern, Echtzeit-Metriken der App zu sehen, Funktionen zu aktivieren/deaktivieren und den Zustand ohne Neustart der App zu überprüfen. Die Überlagerung ist über eine einfache Geste zugänglich und nahtlos in Android- und iOS-Builds integrierbar. Durch die einfache Bedienung verbessert es den Debugging-Workflow, indem es schnellen Zugriff auf Diagnoseinformationen und konfigurierbare Optionen direkt innerhalb der App-Oberfläche bietet.

Anwendungsfälle

  • Echtzeit-Debugging während der Entwicklung
  • App-Funktionen dynamisch aktivieren/deaktivieren
  • Überwachung von App-Leistungsmetriken
  • Überprüfung von Zustandsänderungen
  • Verschiedene Konfigurationen testen
  • Schneller Zugriff auf Debug-Tools

Hauptmerkmale

  • zentrale Debug-Überlagerung
  • Gestenbasierte Aktivierung
  • Live-Einstellungsanpassungen
  • Plattformunterstützung für Android und iOS
  • Minimaler Setup mit pub add
  • Anzeige von Laufzeit-App-Informationen

Geeignet für

  • Flutter-Entwickler im aktiven Entwicklungsprozess
  • Teams, die eine schnelle Fehlersuche benötigen
  • Apps, die dynamische Funktionsumschalter erfordern
  • Prototypen- und Testphasen
  • Entwickler konzentrieren sich während der Fehlersuche auf UX

Hinweise

  • Nicht für den Produktiveinsatz vorgesehen
  • Overlay kann die Benutzeroberfläche während des Testens beeinträchtigen
  • Benötigt manuelle Entfernung vor der Freigabe
  • Begrenzte Anpassungsmöglichkeiten
  • Keine eingebaute Sicherheit für sensible Debug-Daten
  • Kann die Leistung in großen Apps leicht beeinträchtigen

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

debug_overlay

🐛 View debug infos and change settings via a central overlay for your app.

debug_overlay demo

To add a debug overlay to your app, pass DebugOverlay.builder() to MaterialApp/CupertinoApp/WidgetsApp.builder:

MaterialApp(
  builder: DebugOverlay.builder(),
  // And other customization...
)

The debug overlay only works in debug mode and is not included in your widget tree in profile or release mode unless you pass enableOnlyInDebugMode: false.

To open the overlay, call DebugOverlay.show().

By default, this overlay includes MediaQueryDebugHelper, PackageInfoDebugHelper, and DeviceInfoDebugHelper.

Debug Helpers

To add a debug helper, you have to register it by calling either of the following two (which accept any sliver widget):

  • DebugOverlay.prependHelper(myDebugHelper) to add it to the front of the list
  • DebugOverlay.appendHelper(myDebugHelper) to add it to the end of the list

Or, if you want to override all currently registered overlays, set DebugOverlay.helpers.value to a list of sliver widget.

DeviceInfoDebugHelper
DeviceInfoDebugHelper demo

Displays information obtained from device_info_plus.

MediaQueryDebugHelper
´MediaQueryDebugHelper demo

Displays information obtained from MediaQuery.

LogsDebugHelper
´LogsDebugHelper demo

Displays logs generated by your app. To use it, follow these steps:

  1. Store its mutable state, e.g., in a global variable:

    final logs = LogCollection(
      // Default values:
      maximumSize: 500,
      onlyStoreLogsInDebugMode: true,
    );
    
  2. Register the helper and supply its state, e.g., in main():

    void main() {
      if (kDebugMode) {
        DebugOverlay.appendHelper(LogsDebugHelper(logs));
      }
    
      runApp(MyApp());
    }
    
  3. When you generate logs, add them to the collection. Except for message, all parameters are optional:

    logs.add(Log(
      level: DiagnosticLevel.info,
      timestamp: DateTime.now(),
      message: 'My message',
      error: myException,
      stackTrace: myStackTrace,
    ));
    

The error field can also hold data for non-error logs. If it stores JSON data (on an object with a toJson() method), the data can be inspected using json_view.

MediaOverridesDebugHelper
´MediaOverridesDebugHelper demo

This allows you to override the theme mode and locale of your app. To use it, follow these steps:

  1. Store its mutable state, e.g., in a global variable:

    final mediaOverrideState = ValueNotifier(MediaOverrideState());
    
  2. Register the helper and supply its state, e.g., in main():

    void main() {
      if (kDebugMode) {
        DebugOverlay.prependHelper(MediaOverrideDebugHelper(
          mediaOverrideState,
          // To support overriding locales, this value must be set and should
          // contain the same locales as passed to [MaterialApp.supportedLocales],
          // [CupertinoApp.supportedLocales] or [WidgetsApp.supportedLocales].
          supportedLocales: supportedLocales,
        ));
      }
    
      runApp(MyApp());
    }
    
  3. When building your MaterialApp/CupertinoApp/WidgetsApp, wrap it in a ValueListenableBuilder that uses the state from step 1:

    ValueListenableBuilder<MediaOverrideState>(
      valueListenable: mediaOverrideState,
      builder: (context, overrideState, child) {
        return MaterialApp(
          // You can access overridden values via [overrideState]:
          themeMode: overrideState.themeMode,
          locale: overrideState.locale,
    
          builder: DebugOverlay.builder(),
          supportedLocales: supportedLocales,
    
          // And your other customizations...
        );
      },
    );
    
PackageInfoDebugHelper
PackageInfoDebugHelper demo

Displays information obtained from package_info_plus.

Custom

To implement your own debug helper, you can use the provided DebugHelper class for the layout.

If your information can be represented with Flutter's DiagnosticsNode, you can use DiagnosticsBasedDebugHelper which automatically provides filtering. This is also used internally by DeviceInfoDebugHelper, MediaQueryDebugHelper, and PackageInfoDebugHelper.

Kategorien

Abhängigkeiten

Abhängigkeiten 9 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.