Flutter状态打印插件gg_status_printer的使用

发布于 1周前 作者 eggper 来自 Flutter

Flutter状态打印插件gg_status_printer的使用

描述

GgStatusPrinter 是一个 Dart 包装器,旨在增强用户在异步操作执行期间的反馈。虽然 Dart 使用 Future 而不是 Promise,但概念是相似的。此包旨在简化通知用户关于这些异步操作状态的过程。

在启动异步操作时,提供即时反馈给用户,表示操作已经开始。GgStatusPrinter 通过自动显示带有“⌛️”(小时玻璃)表情符号的临时消息来处理这一点,表明操作正在进行中。

一旦操作完成,该包会根据操作的结果更新反馈。如果操作成功,它会显示带有“✅”(检查标记)的消息,表示成功。相反,如果操作遇到错误或失败,它会显示带有“❌”(交叉标记)的消息,表示失败。

此包简化了为异步操作提供实时、友好的反馈过程,通过保持用户对后台任务状态的了解来增强整体用户体验。

特性

  • 自动开始反馈:自动打印带有“⌛️”的消息以指示操作的开始。
  • 成功通知:在异步操作成功完成后,打印带有“✅”的消息。
  • 错误通知:在失败时,打印带有“❌”的消息。
  • 自定义消息:允许自定义初始、成功和错误消息以适应不同应用程序的需求。
  • 易于集成:设计用于轻松集成到现有的 Dart 项目中,配置简单。

工作原理

  1. 初始化:将 GgStatusPrinter 包导入到您的 Dart 项目中。
  2. 包裹异步操作:使用 GgStatusPrinter 包裹任何异步操作,提供描述操作的消息。
  3. 自动通知:包自动处理根据操作状态打印适当消息的操作,无需手动干预。

示例用法

import 'package:gg_status_printer/gg_status_printer.dart';

void main() async {
  print('\nPrint all states one the same line');
  // ⌛️✅ Loading data
  await const GgStatusPrinter<void>(
    message: 'Loading data',
    useCarriageReturn: true,
  ).run(() => Future<void>.delayed(const Duration(seconds: 1)));

  print('\nPrint all states on different lines');
  // ⌛️ Loading data
  // ✅ Loading data
  await const GgStatusPrinter<void>(
    message: 'Loading data',
    useCarriageReturn: false,
  ).run(() => Future<void>.delayed(const Duration(seconds: 1)));

  print('\nPrint fail states');
  // ⌛️ Loading data
  // ❌ Loading data

  try {
    await const GgStatusPrinter<void>(
      message: 'Loading data',
      useCarriageReturn: false,
    ).run(
      () => Future<void>.delayed(const Duration(seconds: 1))
          .then((_) => throw Exception('Failed')),
    );
  } catch (_) {}
}

示例代码

#!/usr/bin/env dart
// [@license](/user/license)
// Copyright (c) 2019 - 2024 Dr. Gabriel Gatzsche. All Rights Reserved.
//
// Use of this source code is governed by terms that can be
// found in the LICENSE file in the root of this package.

import 'package:gg_status_printer/gg_status_printer.dart';

void main() async {
  print('\nPrint all states one the same line');
  // ⌛️✅ Loading data
  await GgStatusPrinter<void>(
    message: 'Loading data',
    useCarriageReturn: true,
  ).run(() => Future<void>.delayed(const Duration(seconds: 1)));

  print('\nPrint all states on different lines');
  // ⌛️ Loading data
  // ✅ Loading data
  await GgStatusPrinter<void>(
    message: 'Loading data',
    useCarriageReturn: false,
  ).run(() => Future<void>.delayed(const Duration(seconds: ));

  print('\nPrint fail states');
  // ⌛️ Loading data
  // ❌ Loading data

  try {
    await GgStatusPrinter<void>(
      message: 'Loading data',
      useCarriageReturn: false,
    ).run(
      () => Future<void>.delayed(const Duration(seconds: ))
          .then((_) => throw Exception('Failed')),
    );
  } catch (_) {}
}

更多关于Flutter状态打印插件gg_status_printer的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter状态打印插件gg_status_printer的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用gg_status_printer插件来进行状态打印的一个示例代码案例。gg_status_printer是一个方便的状态管理调试工具,它可以帮助开发者在开发过程中打印和监控应用的状态。

首先,确保你已经在pubspec.yaml文件中添加了gg_status_printer依赖:

dependencies:
  flutter:
    sdk: flutter
  gg_status_printer: ^最新版本号  # 替换为最新的版本号

然后,运行flutter pub get来获取依赖。

接下来,在你的Flutter应用中,你可以按照以下步骤使用gg_status_printer

  1. 初始化GGStatusPrinter

在你的主文件(通常是main.dart)中,初始化GGStatusPrinter

import 'package:flutter/material.dart';
import 'package:gg_status_printer/gg_status_printer.dart';

void main() {
  // 初始化GGStatusPrinter
  GGStatusPrinter.init(
    enable: true, // 是否启用状态打印
    // 可选:设置日志级别
    logLevel: GGStatusPrinterLogLevel.verbose,
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}
  1. 使用GGStatusPrinter打印状态

在你的业务逻辑中,你可以使用GGStatusPrinter的方法来打印状态。例如,在一个按钮点击事件中打印一些状态信息:

import 'package:flutter/material.dart';
import 'package:gg_status_printer/gg_status_printer.dart';

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
      // 打印状态信息
      GGStatusPrinter.printStatus('Counter Value: $_counter');
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Demo Home Page'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ),
    );
  }
}

在上面的代码中,每当点击浮动按钮时,计数器值会增加,并且会通过GGStatusPrinter.printStatus方法打印当前计数器的值。

  1. 查看日志输出

运行你的Flutter应用,并在你的开发工具的控制台(通常是命令行界面或者IDE的控制台窗口)中查看输出的状态信息。

这样,你就成功地在Flutter项目中使用gg_status_printer插件来打印和监控状态了。根据项目的需要,你可以在不同的位置调用GGStatusPrinter.printStatus方法来打印更多的状态信息,以便更好地进行调试和开发。

回到顶部