flutter_network_logger_overlay 1.0.0
flutter_network_logger_overlay: ^1.0.0 copied to clipboard
In-app floating developer drawer widget for inspecting, filtering, replaying, and exporting live HTTP network requests inside running Flutter apps.
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:flutter_network_logger_overlay/flutter_network_logger_overlay.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Network Logger Overlay Demo',
theme: ThemeData.dark(useMaterial3: true),
home: const NetworkLoggerOverlay(
child: LoggerHomeScreen(),
),
);
}
}
class LoggerHomeScreen extends StatefulWidget {
const LoggerHomeScreen({super.key});
@override
State<LoggerHomeScreen> createState() => _LoggerHomeScreenState();
}
class _LoggerHomeScreenState extends State<LoggerHomeScreen> {
late final NetworkLoggerHttpAdapter _client;
@override
void initState() {
super.initState();
_client = NetworkLoggerHttpAdapter(http.Client());
}
Future<void> _fetchPosts() async {
await _client.get(Uri.parse('https://jsonplaceholder.typicode.com/posts/1'));
}
Future<void> _triggerError() async {
try {
await _client.get(Uri.parse('https://jsonplaceholder.typicode.com/invalid-endpoint-404'));
} catch (_) {}
}
@override
void dispose() {
_client.close();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('flutter_network_logger_overlay Demo')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text('Tap the floating network badge in the top-left!'),
const SizedBox(height: 24),
ElevatedButton(
onPressed: _fetchPosts,
child: const Text('Send HTTP GET Request (200 OK)'),
),
const SizedBox(height: 12),
ElevatedButton(
onPressed: _triggerError,
child: const Text('Send HTTP GET Request (404 Error)'),
),
],
),
),
);
}
}