analytics_tracker 1.0.0 copy "analytics_tracker: ^1.0.0" to clipboard
analytics_tracker: ^1.0.0 copied to clipboard

A comprehensive analytics and error tracking solution for Flutter

example/lib/main.dart

import 'package:analytics_tracker/analytics_error_tracking.dart';
import 'package:flutter/material.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await AnalyticsErrorTracking.initialize(
    platforms: [],
    sentryDsn: 'your-sentry-dsn',
  );

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Error Tracking Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        useMaterial3: true,
      ),
      home: const ErrorTrackingDemo(),
    );
  }
}

class ErrorTrackingDemo extends StatelessWidget {
  const ErrorTrackingDemo({super.key});

  void _generateError() async {
    try {
      // Generating a sample error
      throw Exception('This is a test error');
    } catch (error, stackTrace) {
      await AnalyticsErrorTracking.logError(
        error,
        stackTrace,
        extra: {
          'screen': 'ErrorTrackingDemo',
          'action': 'Generate Error Button Press',
          'timestamp': DateTime.now().toIso8601String(),
        },
      );
    }
  }

  void _generateCustomError() async {
    try {
      // Generating a custom error scenario
      final List<String> emptyList = [];
      // This will throw a RangeError
      print(emptyList[1]);
    } catch (error, stackTrace) {
      await AnalyticsErrorTracking.logError(
        error,
        stackTrace,
        extra: {
          'screen': 'ErrorTrackingDemo',
          'action': 'List Access Error',
          'custom_data': 'Attempted to access empty list',
        },
      );
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Error Tracking Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: _generateError,
              child: const Text('Generate Test Error'),
            ),
            const SizedBox(height: 20),
            ElevatedButton(
              onPressed: _generateCustomError,
              child: const Text('Generate Custom Error'),
            ),
          ],
        ),
      ),
    );
  }
}
2
likes
140
points
51
downloads

Publisher

unverified uploader

Weekly Downloads

A comprehensive analytics and error tracking solution for Flutter

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

device_info_plus, firebase_analytics, flutter, package_info_plus, sentry

More

Packages that depend on analytics_tracker