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+