Flutter SDK

Flutter SDK for JustAnalytics mobile and web app monitoring.

Installation#

# pubspec.yaml
dependencies:
  justanalytics_flutter: ^0.1.0
flutter pub get

Quick Start#

import 'package:justanalytics_flutter/justanalytics_flutter.dart';

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

  await JustAnalytics.init(
    siteId: 'YOUR_SITE_ID',
    apiKey: 'YOUR_API_KEY',
    environment: 'production',
  );

  runApp(MyApp());
}

Screen Tracking#

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      navigatorObservers: [
        JustAnalyticsNavigatorObserver(),
      ],
      home: HomeScreen(),
    );
  }
}

Error Tracking#

// Automatic crash reporting
void main() async {
  await JustAnalytics.init(siteId: '...', apiKey: '...');

  FlutterError.onError = JustAnalytics.captureFlutterError;

  runZonedGuarded(() {
    runApp(MyApp());
  }, (error, stack) {
    JustAnalytics.captureException(error, stackTrace: stack);
  });
}

// Manual capture
try {
  await riskyOperation();
} catch (e, stackTrace) {
  JustAnalytics.captureException(e,
    stackTrace: stackTrace,
    tags: {'module': 'payments'},
  );
}

Custom Events#

JustAnalytics.trackEvent('purchase_complete', {
  'product': 'Pro Plan',
  'price': 49.99,
  'currency': 'USD',
});

Performance Tracing#

final result = await JustAnalytics.startSpan('load-data', () async {
  final response = await http.get(Uri.parse('/api/data'));
  return jsonDecode(response.body);
});

User Context#

JustAnalytics.setUser(
  id: 'user-123',
  email: 'alice@example.com',
  name: 'Alice',
);

Platform Support#

| Platform | Min Version | |----------|------------| | iOS | 12.0+ | | Android | API 21+ (Android 5.0) | | Web | Modern browsers | | macOS | 10.15+ |

Requirements#

  • Flutter 3.10+
  • Dart 3.0+