debug_dot 0.0.2  debug_dot: ^0.0.2 copied to clipboard
debug_dot: ^0.0.2 copied to clipboard
A Flutter package that provides a floating debug dot for easy access to development tools and debug options during app development.
debug_dot #
A Flutter package that provides a floating debug dot for easy access to development tools and debug options during app development.
Features #
- Floating Debug Dot: A draggable bug icon that floats on your app screen
- Customizable Debug Menu: Add your own debug menu items with custom actions
- Easy Integration: Simply wrap your app with the DebugDotwidget
Screenshots #
 
 
Usage #
Basic Usage #
Wrap your app with the DebugDot widget and provide a list of debug menu items:
import 'package:debug_dot/debug_dot.dart';
import 'package:flutter/material.dart';
void main() {
  runApp(
    const DebugDot(
      menus: [
        YourDebugMenuA(),
        YourDebugMenuB(),
        RemoveDebugDotDebugMenu(), // Built-in menu to remove the debug dot
      ],
      child: MyApp(),
    ),
  );
}
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'My App',
      home: MyHomePage(),
    );
  }
}
Custom Debug Menu Items #
Create custom debug menu items by extending the DebugMenu class:
class SnackBarDebugMenu extends DebugMenu {
  @override
  String get title => 'Show SnackBar';
  @override
  IconData? get icon => Icons.message;
  const SnackBarDebugMenu();
  @override
  Route? onTap(BuildContext context) {
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(content: Text('Debug message!')),
    );
    return null; // Return null for actions that don't navigate
  }
}
class DebugPageMenu extends DebugMenu {
  @override
  String get title => 'Debug Settings';
  @override
  IconData? get icon => Icons.settings;
  const DebugPageMenu();
  @override
  Route? onTap(BuildContext context) {
    return MaterialPageRoute(
      builder: (context) => DebugSettingsPage(),
    );
  }
}
Development #
This package is designed specifically for development and debugging purposes. Consider removing or conditionally including the debug dot in production builds:
Widget buildApp() {
  if (kDebugMode) {
    return DebugDot(
      menus: [...],
      child: MyApp(),
    );
  }
  return MyApp();
}