sayspec_flutter_recorder library
SaySpec Flutter recording SDK.
Drop-in instrumentation for a Flutter app under test. It records taps, drags, text entry, navigation, lifecycle and explicit markers with widget identity, monotonic timing and host-aligned clock calibration, then streams bounded batches to the SaySpec desktop app.
Classes
- SaySpecClockCalibration
- Aligns device monotonic time with host time.
- SaySpecRecorder
- Records widget-level Flutter evidence and streams it to the SaySpec host.
- SaySpecRecorderEnvelope
- Everything the host needs to attribute and interpret one recording session.
- SaySpecRecorderEvent
- One recorded interaction, navigation or lifecycle entry.
- SaySpecRecorderOptions
- Options for one recording session.
- SaySpecRecorderOverlay
- Small draggable Record/Stop control drawn above the app while SaySpec launched it for recording.
- SaySpecRecorderSchema
- Wire contract between the SaySpec Flutter recording SDK and the SaySpec desktop host.
- SaySpecRecorderTransport
- Posts bounded event batches to the SaySpec host and receives the host's pending recorder commands in the same HTTP round trip.
- SaySpecWidgetIdentity
- Best-effort stable identity for the widget that produced an event.
Enums
- SaySpecRecordingState
- Host-visible recording state.
Functions
-
calibrateClock(
{required String endpoint, required Stopwatch monotonic, String? sessionToken, int samples = 3, Client? client}) → Future< SaySpecClockCalibration> -
Measures host↔device offset using the minimum-round-trip sample of
samplesrequests, which is the standard NTP-style estimate. -
describeTextField(
Element editable) → SaySpecWidgetIdentity - Identity of the text field that owns a focused EditableText element.
-
describeWidget(
Element element, {bool includeBounds = true}) → SaySpecWidgetIdentity - Derives a durable widget identity from a live Element.
-
isInteractiveWidget(
Widget widget) → bool - Widgets a reviewer would name, so a recorded action points at them instead of at Flutter's internal viewport wrappers.