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
networken la línea de tiempo. - FlogError
-
Un error registrado durante el flujo (ej. desde el
catchde 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
MaterialAppno: encima/alrededor del widget raíz, normalmentebuilder: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 comomultipart/form-data. Una instancia es callable, así que se puede pasar directo aFlogFlow.instance.enableAutoUpload(upload: FlogHttpUpload(...)). - FlogLogCapture
-
Captura de logs hacia la línea de tiempo (eventos
log). Todo va gated porCaptureConfig.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.
-
Conecta el
Navigatorde la app con el grabador. Agrégalo aMaterialApp.navigatorObserverspara 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.jsondentro 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
truesi la subida fue exitosa. Ver FlogHttpUpload para una implementación HTTP lista.