leonard_native 0.2.1
leonard_native: ^0.2.1 copied to clipboard
A pure-Dart Leonard contract extension that perceives and drives a native mobile app over the OS accessibility tree (via Appium/XCUITest): a stateful, self-watching extension projecting the a11y tree [...]
0.2.0 #
- Breaking: the iOS
AppiumBackendpublic API is renamed toXcuiTestBackend, and itsplatform:constructor parameter is removed. - Migration: replace
AppiumBackend(..., platform: 'ios')withXcuiTestBackend(...). - Breaking: VM-service methods now use the unified
ext.leonard.*namespace supplied byleonard_contract.
0.1.2 #
- Android support:
UiAutomator2Backenddrives a native Android app over a local Appium server running the UiAutomator2 driver — the additive sibling of the iOSAppiumBackend. It shares the generic W3C transport (session, element find, the 4-tier resolve chain, pointer-action tap/swipe) and keeps every Android divergence inside the impl: a<hierarchy>/sourceparser, content-desc as the tier-1 identifier, resource-id-or-positional xpath synthesis, attribute/password-derived masking with attribute/text readback, and a press vocabulary wherebackis recognized and the iOS-only alert keys throw. - New
backendForPlatform(...)— the one place that maps a platform string to aNativeBackend, so the wiring is testable without a device. An unrecognized platform throws rather than silently falling back to iOS (which would parse an Android tree with the XCUITest parser and observe nothing). bin/leonard_native_host.dartselects throughbackendForPlatform, so--platform androidnow works; an unsupported platform is an exit-64 usage error rather than an uncaught throw.
0.1.1 #
- The per-node record now surfaces the OS accessibility identifier under the
canonical
identifierkey — the same stable, locale-proof addressing key as Flutter'sSemantics(identifier:)— for cross-host record parity with the Flutter semantics fragment. Previouslya11yIdwas selector-internal and never wired to the observation.
0.1.0 — initial native host #
- Initial
leonard_nativepackage:NativeExtension(a stateful, self-watchingLeonardExtension) projects the OS accessibility tree into a genesis_perception fragment and exposestap/enter_text/press/swipetools. - The
NativeBackendseam keeps all device I/O behind a synchronousbuildPerception().AppiumBackenddrives a local Appium server over W3C WebDriver against an iOS simulator (XCUITest);FakeNativeBackendis the shipped test impl. - Standalone VM-service host runner at
bin/leonard_native_host.dart.