Openpanel Flutter SDK
Non official Flutter SDK for Openpanel, the open source alternative to Mixpanel, GA & Plausible.
Getting started
First, you need to create an account on Openpanel.
Install this package from pub.dev
$ flutter pub add openpanel_flutter
Usage
Import the package:
import 'package:openpanel_flutter/openpanel_flutter.dart';
Then you need to initialize Openpanel before using it:
import 'package:openpanel_flutter/openpanel_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Openpanel.instance.initialize(
options: OpenpanelOptions(
clientId: <YOUR_CLIENT_ID>,
clientSecret: <YOUR_CLIENT_SECRET>,
)
);
runApp(MyApp());
}
Track event
To track an event, use:
Openpanel.instance.event('event_name', properties: {
...
})
Track navigation
Add the OpenpanelObserver
if you want to track navigation
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
navigatorObservers: [
OpenpanelObserver()
],
...
);
}
}
Track install referrer
To track the referrer url, use the ReferrerObserver
if you want to track the referrer url
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
navigatorObservers: [
ReferrerObserver()
],
...
)
}
}
Global properties
You can set global properties that will be sent with every event. This is useful if you want to set a custom user id for example.
Openpanel.instance.setGlobalProperties({
'user_id': '123',
...
});
Other options
Customize the url
You can also customize the url of the openpanel server. This is useful if you have a custom domain or use a self-hosted instance of Openpanel.
Enable verbose logging
Openpanel.instance.initialize(
options: OpenpanelOptions(
clientId: <YOUR_CLIENT_ID>,
clientSecret: <YOUR_CLIENT_SECRET>,
verbose: true
)
)
Disable events collection
You can disable events collection if you don't want to send events to Openpanel.
Openpanel.instance.setCollectionEnabled(false);
Data tracking
This plugin automatically tracks the following data:
- App version
- Build number
- Platform
- Device model
- Os version
- Manufacturer
Issues
Contributing
If you wish to contribute, please send a PR to the Github Repo
Credits
-
Openpanel: Github Repo | Website | Documentation | Author
-
Maintainer: Steve NOSSE