faro_sdk (Flutter / Dart)
dependencies:
faro_sdk: ^0.1.0
import 'package:flutter/material.dart';
import 'package:faro_sdk/faro_sdk.dart';
void main() {
Faro.run(
options: const FaroOptions(
endpoint: 'https://faro.iaportafolio.com',
token: '...', // /projects → SDK
service: 'mi-app-mobile',
environment: 'production',
release: '1.4.2+213',
),
appRunner: () => runApp(const MyApp()),
);
}
// más adelante…
Faro.instance.info('login completado', {'user_id': 42});
try {
await pagar();
} catch (e, st) {
Faro.instance.captureException(e, stack: st, tags: {'flow': 'checkout'});
rethrow;
}
Captura automática
Faro.run(...) instala:
FlutterError.onError— para errores dentro del framework (build/layout/paint).PlatformDispatcher.instance.onError— para errores que escapan del framework.runZonedGuarded— para errores asincrónicos en la zona delappRunner.
Si no quieres esos handlers, llama a Faro.init(options) directamente (sin .run).
Flush al fondo
flutter no expone un evento global de "app cerrándose" en todas las plataformas, así que el SDK hace flush periódico. Para asegurar persistencia en transiciones de ciclo de vida, llama manualmente desde un WidgetsBindingObserver:
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.paused) Faro.instance.flush();
}
Libraries
- faro_sdk
- SDK de Faro para Flutter / Dart.