Unilitix Flutter SDK

African-first mobile UX analytics for Flutter. Track sessions, screens, events and crashes with a single line of code.

pub package pub points License: MIT CI

Install

dependencies:
  unilitix: ^2.0.61

Quick start

import 'package:flutter/material.dart';
import 'package:unilitix/unilitix.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Unilitix.init('YOUR_API_KEY');
  Unilitix.runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      navigatorObservers: [Unilitix.observer],
      builder: (context, child) => UnilitixWidget(child: child!),
      home: const HomeScreen(),
    );
  }
}

Get your API key at app.unilitix.com → Settings → Apps.

Verify your integration

In debug mode you will see:

[Unilitix] SDK initialized ✅ v2.0.35
[Unilitix] Session started ✅ abc123…
[Unilitix] Screen → /home

Track custom events

Unilitix.track('loan_applied', {
  'amount': 50000,
  'loan_type': 'personal',
  'currency': 'NGN',
});

Identify users

// After login
Unilitix.identify('user_123', {
  'name': 'Ada Okafor',
  'plan': 'pro',
  'country': 'Nigeria',
});

// After logout
Unilitix.reset();

Configuration

await Unilitix.init(
  'YOUR_API_KEY',
  config: UnilitixConfig(
    debug: false,
    captureSnapshots: true,
    captureScreenshots: false,
    maskInputs: true,
    flushIntervalSeconds: 30,
    sessionTimeoutSeconds: 1800,
    uploadScreenshotsOnWifiOnly: true,
  ),
);

go_router / custom navigators

GoRouter(
  observers: [Unilitix.observer],
  routes: [...],
)

Privacy

Unilitix.optOut(); // user opts out
Unilitix.optIn();  // user opts back in

// Exclude sensitive widgets from recordings
UnilitixPrivate(child: CreditCardWidget())

Requirements

Platform Minimum
Android API 21 (Android 5.0)
iOS iOS 13.0+
Web ✅ Supported

Support

Libraries

unilitix
Unilitix Flutter SDK — mobile UX analytics for African apps.
unilitix_flutter
unilitix_web