openpanel_flutter 0.2.1
Openpanel is an open-source alternative to Mixpanel that combines the power of Mixpanel with the ease of Plausible. This package is not officially maintained by the Openpanel team.
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 OpenpanelObserverif 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