Analytics for Flutter apps
Pure Dart, without Firebase. Add it before runApp, and see what people do next to your App Store, Google Play and RevenueCat numbers.
Add it
$ flutter pub add apparent
// Start it in main(), before runApp
import 'package:apparent/apparent.dart';
await Apparent.start(app: 'my-app', key: '<your key>', apiUrl: 'https://in.apparent.fyi');
// MaterialApp:
navigatorObservers: [ApparentNavigatorObserver()],
// The actions that matter
Apparent.track('sign_up');On pub.dev. Every option: the Flutter docs.
What you get
- Every named route as a screen, from one navigator observer. go_router too.
- Flutter errors and uncaught Dart errors, with the screen.
- Purchases tied to what people did first, through RevenueCat.
- Opens, visits, updates and time in the app.
- Both stores' downloads, reviews and sales on the same page.
Private by default
- No App Tracking Transparency prompt: it never reads the advertising id (IDFA or GAID).
- The IP address is used to tell the country, then dropped. It's never stored.
- One random id per install, made by the SDK. A user id only if you set one.
- Your Crashlytics or Sentry handlers keep running.
- optOut() stops it, and it's remembered. Your data is never sold or shared.
Questions
Do I need Firebase?
No. It's pure Dart and sends to Apparent directly.
Does it work with go_router?
Yes. Pass the observer to GoRouter's observers.
Does it catch native crashes?
Flutter and Dart errors, yes. Native iOS and Android crashes, not yet.
Will events get lost offline?
No. Up to 1,000 events wait on the phone for a week.