Official Flutter SDK for Unilitix — African-first mobile UX analytics
# Unilitix Flutter SDK
**Version:** 2.0.73 · pub.dev · GitHub
Unilitix is a mobile analytics SDK built for African markets. It captures session replays, screen flows, custom events, and user identity — with offline-first data delivery and Africa-specific context (network type, carrier, power outage correlation).
---
## Requirements
| Platform | Minimum | Recommended |
|---|---|---|
| Flutter | 3.10+ | 3.22+ |
| Dart | 3.0+ | — |
| Android | API 21+ | API 26+ (full session replay) |
| iOS | 13.0+ | — |
---
## Installation
```bash
flutter pub add unilitix
```
Or add manually to `pubspec.yaml`:
```yaml
dependencies:
unilitix: ^2.0.73
```
Then run:
```bash
flutter pub get
```
---
## Quick Start
### 1. Initialize the SDK
In your `main.dart`, initialize Unilitix before running your app:
```dart
import 'package:unilitix/unilitix_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Unilitix.init('YOUR_API_KEY');
Unilitix.runApp(MyApp());
}
```
Get your API key from **Dashboard → Settings → Apps**.
---
### 2. Set Up Your App Widget
Add `Unilitix.observer` to `navigatorObservers` and wrap your app content with `UnilitixWidget` inside the `builder`:
```dart
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
navigatorObservers: [Unilitix.observer],
builder: (context, child) => UnilitixWidget(child: child!),
);
}
}
```
> ⚠️ **Always use the `builder` pattern.** Do not wrap `MaterialApp` itself with `UnilitixWidget` — this causes blank frames in session replay.
---
### 3. Verify Integration
Run your app in debug mode. Within 5 seconds you should see:
```
[Unilitix] SDK initialized ✅ v2.0.73
[Unilitix] Session started ✅ abc123…
[Unilitix] Screen → /home
```
If you see `Observer ⚠️ not connected`, ensure `Unilitix.observer` is in `navigatorObservers`. The warning clears automatically on first navigation.
---
## Screen Tracking
Screen tracking is **automatic** when `U …