magnitude 1.0.0
magnitude: ^1.0.0 copied to clipboard
Flutter SDK for Magnitude analytics — event tracking, session management, autocapture, and offline support.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:magnitude/magnitude.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Magnitude.init(
'YOUR_API_KEY',
config: const MagnitudeConfig(
autocapture: true,
),
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Magnitude Example',
navigatorObservers: [Magnitude.navigatorObserver],
home: const HomeScreen(),
routes: {
'/details': (_) => const DetailsScreen(),
},
);
}
}
class HomeScreen extends StatelessWidget {
const HomeScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Home')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () {
Magnitude.track('button_clicked', properties: {
'button_name': 'track_event',
});
},
child: const Text('Track Event'),
),
const SizedBox(height: 16),
ElevatedButton(
onPressed: () {
Magnitude.identify('user_123', traits: {
'email': 'jane@example.com',
});
},
child: const Text('Identify User'),
),
const SizedBox(height: 16),
ElevatedButton(
onPressed: () {
Navigator.pushNamed(context, '/details');
},
child: const Text('Go to Details'),
),
const SizedBox(height: 16),
ElevatedButton(
onPressed: () => Magnitude.reset(),
child: const Text('Reset'),
),
],
),
),
);
}
}
class DetailsScreen extends StatelessWidget {
const DetailsScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Details')),
body: const Center(child: Text('Details Screen')),
);
}
}