---
title: Quick Start
description: 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`:

```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):

```dart
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

```dart
import 'package:dio/dio.dart';

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

## 4. Start the inspector server

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

await inspectorServer.start();
```

## 5. Log messages

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

## 6. Tear down

```dart
await inspectorServer.stop();
```
