corin 0.1.2 copy "corin: ^0.1.2" to clipboard
corin: ^0.1.2 copied to clipboard

A powerful devtool includes device informations, developer log, etc.

example/lib/main.dart

// ignore: depend_on_referenced_packages
import 'package:corin/corin.dart';
// ignore: depend_on_referenced_packages
import 'package:corin_dio/corin_dio.dart';
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

final _navigatorKey = GlobalKey<NavigatorState>();
final dio = Dio();

class TestTool extends ToolBase {
  @override
  String get name => 'Test';

  @override
  Widget build() => Center(child: FlutterLogo());
}

class TestTool2 extends ToolBase {
  @override
  String get name => 'Test2';

  @override
  Widget build() => Center(child: FlutterLogo());
}

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  if (kDebugMode) {
    CorinDev.addApp(CorinDio());
    CorinDev.addApp(TestTool());
    CorinDev.addApp(TestTool2());
    dio.interceptors.add(CorinNetworkInterceptor());
    FlutterError.onError = (detail) {
      CorinDev.logFlutterError(detail);
      FlutterError.dumpErrorToConsole(detail);
    };

    PlatformDispatcher.instance.onError = (error, stack) {
      CorinDev.logPlatformError(error, stack);
      return true;
    };
  }

  runApp(const MyApp());
}

void log(
  String message, {
  String tag = 'log',
  Object? error,
  StackTrace? st,
  LogLevel level = LogLevel.info,
}) {
  if (kDebugMode) {
    CorinDev.log(
      LogRecord(
        message: message,
        tag: tag,
        error: error,
        level: level,
        stackTrace: st,
      ),
    );
  }
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Corin Demo',
      theme: ThemeData.light(),
      darkTheme: ThemeData.dark(),
      navigatorKey: _navigatorKey,
      builder: kDebugMode ? corinBuilder : null,
      home: HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Corin Demo')),
      body: ListView(
        children: [
          ListTile(
            title: Text('Network'),
            onTap: () {
              dio.get(
                'http://127.0.0.1',
                data: {
                  'map': {'a': 'a', 'b': '2'},
                  'number': 12.4,
                  'boolean': false,
                  'nullable': null,
                  'list': [1, 2, 3, 4],
                },
              );
              dio.get('https://6548b574dd8ebcd4ab236f5b.mockapi.io/111');
              dio.get(
                'https://pub.flutter-io.cn/static/hash-krgcpa0o/img/supported-by-google-2x.png',
                options: Options(responseType: ResponseType.bytes),
              );
              dio.get('https://surl.amap.com/12gPXAJF8es');
              dio.get('https://www.baidu.com/ajwiefnauwenfaewfi?of=a&awef=b');
              final form = FormData.fromMap({
                'name': 'John',
                'age': 20,
                'file': MultipartFile.fromString(
                  'value',
                  filename: 'a.txt',
                  contentType: DioMediaType.parse('plain/text'),
                ),
              });
              dio.post('http://192.168.15.111', data: form);
            },
          ),
          ListTile(
            title: Text('Log'),
            onTap: () {
              log('message', tag: 'test');
              log('msg');
              log('success', level: LogLevel.fine);
              log(
                'error msg',
                level: LogLevel.severe,
                error: Exception('error'),
                st: StackTrace.current,
              );
            },
          ),
          ListTile(
            title: Text('Error'),
            onTap: () {
              throw UnimplementedError();
            },
          ),
          ListTile(
            title: Text('Event'),
            onTap: () {
              CorinDev.event(
                name: 'wnargbnim',
                params: Map.fromEntries(
                  List.generate(32, (i) => MapEntry(i.toString(), '$i')),
                ),
                extra: {'extra': 'extra'},
              );
            },
          ),
        ],
      ),
    );
  }
}
0
likes
140
points
17
downloads

Publisher

unverified uploader

Weekly Downloads

A powerful devtool includes device informations, developer log, etc.

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

flutter, intl, stack_trace, two_dimensional_scrollables

More

Packages that depend on corin