all_box_devtool
π§π· PortuguΓͺs | πΊπΈ English
π‘ A DevTools extension for all_box: browse and edit AllBox containers straight from Flutter/Dart DevTools.
Table of contents
π Features
- π Containers list. Every
AllBoxcontainer currently alive in the inspected app, filterable by name, with backend/pending-flush badges. - π Container detail. A selected container's keys and values, filterable by key name, plus a storage summary (backend, key count, approximate size).
- βοΈ Edit in place. Tap a key to view it, edit it as raw JSON, or delete it β writes go straight to the running app through the VM Service.
- π Polling refresh. The panel refreshes automatically every 2
seconds, plus a manual refresh button.
all_box0.6.0 does post debug-only VM Service mutation events on write/remove/erase, but this extension doesn't consume them yet (see How it works) β refreshing is pull-based for now. - π§― Debug/profile only.
all_box's introspection (AllBoxInspector) is a no-op in release builds β nothing here adds runtime overhead to a shipped app, and there's nothing to see in a release build's DevTools session, by design.
π Requirements
The app you're debugging must depend on:
dependencies:
all_box: ^0.6.0
all_box 0.6.0 is what introduced AllBoxInspector β the debug-only,
read-only introspection surface this extension reads through the VM
Service. Nothing else is required on the inspected app's side.
π¦ Step-by-step setup
-
In the app that uses
all_box, make surepubspec.yamlhasall_boxindependenciesandall_box_devtoolindev_dependencies:dependencies: all_box: ^0.6.0 dev_dependencies: all_box_devtool: ^1.0.0 -
Run:
flutter pub get -
Start the app in
debugorprofilemode:flutter run -
Open Flutter/Dart DevTools from your IDE or from the URL printed in the terminal.
-
On first use, enable the
all_box_devtoolextension when DevTools asks for permission. -
Open the "all_box_devtool" tab.
-
Select a container to inspect its keys, edit values as raw JSON, or remove entries.
For more details about extension permissions, see the official docs: Use a DevTools extension.
π§ͺ Usage
Once enabled, a new "all_box_devtool" tab appears in DevTools while your app is running.
- Select a container on the left to inspect its keys on the right.
- Type in either search field to filter containers or keys.
- Tap any key to view, edit (as raw JSON), or delete it.
- Use the refresh button, or just wait β the panel polls every 2 seconds on its own.
π οΈ How it works
- The extension talks to the inspected app only through the VM Service β
it evaluates
AllBoxInspector.snapshotAsJson()(and, for writes,AllBox(container).write(...)/.remove(...)) in the app's main isolate. No package is added to the inspected app's own dependency graph beyondall_boxitself. all_boxhas no built-in Dart-visible reactivity by design (see its own README). As ofall_box0.6.0 it also posts a debug-only VM Service extension event (all_box:mutation) after every write/remove/erase, aimed exactly at tooling like this β but this extension doesn't listen for it yet, so it stays pull-based for now: aPollingControllerrefreshes every 2 seconds, and every write/delete triggers an immediate extra refresh so the UI reflects your own edits right away.- Full design rationale, folder-by-folder responsibilities, and the reasoning behind each decision: ARCHITECTURE.md.
π Additional information
- Architecture and design notes: ARCHITECTURE.md.
all_box: github.com/CriandoGames/all_box.- Issues: github.com/CriandoGames/all_box_devtool/issues.
Issues and pull requests are welcome at the GitHub repository.
Libraries
- all_box_devtool
- Anchor package for the
all_boxDevTools extension.