Flutter通用工具插件comm_utils的使用

Flutter通用工具插件comm_utils的使用

公共工具类(包括HTTP网络请求封装和公共工具类)

1. HTTP网络请求
dependencies:
   dio: ^4.0.6
   comm_utils: ^0.0.1

/// 初始化工具
await XUtils.get.init(debug: kDebugMode);

/// 初始化网络
var config = HttpConfig("https://xxx", ThrowHandler());
var httpClient = HttpServer(config);

/// 创建数据仓库
Get.lazyPut(fenix: true, () => ApiRepository(httpClient));
2. 公共工具
  • color_utils: 颜色工具类,主要用于字符串到颜色的转换。
  • date_utils: 日期工具类,用于获取日期时间,并在不同时间之间进行数据转换。
  • encrypt_utils: 加密解密工具类,主要用于MD5加密、Base64加密解密、XOR加密解密等。
  • json_utils: JSON转换工具类,主要负责列表、映射、对象与JSON之间的转换。
  • money_utils: 货币符号工具类,主要用于货币转换和格式化。
  • num_utils: 数字格式工具类,主要用于数字相关的处理和转换操作。
  • random_utils: 随机数工具类,主要用于生成随机字符串和数字。
  • regex_utils: 正则表达式工具类,主要用于电话、身份证、电子邮件、IP、网络等验证。
  • sp_utils: SP存储工具类。适合存储轻量级数据。不建议存储长JSON字符串。
  • status_bar_utils: 状态栏工具类。
  • system_utils: 系统工具类,用于复制内容到剪贴板、弹出和关闭软键盘、清除数据等。
  • text_utils: 文本工具类,主要用于处理字符串缩进。
  • timer_utils: 定时器工具类,用于设置总的倒计时时间和间隔等。
  • xlog: 日志输出工具类。
3. 扩展函数
  • k_double: 双精度扩展,包括千米和米的转换。
  • k_object: 对象扩展,用于判断对象是否为空。
  • k_widget: 小部件扩展,包括点击事件、防重复点击、双击退出、控制是否显示等。

示例代码

import 'package:comm_utils/app_config.dart';
import 'package:comm_utils/export_khttp.dart';
import 'package:comm_utils/module/language/klanguage_utils.dart';
import 'package:comm_utils/module/language/language_vo.dart';
import 'package:example/http/api_repository.dart';
import 'package:example/http/throw_handler.dart';
import 'package:example/init_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitDown,
    DeviceOrientation.portraitUp,
  ]);

  /// 初始化全局配置
  await AppConfig.init(() {
    /// 初始化网络
    var config = KHttpConfig("https://consumer.maxspos.com", ThrowHandler());
    var httpClient = KHttpServer(config);

    /// 创建数据仓库
    Get.lazyPut(fenix: true, () => ApiRepository(httpClient));

    /// 添加多语言
    KLanguageUtils.get.initLanguage(
        [LanguageVo.toSystem(), LanguageVo.toEn(), LanguageVo.toCN()]);
  });

  /// 会有警告,先去掉
  // runZonedGuarded<Future<void>>(() async {
  //   var onError = FlutterError.onError; // 先将 onerror 保存起来
  //   FlutterError.onError = (FlutterErrorDetails details) {
  //     onError?.call(details); // 调用默认的onError
  //   };
  runApp(const InitPage());
  // }, (error, stack) => KLog.e(error.toString()));
}

更多关于Flutter通用工具插件comm_utils的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter通用工具插件comm_utils的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


comm_utils 是一个 Flutter 通用工具插件,通常用于简化常见的开发任务,如字符串处理、日期格式化、网络请求、数据持久化等。以下是如何在 Flutter 项目中使用 comm_utils 插件的步骤和示例。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 comm_utils 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  comm_utils: ^latest_version

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

2. 导入包

在你的 Dart 文件中导入 comm_utils

import 'package:comm_utils/comm_utils.dart';

3. 使用 comm_utils 的功能

comm_utils 提供了多种实用工具,以下是一些常见的用法示例:

3.1 字符串处理

String str = "Hello, World!";
print(StringUtils.capitalize(str)); // 输出: Hello, world!

3.2 日期格式化

DateTime now = DateTime.now();
print(DateUtils.formatDate(now, 'yyyy-MM-dd HH:mm:ss')); // 输出: 2023-10-05 14:30:45

3.3 网络请求

void fetchData() async {
  var response = await NetworkUtils.get('https://jsonplaceholder.typicode.com/posts');
  print(response);
}

3.4 数据持久化

void saveData() async {
  await StorageUtils.saveString('key', 'value');
  String value = await StorageUtils.getString('key');
  print(value); // 输出: value
}

3.5 设备信息

void getDeviceInfo() async {
  String deviceId = await DeviceUtils.getDeviceId();
  print('Device ID: $deviceId');
}

3.6 日志记录

LoggerUtils.log('This is a log message');
LoggerUtils.error('This is an error message');

4. 自定义配置

某些工具类可能允许你进行自定义配置。例如,LoggerUtils 可能允许你设置日志级别。

LoggerUtils.setLogLevel(LogLevel.debug);
回到顶部