Noibu Flutter SDK

Session replay SDK for Flutter. Captures user sessions and replays them in the Noibu dashboard for debugging.

Installation

Add to your pubspec.yaml:

dependencies:
  noibu_flutter: ^0.1.0

Android

Set minSdkVersion to 26 or higher in android/app/build.gradle:

android {
    defaultConfig {
        minSdkVersion 26
    }
}

iOS

Set the platform to iOS 16.0 or higher in your Podfile:

platform :ios, '16.0'

Usage

Initialize

import 'package:noibu_flutter/noibu_flutter.dart';

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

  await NoibuSessionReplay.instance.initialize(
    const NoibuConfiguration(domain: 'your-domain.noibu.com'),
  );

  runApp(NoibuSessionReplay.instance.wrapWithCapture(child: MyApp()));
}

Add the navigation observer to your MaterialApp:

MaterialApp(
  navigatorObservers: [
    NoibuSessionReplay.instance.navigationObserver,
  ],
  // ...
)

Or notify navigation manually:

await NoibuSessionReplay.instance.didNavigate(pageName: 'ProductDetail');

Custom attributes

Attach metadata to the current session:

await NoibuSessionReplay.instance.addCustomAttribute('userId', '12345');

Error reporting

Report errors to the Noibu dashboard:

await NoibuSessionReplay.instance.addError(
  'Payment failed',
  stack: StackTrace.current.toString(),
);

Privacy

Control what gets captured:

await NoibuSessionReplay.instance.initialize(
  const NoibuConfiguration(
    domain: 'your-domain.noibu.com',
    privacyMode: NoibuPrivacyMode.maskAll,  // maskAll, maskSensitive, allowAll
  ),
);

Shutdown

await NoibuSessionReplay.instance.shutdown();

Requirements

Platform Minimum version
Android API 26 (Android 8.0)
iOS 16.0
Flutter 3.27.0
Dart 3.6.0

License

MIT License. See LICENSE for details.

Libraries

noibu_flutter