Skip to main content

fdb_helper 1.15.0 copy "fdb_helper: ^1.15.0" to clipboard
fdb_helper: ^1.15.0 copied to clipboard

Helper package for fdb (Flutter Debug Bridge). Registers VM service extensions for widget interaction, SharedPreferences access, and app data cleanup.

1.15.0 #

  • No functional changes. Version matches fdb 1.15.0.

1.14.2 #

  • No functional changes.

1.14.1 #

  • No functional changes.

1.14.0 #

Improvements #

  • ext.fdb.lifecycle also returns devicePixelRatio, the main view's device pixel ratio (null without a view). fdb native-tap --logical uses it to turn logical pixels into physical ones on Android.

1.13.1 #

Fixes #

  • ext.fdb.back injects the engine's popRoute on flutter/navigation, the message a real Android back press sends, instead of calling maybePop() on the first navigator under the root. The app's Router/BackButtonDispatcher, NavigatorPopHandler and PopScope decide what is popped, so nested navigators behave as on a device. popped is the framework's answer. When nothing handles the back, the new passedToOs field says whether it went to the OS: true on Android (SystemNavigator.pop(), as a real press), false elsewhere, where SystemNavigator.pop() would quit a macOS app.

1.13.0 #

Improvements #

  • ext.fdb.lifecycle and ext.fdb.describe report the package version as fdbHelperVersion, so fdb can warn when the running app was built with a different fdb_helper than the project resolves.
  • ext.fdb.describe refs are stable IDs: a ref names one widget instance while it stays mounted and is never reused within an app run. Every selector extension accepts ref; a stale ref fails without acting. Describe also returns removedRefs.
  • ext.fdb.describe marks disabled interactive widgets with enabled: false.

Fixes #

  • Selector tap, longPress and doubleTap on a disabled widget fail with <Type> is disabled instead of tapping it.
  • enterText by selector resolves the field from the matched widget, never from the subtree of a screen-level GestureDetector, so it no longer types into an unrelated field.

1.12.0 #

Improvements #

  • ext.fdb.enterText types into any widget whose State implements TextInputClient, not only EditableText. This covers flutter_quill (QuillRawEditorState) and custom TextInputClient/DeltaTextInputClient editors. Text goes through the client (updateEditingValue, or one delta for delta clients), so the widget's controller and listeners run; no keyboard needed.
  • ext.fdb.enterText accepts an action param (send, done, newline, ...) delivered via TextInputClient.performAction.
  • ext.fdb.describe lists non-EditableText text inputs with editable: true and inputClient, and reports the app's lifecycleState.
  • New ext.fdb.lifecycle extension returning the app's lifecycle state.

Fixes #

  • enterText with no field focused (focus on a route scope) now fails instead of typing into the first field on screen.
  • Selector taps (tap, longPress, doubleTap, swipe) on a custom button that builds its own GestureDetector hit the button, not an enclosing screen-level detector.
  • Selector taps on a covered widget (dialog, sheet, opaque overlay) fail with an error naming what covers it instead of tapping an ancestor's centre (roughly the screen centre).
  • enterText by selector on a field scrolled out of view targets that field, not the first field of the enclosing container.

1.11.2 #

