dev_tools_screen 0.0.1 copy "dev_tools_screen: ^0.0.1" to clipboard
dev_tools_screen: ^0.0.1 copied to clipboard

A Flutter package that provides a customizable developer tools screen for debugging and testing purposes.

// https://pub.dev/packages/depend
import 'package:depend/depend.dart';
import 'package:dev_tools/dev_tools_screen.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_meganet/env_app_config.dart';
import 'package:flutter_meganet/src/common/dependencies/dependency_container.dart';
import 'package:talker_flutter/talker_flutter.dart';

// Usage Example
class DevToolsButton extends StatelessWidget {
  const DevToolsButton({super.key});

  VoidCallback _openDevTools(BuildContext context) => () {
    DevToolsScreen(
      apiSettings: DevToolsApiSettings(
        apiEndpoints: {
          'Development Api': EnvAppConfig.API_DEV,
          'Staging Api': EnvAppConfig.API_STAG,
          'Production Api': EnvAppConfig.API_PROD,
        },
        onChangeApi: (apiUrl) {
          if (apiUrl == null) return;
          // https://pub.dev/packages/depend
          context.depend<RootContainer>().dio.changeApiUrl(apiUrl);
        },
        initialApi: context.depend<RootContainer>().dio.baseUrl,
      ),
      loggerSettings: DevToolsLoggerSettings(
        onOpenLogger: () {
          Navigator.of(context).push(
            MaterialPageRoute<void>(
              builder: (context) =>
                  TalkerScreen(talker: context.depend<RootContainer>().talker),
            ),
          );
        },
      ),
    ).view(context);
  };

  @override
  Widget build(BuildContext context) {
    if (kReleaseMode) return const SizedBox.shrink();

    return FloatingActionButton(
      backgroundColor: Colors.black,
      onPressed: _openDevTools(context),
      child: const FittedBox(
        child: Text(
          kProfileMode ? 'STG' : 'DBG',
          style: TextStyle(
            color: Colors.white,
            fontWeight: FontWeight.bold,
            fontSize: 20,
          ),
        ),
      ),
    );
  }
}
1
likes
0
points
18
downloads

Publisher

verified publishercontributors.info

Weekly Downloads

A Flutter package that provides a customizable developer tools screen for debugging and testing purposes.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on dev_tools_screen