flutter_blackbox 0.3.2 copy "flutter_blackbox: ^0.3.2" to clipboard
flutter_blackbox: ^0.3.2 copied to clipboard

In-app debug & QA overlay for Flutter. Network inspector, mock engine, live logs, FPS monitor, feature flags, and automated QA reports. Dio & http adapters.

Changelog #

0.3.2 - 2026-04-28 #

Fixed #

  • Upgraded connectivity_plus to ^7.1.0 (v7.1.x migrated web implementation to package:web instead of dart:html, restoring WASM compatibility on pub.dev).
  • device_info_plus and package_info_plus upgraded to latest patch via dart pub upgrade (12.4.0 and 9.0.1 respectively).

0.3.1 - 2026-04-28 #

Fixed #

  • Widened dependency constraints to support latest major versions and restore full pub.dev score:
    • package_info_plus: >=9.0.0 <11.0.0 (was ^9.0.0, now supports v10.x)
    • device_info_plus: >=12.3.0 <14.0.0 (was ^12.3.0, now supports v13.x)
    • connectivity_plus: >=7.0.0 <8.0.0 (was ^7.0.0, explicit upper bound)
    • All APIs used (DeviceInfoPlugin, PackageInfo.fromPlatform, Connectivity.checkConnectivity) are stable and unchanged between these major versions.

0.3.0 - 2026-04-28 #

Added #

  • CLI Init Tooldart run flutter_blackbox:init auto-detects your project's dependencies (Dio, http, Socket.IO, SharedPreferences) and prints the exact setup code you need.
    • --generate flag generates a lib/blackbox_adapters.dart file with only the adapters your project uses — zero unnecessary packages installed.
    • --help for full usage instructions.
  • CLI-generated adapter architecture — concrete adapter implementations (DioBlackBoxAdapter, HttpBlackBoxAdapter, SocketIOBlackBoxAdapter, SharedPrefsStorageAdapter) are no longer bundled inside lib/. They are generated into the user's project by the CLI. This means:
    • flutter_blackbox has zero optional dependencies — 63 KB total package size.
    • Dio users don't get http, socket_io_client, or shared_preferences installed.
    • The generated lib/blackbox_adapters.dart is fully editable and customizable.
    • Same zero-setup pattern as build_runner, freezed, and injectable.
  • Copy as cURL — one-tap button in Network panel copies any request as a valid curl command (with headers, body, method).
  • Status Code Filtering — filter chips to show only 2xx, 4xx, 5xx, Pending, or Failed requests.
  • Method Filtering — filter by HTTP method (GET, POST, PUT, DELETE, PATCH).
  • Response Size Display — shows response body size (B/KB/MB) in each network tile and detail view.
  • Request Timing Visualization — color-coded timing bars (green < 300ms, yellow < 1000ms, red > 1000ms) with speed indicator.
  • Pretty JSON Viewer — collapsible, syntax-highlighted JSON tree with color-coded types. Auto-expands first level.
  • Search Across All Panels — new "Search" tab that queries Network, Logs, Crashes, and Socket events simultaneously.
  • Full Dartdoc Coverage — all public APIs, stores, and models now have comprehensive documentation for better IDE support and higher pub.dev scoring.
  • Web Compatibility — removed dart:io dependencies from UI panels to ensure the package runs smoothly on Flutter Web.

Changed #

  • Full "devkit" → "BlackBox" rebrand — all file names, imports, internal references, and the overlay badge now use the BlackBox name consistently.
  • Main barrel (flutter_blackbox.dart) exports only abstract interfaces (BlackBoxHttpAdapter, BlackBoxSocketAdapter, BlackBoxStorageAdapter). Concrete adapter implementations are generated into the user's project by the CLI.
  • Moved dio, http, shared_preferences, socket_io_client from dependencies to dev_dependencies — users only install what they actually use.
  • Overlay badge now shows "BlackBox" instead of "devkit".
  • Internal Dio extras keys renamed from devkit_request_id/devkit_start_ms to blackbox_request_id/blackbox_start_ms.
  • NetworkResponse model now includes optional responseSizeBytes field and formattedSize getter.
  • Dio and HTTP adapters now capture response size automatically.
  • Network panel detail view reorganized with timing summary card, collapsible JSON sections, and action buttons (cURL, Copy URL, Copy All).

Fixed #

  • Fixed duplicate property definitions in BlackBox singleton class.
  • Fixed flaky broadcast stream tests in NetworkStore by accounting for event throttling.
  • Added missing exports for JourneyEvent, FpsMonitor, and BlackBoxDeviceInfo to the main barrel file.

Performance #

  • NetworkPanel: Replaced two independent StreamBuilders on the same stream with a single StreamSubscription. Previously every network event triggered two separate rebuild cycles; now it triggers one.
  • _NetworkTile: Cached the Uri.parse() result as late final _endpoint in initState/didUpdateWidget. URI parsing no longer runs on every build() call.
  • _CollapsibleJsonSection: Replaced the _parsed computed getter with a late final field set in initState. jsonDecode now runs once per section lifecycle instead of on every rebuild.
  • RebuildPanel: Converted to StatefulWidget + StreamSubscription. Removed the Stream.value(...) anti-pattern and the (context as Element).markNeedsBuild() framework hack.

