flog_flow library

flog_flow

Graba el flujo de navegación del usuario (pantallas, taps y transiciones) como screenshots de baja calidad + JSON, y lo exporta en un único contenedor cifrado (.flowx) para visualizarlo como un wire-flow en el visor web.

Classes

CaptureConfig
Configuración de captura. Aquí se controla el balance fidelidad ↔ memoria, que es la principal preocupación de este caso de uso.
DeviceInfo
Información del dispositivo/viewport en el momento de la grabación.
FlogCloud
Modo SaaS / nube: conecta la grabación con la plataforma usando solo el token del proyecto. Con una única llamada queda todo cableado:
FlogDioInterceptor
Interceptor de Dio que registra cada petición HTTP como un evento network en la línea de tiempo.
FlogError
Un error registrado durante el flujo (ej. desde el catch de un try/catch o desde el manejador global). Guarda la pantalla donde ocurrió, el mensaje, el stack trace y, si se pudo, un screenshot del estado en ese momento.
FlogEvent
Un evento de la línea de tiempo, más liviano que pantallas/taps/errores. Cubre varios tipos bajo un mismo modelo (extensible):
FlogFlogScope
Envuelve TODA la app (debajo de MaterialApp no: encima/alrededor del widget raíz, normalmente builder: de MaterialApp) para:
FlogFlow
Controlador central de la grabación. Singleton por defecto (FlogFlow.instance); puedes crear instancias propias si necesitas varias grabaciones aisladas.
FlogHttpUpload
Sube el archivo exportado (.flowx) a un endpoint HTTP como multipart/form-data. Una instancia es callable, así que se puede pasar directo a FlogFlow.instance.enableAutoUpload(upload: FlogHttpUpload(...)).
FlogLogCapture
Captura de logs hacia la línea de tiempo (eventos log). Todo va gated por CaptureConfig.captureLogs, así que sin activarlo no registra nada.
FlogLogs
Servicio de logs estructurados ligero, independiente de la grabación de sesiones: no captura pantallas ni gestos, solo envía logs estructurados a la plataforma con el token del proyecto.
FlogNavigatorObserver
Conecta el Navigator de la app con el grabador. Agrégalo a MaterialApp.navigatorObservers para detectar push/pop/replace.
FlogScreen
Un "nodo" del flujo: una pantalla que el usuario visitó.
FlogSession
La grabación completa de un flujo: metadatos + pantallas + taps + transiciones. Es lo que se serializa a manifest.json dentro del bundle exportado.
Una transición de navegación entre dos pantallas (una "flecha" del wire-flow).
RedactedZone
Envuelve contenido sensible (contraseñas, tarjetas, datos de cuenta) para que NO aparezca en los screenshots: su área se tapa con un rectángulo negro en la imagen capturada. La UI real no cambia para el usuario.
TapEvent
Una interacción del usuario sobre una pantalla, en coordenadas lógicas (dp).

Constants

kFlogSchemaVersion → const int
Versión del esquema del manifest. Súbela ante cambios incompatibles para que el visor web pueda validar/compatibilizar.

Typedefs

FlogUpload = Future<bool> Function(File file)
Función que sube un archivo exportado a donde tú decidas (tu servidor, S3, etc.). Devuelve true si la subida fue exitosa. Ver FlogHttpUpload para una implementación HTTP lista.