▸Install the Flutter SDK
# pubspec.yaml
dependencies:
flutter:
sdk: flutter
respectlytics_flutter: ^3.0.0
Pure Dart — no platform channels for analytics. Same code on every platform Flutter compiles to (iOS, Android, web, macOS, Windows, Linux). On web, events are sent via the REST API; mobile platforms use the same path.
▸Initialize Respectlytics in Flutter
import 'package:flutter/material.dart';
import 'package:respectlytics_flutter/respectlytics_flutter.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Respectlytics.configure(appKey: '<YOUR_APP_KEY>');
runApp(const MyApp());
}
Initialize in main() after WidgetsFlutterBinding.ensureInitialized() and before runApp(). The future completes immediately on configuration; events queued before completion are flushed once the network is available.
✦Privacy & implementation notes
EU data residency is a frequent gating requirement for B2B SaaS sold to European enterprises and to public-sector buyers. Respectlytics's EU-default deployment + self-host fallback covers both "vendor must store EU data in EU" requirements and "no data leaves our infra" requirements without changing client code.
The Schrems II ruling (2020) significantly raised the bar for cross-border transfers from EU to non-adequate jurisdictions. EU-default storage avoids the question entirely — there's no transfer to a non-adequate jurisdiction because the data never leaves the EU. Consult your legal team to determine if this matters for your situation.
The Flutter SDK is pure Dart. No MethodChannel, no platform-specific iOS or Android plugin code. The same code runs on every platform Flutter supports — including web and desktop targets. This eliminates one common audit surface ("what's the Android implementation doing?").
Always initialize after WidgetsFlutterBinding.ensureInitialized() and before runApp(). If you skip the binding step, the configure call will throw on platforms that need a binding for asynchronous I/O. The SDK documentation example uses this pattern by default.
⇋How this compares to other analytics SDKs
| Data residency | Firebase Analytics | Mixpanel | Amplitude | Respectlytics (cloud) | Respectlytics (self-hosted) |
|---|---|---|---|---|---|
| Default storage region | US | US | US | EU | Operator-chosen |
| Cross-border transfer mechanism | SCCs | SCCs | SCCs | No transfer (EU-to-EU) | No transfer (operator-internal) |
| Operator visibility on raw data | Yes | Yes | Yes | Limited | You control |
| Pin to specific country | Limited | No | No | EU regions | Any region operator chooses |
❓Frequently asked questions
Which EU country does Respectlytics's cloud use?
Currently Frankfurt, Germany (DigitalOcean's eu-central-1 region). The specific region is documented in the operational FAQ; if your compliance posture requires a specific country, the self-hosted option lets you pin to any region.
Does Respectlytics make any cross-border transfers of stored event data?
Stored event data: no. Operational metadata (admin user account info, billing) may be processed in regions outside the EU per the privacy policy; consult that for the authoritative breakdown. Stored event data from your apps stays in the EU on the cloud product.
What about backups and disaster recovery?
Backups are stored in the same EU region as the primary database, encrypted at rest. There is no cross-region replication on the cloud product.
How do we verify residency for an audit?
(a) The Respectlytics privacy policy + DPA states the storage region; (b) DigitalOcean's compliance pages list the data centre's certifications; (c) for self-hosted, you operate the database, so the audit happens against your own infrastructure documentation.