Migration #

  • If you previously used import 'package:flutter_blackbox/flutter_blackbox.dart' and relied on Dio/http/Socket/Storage adapters being auto-exported, add the specific adapter import:
    // Before (v0.2.x) — everything from one import
    import 'package:flutter_blackbox/flutter_blackbox.dart';
    
    // After (v0.3.0) — add adapter imports you need
    import 'package:flutter_blackbox/flutter_blackbox.dart';
    import 'package:flutter_blackbox/adapters/dio.dart';         // if using Dio
    import 'package:flutter_blackbox/adapters/shared_prefs.dart'; // if using SharedPreferences
    

0.2.2 - 2026-04-06 #

Fixed #

  • Added CHANGELOG updates and minor version bumps for successful pub.dev publication.

0.2.1 - 2026-04-06 #

Added #

  • ignoredRebuildWidgets config in BlackBox.setup() to allow overriding and muting noisy custom 3rd-party widgets in the Rebuild tab.
  • Smart Noise Filters hardcoded over 100+ native Flutter framework base widgets (Text, AutomaticKeepAlive, Container, etc) and 60fps animators (LinearProgressIndicator) from tracking to prevent noise.

Fixed #

  • Corrected regex string parsing for Flutter framework's raw rebuild log output (Building/Rebuilding) so Rebuild Tracking accurately measures widget rebuilds rather than staying at zero.
  • Rebuild Tracker console spam fixed. Intercepted framework logs are now securely routed to the UI tab while completely muted from terminal output for cleaner logging.
  • Fixed infinite rendering loops where BlackBoxOverlay and RebuildTrackerWidget recursively logged themselves in the Rebuild store.

0.2.0 - 2026-03-24 #

Added #

  • Storage Inspector — inspect, search, edit, delete key-value pairs from any storage backend.
    • Built-in SharedPrefsStorageAdapter.
    • Adapter pattern (BlackBoxStorageAdapter) supports GetStorage, Hive, FlutterSecureStorage, etc.
  • Privacy & Sensitive Data Redaction — keys matching common patterns (password, token, secret, jwt, etc.) auto-redacted.
    • Global toggle: redactSensitiveData in BlackBox.setup() (default: true).
    • 25+ built-in sensitive patterns, customizable per adapter.
    • Sensitive values show as •••••••• — can't be copied or edited.
  • Widget Rebuild Tracker — track widget rebuild counts for performance bottlenecks.
    • Auto mode: debugPrintRebuildDirtyWidgets hook — zero code changes.
    • Manual mode: RebuildTracker widget wrapper (zero-cost in release builds via kDebugMode).
  • Socket.IO Adapter — auto-capture all incoming socket events via socket.onAny().
    • SocketIOBlackBoxAdapter(socket) — no changes to socket code.
  • HttpBlackBoxAdapter — observe-only adapter that takes your existing http.Client.

Changed #

  • Observe-only philosophy — all adapters now hook into libraries' built-in extension points without replacing trusted code.
  • BlackBoxHttpClient is now @Deprecated — replaced by HttpBlackBoxAdapter(client).

Removed #

  • Feature Flags panel and LocalFlagAdapter — replaced by Storage Inspector and Rebuild Tracker.

0.1.4 - 2026-03-19 #

Fixed #

  • Bumped dio lower bounds to ^5.4.0 in pubspec.yaml to ensure compatibility with DioException and restore pub.dev points.

0.1.3 - 2026-03-19 #

Changed #

  • Renamed all public classes from DevKit to BlackBox to fully align with the new package name.

0.1.1 - 2026-03-19 #

Changed #

  • Updated README and internal configuration to correctly reflect the flutter_blackbox package name.

0.1.0 - 2025-03-19 #

Added #

  • Single-package release — Dio and http adapters bundled in core
  • DevKitOverlay — tabbed debug panel above Navigator
  • Network panel — request/response log with headers and body
  • Mock engine — intercept any HTTP request with fake response
  • Log panel — captures debugPrint() automatically
  • Performance panel — live FPS graph and jank detection
  • Feature flags panel — runtime toggle without restart
  • Device panel — platform, screen, OS info
  • QA Report — one-tap screenshot + logs + network bundle
  • DioDevKitAdapter — Dio interceptor (included in core)
  • DevKitHttpClient — http.Client drop-in (included in core)
  • PrintLogAdapter — auto-captures debugPrint
  • LocalFlagAdapter — in-memory feature flags
11
likes
0
points
573
downloads

Publisher

unverified uploader

Weekly Downloads

In-app debug & QA overlay for Flutter. Network inspector, mock engine, live logs, FPS monitor, feature flags, and automated QA reports. Dio & http adapters.

Repository (GitHub)
View/report issues

Topics

#debug #developer-tools #overlay #network #logging

License

unknown (license)

Dependencies

connectivity_plus, device_info_plus, flutter, package_info_plus, yaml

More

Packages that depend on flutter_blackbox