flutter_blackbox 0.3.0
flutter_blackbox: ^0.3.0 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.0 - 2026-04-28 #
Added #
- CLI Init Tool —
dart run flutter_blackbox:initauto-detects your project's dependencies (Dio, http, Socket.IO, SharedPreferences) and prints the exact setup code you need.--generateflag generates alib/blackbox_adapters.dartfile with only the adapters your project uses — zero unnecessary packages installed.--helpfor 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_blackboxhas zero optional dependencies — 63 KB total package size.- Dio users don't get
http,socket_io_client, orshared_preferencesinstalled. - The generated
lib/blackbox_adapters.dartis fully editable and customizable. - Same zero-setup pattern as
build_runner,freezed, andinjectable.
- Copy as cURL — one-tap button in Network panel copies any request as a valid
curlcommand (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:iodependencies 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_clientfromdependenciestodev_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_mstoblackbox_request_id/blackbox_start_ms. NetworkResponsemodel now includes optionalresponseSizeBytesfield andformattedSizegetter.- 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
BlackBoxsingleton class. - Fixed flaky broadcast stream tests in
NetworkStoreby accounting for event throttling. - Added missing exports for
JourneyEvent,FpsMonitor, andBlackBoxDeviceInfoto the main barrel file.
Performance #
NetworkPanel: Replaced two independentStreamBuilders on the same stream with a singleStreamSubscription. Previously every network event triggered two separate rebuild cycles; now it triggers one._NetworkTile: Cached theUri.parse()result aslate final _endpointininitState/didUpdateWidget. URI parsing no longer runs on everybuild()call._CollapsibleJsonSection: Replaced the_parsedcomputed getter with alate finalfield set ininitState.jsonDecodenow runs once per section lifecycle instead of on every rebuild.RebuildPanel: Converted toStatefulWidget+StreamSubscription. Removed theStream.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 #
ignoredRebuildWidgetsconfig inBlackBox.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
BlackBoxOverlayandRebuildTrackerWidgetrecursively 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.
- Built-in
- Privacy & Sensitive Data Redaction — keys matching common patterns (password, token, secret, jwt, etc.) auto-redacted.
- Global toggle:
redactSensitiveDatainBlackBox.setup()(default:true). - 25+ built-in sensitive patterns, customizable per adapter.
- Sensitive values show as
••••••••— can't be copied or edited.
- Global toggle:
- Widget Rebuild Tracker — track widget rebuild counts for performance bottlenecks.
- Auto mode:
debugPrintRebuildDirtyWidgetshook — zero code changes. - Manual mode:
RebuildTrackerwidget wrapper (zero-cost in release builds viakDebugMode).
- Auto mode:
- 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.
BlackBoxHttpClientis now@Deprecated— replaced byHttpBlackBoxAdapter(client).
Removed #
- Feature Flags panel and
LocalFlagAdapter— replaced by Storage Inspector and Rebuild Tracker.
0.1.4 - 2026-03-19 #
Fixed #
- Bumped
diolower bounds to^5.4.0inpubspec.yamlto ensure compatibility withDioExceptionand restore pub.dev points.
0.1.3 - 2026-03-19 #
Changed #
- Renamed all public classes from
DevKittoBlackBoxto fully align with the new package name.
0.1.1 - 2026-03-19 #
Changed #
- Updated README and internal configuration to correctly reflect the
flutter_blackboxpackage 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 debugPrintLocalFlagAdapter— in-memory feature flags