Quick Start

Set up xray_inspector in your Flutter app in minutes.

This guide sets up full inspection — network, logs, and key-value storage.

1. Add dependencies

Add the packages you need to your pubspec.yaml:

dependencies:
  xray_inspector: ^0.0.1
  xray_network_dio_interceptor: ^0.0.1 # if you use Dio
  xray_shared_preferences_inspector: ^0.0.1 # optional
  xray_secure_storage_inspector: ^0.0.1 # optional

2. Create inspectors

Create your inspectors at app startup (top-level, provider, or service locator):

import 'package:xray_inspector/xray_inspector.dart';
import 'package:xray_network_dio_interceptor/xray_network_dio_interceptor.dart';
import 'package:xray_shared_preferences_inspector/xray_shared_preferences_inspector.dart';
import 'package:xray_secure_storage_inspector/xray_secure_storage_inspector.dart';

// Network inspector
final networkInspector = XRayNetworkInspector();

// Log inspector
final logInspector = XRayLogInspector();

// Key-value inspectors (optional)
final prefs = await SharedPreferences.getInstance();
final sharedPrefsInspector = XRaySharedPreferencesInspector(prefs: prefs);
final secureStorageInspector = XRaySecureStorageInspector(
  secureStorage: const FlutterSecureStorage(),
);

3. Wire up Dio

import 'package:dio/dio.dart';

final dio = Dio()
  ..interceptors.add(
    XRayNetworkDioInterceptor(inspector: networkInspector),
  );

4. Start the inspector server

final inspectorServer = XRayInspectorServer(
  config: XRayInspectorServerConfig(
    inspectors: [
      networkInspector,
      logInspector,
      sharedPrefsInspector,
      secureStorageInspector,
    ],
  ),
);

await inspectorServer.start();

5. Log messages

logInspector.info('App started');
logInspector.debug('Loading user data');
logInspector.warning('Cache miss');
logInspector.error('Request failed: timeout');

6. Tear down

await inspectorServer.stop();