Fixes #

  • Fixed Android --profile builds failing to compile with Unresolved reference 'FdbHelperNativeTapImpl'. The Flutter Gradle plugin adds a profile build type to plugin projects, so android/build.gradle now adds src/debug/kotlin to the profile source set. Profile builds keep the real implementation; release builds still use the safe stub (#163).

1.11.1 #

Fixes #

  • Migrated the Android module to Flutter's Built-in Kotlin: dropped the direct apply plugin: 'kotlin-android' from android/build.gradle and added the kotlin.compilerOptions DSL, so apps depending on fdb_helper no longer see the "applies Kotlin Gradle Plugin" deprecation warning on Flutter 3.47+.
  • Bumps the minimum Flutter version to 3.44.0, required by the kotlin.compilerOptions DSL (needs Kotlin Gradle Plugin >= 2.0.0). The Dart SDK constraint is unchanged.

1.11.0 #

Improvements #

  • Exported FdbServiceExtensionsMixin so applications can register fdb's VM service extensions alongside other custom binding mixins. FdbBinding.ensureInitialized() remains the default setup for applications without a custom binding.

1.10.1 #

No functional changes. Version bump to keep lockstep with fdb 1.10.1 (Windows compatibility fixes in the CLI host process; fdb_helper itself is unaffected).

1.10.0 #

New extensions #

  • ext.fdb.swipePath dispatches an arbitrary multi-point path as a single continuous pointer stroke via the new dispatchPath gesture helper in gesture_dispatcher.dart.

Improvements #

  • ext.fdb.swipe now accepts an optional precision param controlling dispatchScroll's max move-event step size (default 8.0, unchanged from before).

1.9.0 #

Improvements #

  • FdbBinding.ensureInitialized() now calls broadcastVmUri() at startup, emitting a [FDB_VM_URI] log marker that fdb attach uses for reliable auto-discovery on Android and iOS without needing --debug-url.
  • broadcastVmUri() calls Service.controlWebServer(enable: true) when getInfo() returns null, enabling discovery in profile builds launched without Flutter tooling.

1.8.0 #

Improvements #

  • Added native long-press support for coordinate-based fdb interactions on supported platforms.

1.7.3 #

No functional changes. Version bumped in lockstep with fdb 1.7.3.

1.7.2 #

No functional changes. Version bumped in lockstep with fdb 1.7.2.

1.7.1 #

No functional changes. Version bumped in lockstep with fdb 1.7.1.

1.7.0 #

No functional changes. Version bumped in lockstep with fdb 1.7.0.

1.6.4 #

Fixes #

  • iOS and macOS profile builds now compile the real native tap implementation again. Only release compiles the safe stub. The previous release stubbed both profile and release on Apple, which broke fdb native-tap for profile-mode binaries shipped via internal/dev channels.

1.6.3 #

Fixes #

  • iOS/macOS release builds now compile a safe Swift stub instead of the private-API native tap implementation. Debug builds keep the real implementation. (Profile builds were also stubbed in this release; see 1.6.4.)
  • Android release builds compile a stub FdbHelperNativeTapImpl via Gradle src/release source sets. Debug and profile keep the real implementation. The Android plugin no longer depends on the debug-only flutter_embedding_debug artifact.

1.6.2 #

Fixes #

  • ext.fdb.swipe now uses finer-grained synthetic pointer movement to better match native touch behavior when parent drag recognizers compete with child scale recognizers.

1.6.1 #

Fixes #

  • findHittableElement now always walks ancestors when the matched element is non-interactive, so fdb tap --text resolves to the enclosing button rather than the Text leaf (fdb-xdh)
  • Pass-through wrappers (IgnorePointer, AbsorbPointer) are excluded as fallback tap targets so route-level IgnorePointer(ignoring: false) no longer leaks as the resolved widget (fdb-gfk)
  • The closed list of interactive widget types now covers Cupertino (CupertinoButton, CupertinoSwitch, CupertinoTextField, CupertinoSlider, CupertinoListTile, etc.) and the Material widgets that were missing (Chip family, MenuItemButton, ListTile, BackButton, RangeSlider, InkResponse, navigation widgets, DropdownMenu, ToggleButtons)

1.6.0 #

No functional changes.

1.5.1 #

Fixes #

  • ext.fdb.describe no longer leaks elements from underlying navigator routes — prunes subtrees where the enclosing ModalRoute.isCurrent is false

1.5.0 #

No functional changes.

1.4.0 #

Fixes #

  • ext.fdb.describe now walks the full subtree of GestureDetector and InkWell widgets, surfacing nested interactive children that were previously silently dropped

1.3.0 #

New #

  • ext.fdb.doubleTap now correctly invokes the callback when the target widget is hittable

Fixes #

  • No functional changes to fdb_helper API — version bump to match fdb 1.3.0

1.2.1 #

Improvements #

  • No functional changes — version bump to match fdb 1.2.1

1.2.0 #

New #

  • ext.fdb.doubleTap - double-tap widgets by selector or coordinates
  • ext.fdb.scrollTo - scroll the nearest scrollable until a target widget becomes visible
  • ext.fdb.wait - wait for widget and route presence or absence from the VM service

Improvements #

  • Tap and long-press handlers now support absolute coordinate targeting through the CLI --at x,y flow
  • Double-tap test surfaces now expose visible counters so smoke tests verify UI state instead of log timing

1.1.7 #

New #

  • ext.fdb.screenshot — renders the Flutter surface to PNG at physical pixel resolution and returns it as base64; used by fdb screenshot as a fallback on platforms with no native capture CLI (physical iOS, Windows, Linux Wayland)

1.1.6 #

Improvements #

  • No functional changes — version bump to match fdb 1.1.6

1.1.5 #

Improvements #

  • No functional changes — version bump to match fdb 1.1.5

1.1.4 #

Improvements #

  • No functional changes — version bump to match fdb 1.1.4

1.1.3 #

Improvements #

  • First pub.dev release — package now published to pub.dev as fdb_helper

1.1.2 #

New #

  • ext.fdb.sharedPrefs — read/write/clear SharedPreferences (get, get-all, set, remove, clear; supports string, bool, int, double types)
  • ext.fdb.clean — delete all entries in the app's temporary, support, and documents directories via path_provider

1.1.1 #

Improvements #

  • Initial pub.dev release preparation (README, CHANGELOG, LICENSE)

1.1.0 #

New #

  • ext.fdb.back — trigger Navigator.maybePop() on the root navigator

1.0.1 #

Fixes #

  • Remove unnecessary flutter/rendering.dart import

1.0.0 #

New #

  • ext.fdb.elements — list all interactive elements with bounds
  • ext.fdb.describe — compact screen snapshot for agent navigation
  • ext.fdb.tap — tap a widget by key, text, type, or @N ref
  • ext.fdb.longPress — long-press a widget
  • ext.fdb.enterText — enter text into a text field
  • ext.fdb.scroll — perform a swipe/scroll gesture
  • ext.fdb.swipe — swipe widgets (PageView, Dismissible)
  • ext.fdb.selectionMode — toggle widget selection overlay
1
likes
140
points
22.1k
downloads

Documentation

API reference

Publisher

verified publisherappflate.io

Weekly Downloads

Helper package for fdb (Flutter Debug Bridge). Registers VM service extensions for widget interaction, SharedPreferences access, and app data cleanup.

Homepage
Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, meta, path_provider, shared_preferences

More

Packages that depend on fdb_helper

Packages that implement fdb_helper