Skip to content

SDK Flutter

This content is not available in your language yet.

Le SDK Pionne pour Flutter. Auto-capture les erreurs FlutterError, les exceptions async via Zone, et enrichit chaque event avec le contexte device.

pubspec.yaml
dependencies:
pionne_flutter: ^0.1.0
Fenêtre de terminal
flutter pub get
import 'package:flutter/material.dart';
import 'package:pionne_flutter/pionne_flutter.dart';
void main() {
Pionne.init(
token: 'pio_live_xxx',
release: '1.0.0',
environment: 'production',
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) => const MaterialApp(home: MyHome());
}
  • FlutterError.onError — erreurs du framework Flutter (build, layout, paint)
  • Zone runner (via runZonedGuarded) — exceptions Dart async non capturées
  • PlatformDispatcher.instance.onError (Flutter 3.3+) — erreurs natives non capturées par Flutter
  • Platform.operatingSystemios, android, linux, etc.
  • Platform.operatingSystemVersion — version OS
  • package_info_plus — version d’app, build number, package name (peer dep optionnelle)
  • device_info_plus — modèle, manufacturer (peer dep optionnelle)
try {
await fetchData();
} catch (error, stackTrace) {
await Pionne.captureException(
error,
stackTrace: stackTrace,
tags: {'feature': 'sync'},
contexts: {'sync': {'retry': 2}},
);
}
Pionne.init(token: '…', release: '…', environment: '…');
Pionne.captureException(error, stackTrace: stack, tags: {});
Pionne.captureMessage('Cache miss', level: PionneLevel.warning);
Pionne.setUser(id: 'user_42');
Pionne.setTags({'region': 'eu'});
Pionne.setEnabled(false);
Pionne.addBreadcrumb(category: 'navigation', message: '/checkout');
PlateformeStatut
iOSSupporté
AndroidSupporté
WebSupporté
macOSSupporté
WindowsSupporté
LinuxSupporté

Le package_name (par exemple com.tonapp.app) est auto-pinné côté serveur au premier event. Si ton token fuite et qu’il est utilisé depuis une autre app, les events sont rejetés.