another_flutter_devtool 0.5.3
another_flutter_devtool: ^0.5.3 copied to clipboard
An in-app devtool for Flutter: a draggable launcher opens a panel with app info, a network inspector, data usage and route navigation tools.
Changelog #
0.5.3 #
Documentation update. No behavior changes.
Changed #
- Added screenshots of the home screen, the General and Network sections and a custom section to the README and the pub.dev page.
0.5.2 #
First release on pub.dev. No behavior changes.
Changed #
- Added pub.dev topics, a more descriptive package description and a Flutter
>=3.47.0constraint matching the Dart SDK constraint. - README now has pub.dev and CI badges, a beta notice and a working link to the example app.
- Upgraded
device_info_plusto ^13.3.0,package_info_plusto ^10.2.2 andshare_plusto ^13.3.1. - Releases are now automated: merging a version bump to
maincreates the GitHub release and publishes to pub.dev.
0.5.1 #
Code style update. No behavior changes.
Changed #
- Formatted all Dart code with
dart formatat a page width of 120, set inanalysis_options.yaml.
0.5.0 #
Adds the Network section.
Added #
NetworkSection, recording every HTTP call made through dart:io'sHttpClient(Dio,http, images):- A list of calls with status (coloured by class), method, URL and duration, newest first.
- Search by URL, method or status, status filter chips (2xx, 3xx, 4xx, 5xx, Failed) and a call count.
- Pause and resume recording, clear with undo, and export every call as a
.jsonfile. - A details page per call: query parameters, request and response headers and bodies, the error with its stack trace, Copy as cURL and a single-call JSON export.
- Sensitive headers are masked in exports (
redactedHeaders). - Keeps the last 500 calls, caps bodies at 256 KB and skips binary bodies (
NetworkRecorder(maxCalls:, maxBodyBytes:)).
NetworkRecorder,NetworkCall,exportCallsJson,exportCallJsonandtoCurl.HttpCallObserverandDevtoolHttp, so any tool can observe HTTP calls through the shared hook.DevtoolSection.init,disposeandbuildPage, so a section can show its own page instead of tool cards.DevtoolKeysfor the Network section.- Dependency on
share_plus.
Changed #
NetworkUsageTrackernow uses the shared HTTP hook.NetworkUsageHttpOverridesis replaced byDevtoolHttpOverrides.
0.4.0 #
Adds the Configuration tool with route navigation.
Added #
ConfigurationToolin the General section, with a Navigation input: type a route like/exampleand press Go (or submit from the keyboard) to close the devtool and open that route.- Takes an
onNavigatecallback, so it works withNavigator, go_router, auto_route or any other router. - Trims the input, ignores empty input and adds a leading
/when it is missing. - Without
onNavigate, the input is disabled and the card explains how to enable it.
- Takes an
DevtoolController.isPanelOpen,openPanel()andclosePanel(), so tools can open or close the devtool panel.DevtoolKeys.configurationRouteFieldandDevtoolKeys.configurationGoButton.- Example app routes
/exampleand/testto demo the tool.
Changed #
GeneralSectionnow ships withAppInfoTool,NetworkUsageToolandConfigurationTool. Passconfiguration: nullto hide the new card.- Whether the panel is open now lives in
DevtoolControllerinstead of theAnotherFlutterDevtoolwidget.
0.3.0 #
Adds the Internet Data Usage tool.
Added #
NetworkUsageToolin the General section, counting HTTP traffic since launch:- Data received, data sent and the total, formatted as B, KB, MB or GB.
- Number of requests made.
- Top hosts by data received (5 by default, configurable via
topHostCount). - Reset button to start counting from zero.
- Works with Dio, the
httppackage and anything else built ondart:io'sHttpClient, with no setup in the app. Traffic is captured through a globalHttpOverridesthat chains any overrides the app already installed. NetworkUsageTracker(NetworkUsageTracker.instanceby default) withstats,reset()andrecord*methods; pass your own viaNetworkUsageTool(tracker: ...).NetworkUsageStatsandHostUsagesnapshots, plus theformatByteshelper.DevtoolKeys.networkUsageResetButton.- Example app buttons that fetch with
httpand Dio to demo the tool.
Changed #
GeneralSectionnow ships withAppInfoToolandNetworkUsageTool. PassnetworkUsage: nullto hide the new card.
Known limitations #
- Not available on web, where the card says tracking is unavailable.
- Native clients that bypass
HttpClient(cupertino_http,native_dio_adapter) are not counted. - Header sizes are estimated, and gzip responses are counted after decompression.
0.2.0 #
Adds the tool system and the first built-in tool.
Added #
- Sections and tools:
DevtoolSectionfor the cards on the devtool home screen, laid out two per row.DevtoolToolas the base class for tool cards; each tool declares thesectionit belongs to.DevtoolConfig.sectionsto pick which sections are shown, defaulting to[GeneralSection()].DevtoolToolsregistry to add app-defined tools:register,registerAll,unregister,clear. A registered tool whose id matches a built-in replaces it.GeneralSection, which ships withAppInfoTooland acceptsappInfo: nullto hide it.
AppInfoToolin the General section, showing app version and build number, device model, OS version, current flavor and app startup time.AppInfoSourcewith the defaultPlatformAppInfoSource(package_info_plus,device_info_plus) andStaticAppInfoSourcefor tests or custom values.AppFlavordetection (Debug, Profile, Release) with semantic colors, overridable viaAppInfoTool(flavor: ...).AnotherFlutterDevtool.markStartup()andDevtoolStartupTracker, which measure the time to the first rasterized frame.- Toggle to show the app version below the launcher button, persisted with
shared_preferences.
- Version badge under the launcher button, driven by that toggle.
- Design system:
DevtoolColors,DevtoolSpacingandDevtoolTheme.dark(), with the Inter font bundled. - Reusable widgets for tool authors:
DevtoolCard(leading icon, title and an info button),showDevtoolInfoModal,DevtoolInfoRowandDevtoolSwitchRow. DevtoolControllerfor shared state and persisted settings, exposed to tools and the launcher throughDevtoolScope.DevtoolStoragewithSharedPreferencesDevtoolStorageandInMemoryDevtoolStorage, overridable viaDevtoolConfig.storage.- More
DevtoolKeys:versionBadge,infoModal,infoModalCloseButton,sectionCard,sectionPage,toolCardandtoolInfoButton.
Changed #
- The devtool panel now opens on a section grid instead of an empty screen. Section pages are pushed routes, so the system back button returns to the grid and only closes the panel from the home screen.
- The panel uses
DevtoolTheme.dark()instead ofThemeData.dark().
0.1.0 #
Initial release.
Added #
AnotherFlutterDevtoolwidget that wraps your app and overlays the devtool on top of it.DevtoolConfigto turn the devtool on or off (enabled, defaults tofalse). When disabled, only the wrapped child is rendered.LauncherConfigto control the floating launcher (enabled,initiallyVisible).- Floating, draggable launcher button (36x36, rounded, code icon):
- Starts near the top-left corner of the safe area.
- Can be dragged anywhere and is clamped to the safe area.
- Keeps its position after the panel is closed.
- Full-screen devtool panel opened by tapping the launcher:
- Closes with the close button or the system back gesture/button.
- Has its own dark-themed
MaterialApp, so it does not depend on the host app's theme or navigator. - Panel content is empty in this release; tools will be added in later versions.
- The host app stays fully interactive while the launcher is shown.
DevtoolKeyswith stable keys (launcher,panel,closeButton) for widget and integration tests.- Example app with integration tests.
