unilitix 2.0.13 copy "unilitix: ^2.0.13" to clipboard
unilitix: ^2.0.13 copied to clipboard

African-first mobile UX analytics for Flutter. Pure Dart SDK — track sessions, screens, events and crashes with a single line of code.

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 #

# pubspec.yaml
dependencies:
  unilitix: ^2.0.12
flutter pub get

Quick start #

Copy this entire block into your main.dart and replace YOUR_API_KEY:

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Unilitix.init(
    config: const UnilitixConfig(apiKey: 'YOUR_API_KEY'),
  );

  runApp(
    UnilitixGestureDetector(
      child: const MyApp(),
    ),
  );
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      navigatorObservers: [Unilitix.observer], // screen tracking
      home: const HomeScreen(),
    );
  }
}

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

Verify your integration #

In debug mode, within 5 seconds of launch you will see:

[Unilitix] ✅ SDK initialized
[Unilitix] ✅ Session started

If you see a ⚠️ warning about screen events, confirm Unilitix.observer is inside navigatorObservers in your MaterialApp. Silent in production builds.

Common mistakes #

❌ Wrong ✅ Correct
Unilitix.init('your_api_key') Unilitix.init(config: const UnilitixConfig(apiKey: '...'))
runApp(const MyApp()) runApp(UnilitixGestureDetector(child: const MyApp()))
UnilitixNavigatorObserver() Unilitix.observer

Track custom events #

Unilitix.track('purchase_completed', {
  'amount': 5000,
  'currency': 'NGN',
});

// Any key/value properties — strings, numbers, booleans
Unilitix.track('loan_applied', {
  'amount': 50000,
  'loan_type': 'personal',
  'screen': 'LoanApplication',
});

Identify users #

// Call after login
Unilitix.identify('user_123', {
  'name': 'Tosin',
  'plan': 'pro',
  'country': 'Nigeria',
});

// Call on logout
Unilitix.reset();

Configuration #

All options have sensible defaults. Only override what you need:

await Unilitix.init(
  config: const UnilitixConfig(
    apiKey: 'YOUR_API_KEY',
    debug: true,                  // console logging
    autoTrackScreens: true,       // screen flow tracking
    autoTrackTaps: true,          // tap heatmaps
    autoTrackCrashes: true,       // crash reports
    autoTrackRageTaps: true,      // frustration detection
    flushIntervalSeconds: 30,     // upload frequency
    sessionTimeoutSeconds: 1800,  // session idle timeout (30 min)
    maskInputs: true,             // hide sensitive fields
    sampleRate: 1.0,              // 100% of sessions
    captureScreenshots: true,     // visual session replay
    captureSnapshots: true,       // widget tree capture
    uploadScreenshotsOnWifiOnly: true, // save mobile data
  ),
);

Session control #

await Unilitix.startSession();
await Unilitix.endSession();
await Unilitix.flush();

Privacy #

Unilitix.optOut();
Unilitix.optIn();

Wrap sensitive widgets to exclude them from recordings:

UnilitixPrivate(
  child: CreditCardWidget(),
)

Migration from v1.x #

// Before (v1.x)
await Unilitix.init('your_api_key');
runApp(const MyApp());

// After (v2.x)
await Unilitix.init(
  config: const UnilitixConfig(apiKey: 'your_api_key'),
);
runApp(
  UnilitixGestureDetector(
    child: const MyApp(),
  ),
);

Requirements #

Platform Minimum version
Android API 21 (Android 5.0)
iOS In development — track progress

Support #

1
likes
0
points
1.11k
downloads

Documentation

Documentation

Publisher

verified publisherunilitix.com

Weekly Downloads

African-first mobile UX analytics for Flutter. Pure Dart SDK — track sessions, screens, events and crashes with a single line of code.

Homepage
Repository (GitHub)
View/report issues

Topics

#analytics #monitoring #mobile #flutter

License

unknown (license)

Dependencies

battery_plus, connectivity_plus, crypto, device_info_plus, flutter, flutter_secure_storage, flutter_web_plugins, http, image, package_info_plus, path, shared_preferences, sqflite

More

Packages that depend on unilitix

Packages that implement unilitix