Flutter实用工具集插件flutter_my_utils的使用

Flutter实用工具集插件flutter_my_utils的使用

Basic Utils

pub package Null Safety License

一个用于解决不同场景下问题的Dart包。

Table of Contents

Preamble

由于该软件包是用纯Dart编写的,因此可以在当前运行Dart的所有平台上使用。这包括使用诸如Flutter、Angular Dart等框架。此软件包也可以用于使用dart2native编译的命令行工具或REST服务。

注意: 欢迎通过创建拉取请求或报告错误、问题和功能请求来贡献。

Install

pubspec.yaml

pubspec.yaml文件中更新并添加以下依赖项:

dependencies:
  flutter_my_utils: ^1.0.0

Import

导入软件包:

import 'package:flutter_my_utils/flutter_my_utils.dart';

Util Classes

该软件包包含不同的类。每个类都包含提供特定问题解决方案的方法。

StringUtils

字符串操作辅助类。

// 示例代码
void main() {
  String result = StringUtils.defaultString(null, defaultStr: '默认值');
  print(result); // 输出:默认值

  bool isEmpty = StringUtils.isNullOrEmpty(''); // 输出:true
  bool isNotEmpty = StringUtils.isNotNullOrEmpty('Hello'); // 输出:true

  String camelToUpper = StringUtils.camelCaseToUpperUnderscore('helloWorld'); // 输出:HELLO_WORLD
  String camelToLower = StringUtils.camelCaseToLowerUnderscore('helloWorld'); // 输出:hello_world
}

DomainUtils

域名操作辅助类。

// 示例代码
void main() {
  bool isValid = DomainUtils.isDomainName('example.com'); // 输出:true
  List<String> parts = DomainUtils.splitDomainName('example.com'); // 输出:['example', 'com']
}

EmailUtils

电子邮件地址操作辅助类。

// 示例代码
void main() {
  bool isValid = EmailUtils.isEmail('test@example.com'); // 输出:true
  EmailAddress? email = EmailUtils.parseEmailAddress('test@example.com'); // 输出:EmailAddress对象
}

MathUtils

简单的数学运算辅助类,如计算圆周长或转换长度单位。

// 示例代码
void main() {
  double circumference = MathUtils.calculateCircumference(5); // 计算半径为5的圆的周长
  double area = MathUtils.calculateCircularArea(5); // 计算半径为5的圆的面积
  double diameter = MathUtils.calculateCircleDiameter(5); // 计算半径为5的圆的直径
}

HttpUtils

简单的HTTP操作辅助类,如发送请求。

// 示例代码
void main() async {
  Map<String, dynamic> response = await HttpUtils.getForJson('https://jsonplaceholder.typicode.com/todos/1');
  print(response); // 输出:请求的结果
}

DnsUtils

查找资源记录的辅助类。使用Google DNS解析器API。

// 示例代码
void main() async {
  List<RRecord>? records = await DnsUtils.lookupRecord('google.com', RRecordType.A);
  print(records); // 输出:查找结果
}

SortUtils

列表排序辅助类。实现不同的排序算法。

// 示例代码
void main() {
  List<int> list = [5, 3, 8, 1, 2];
  List<int> sorted = SortUtils.quickSort(list);
  print(sorted); // 输出:[1, 2, 3, 5, 8]
}

ColorUtils

颜色操作辅助类。

// 示例代码
void main() {
  int hexValue = ColorUtils.hexToInt('#FFFFFF'); // 将十六进制颜色转换为整数
  String hex = ColorUtils.intToHex(hexValue); // 将整数转换回十六进制颜色
  bool isDark = ColorUtils.isDark(hex); // 判断颜色是否为深色
}

DateUtils

日期操作辅助类,如将文本日期转换为日期对象。

// 示例代码
void main() {
  DateTime date = DateUtils.stringToDateTime('2023-10-01');
  print(date); // 输出:2023-10-01 00:00:00.000
}

X509Utils

X509证书操作辅助类,如生成CSR和许多其他操作。

// 示例代码
void main() async {
  String pem = await X509Utils.generateRsaCsrPem({'CN': 'example.com'}, privateKey, publicKey);
  print(pem); // 输出:生成的PEM格式的CSR
}

IterableUtils

可迭代对象操作辅助类。

// 示例代码
void main() {
  List<int> numbers = [1, 2, 3, 4, 5];
  List<List<int>> chunks = IterableUtils.chunk(numbers, 2);
  print(chunks); // 输出:[[1, 2], [3, 4], [5]]
}

CryptoUtils

加密操作辅助类。这是Pointycastle和asn1lib的高级API。

// 示例代码
void main() async {
  AsymmetricKeyPair keyPair = CryptoUtils.generateRSAKeyPair(keySize: 2048);
  RSAPrivateKey privateKey = keyPair.privateKey;
  RSAPublicKey publicKey = keyPair.publicKey;

  String encrypted = CryptoUtils.rsaEncrypt('Hello', publicKey);
  String decrypted = CryptoUtils.rsaDecrypt(encrypted, privateKey);
  print(decrypted); // 输出:Hello
}

ASN1Utils

ASN1对象操作辅助类。

// 示例代码
void main() async {
  String dump = ASN1Utils.dump('-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----');
  print(dump); // 输出:PEM格式证书的详细信息
}

EnumUtils

枚举操作辅助类。

// 示例代码
void main() {
  enum MyEnum { ONE, TWO, THREE }
  List<MyEnum> enumList = [MyEnum.ONE, MyEnum.TWO, MyEnum.THREE];

  MyEnum selected = EnumUtils.getEnum('ONE', enumList, MyEnum.ONE); // 获取枚举值
  print(selected); // 输出:MyEnum.ONE
}

BooleanUtils

布尔值操作辅助类。

// 示例代码
void main() {
  bool andResult = BooleanUtils.and([true, false]); // 逻辑与
  bool orResult = BooleanUtils.or([true, false]); // 逻辑或
  bool xorResult = BooleanUtils.xor([true, false]); // 逻辑异或
}

FunctionDefs

各种函数原型定义辅助类。

// 示例代码
void main() {
  BiConsumer<String, int> consumer = (String key, int value) => print('$key: $value');
  BiFunction<String, int, bool> func = (String key, int value) => key.length > value;
}

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

1 回复

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


flutter_my_utils 是一个 Flutter 实用工具集插件,旨在为开发者提供一些常用的工具函数和扩展方法,以提高开发效率。这个插件可能包含字符串处理、日期格式化、设备信息获取、网络请求封装等功能。由于 flutter_my_utils 并不是 Flutter 官方或广泛使用的插件,这里假设它是一个自定义插件,我将为你介绍一般如何使用类似的实用工具集插件。

1. 安装插件

首先,你需要在 pubspec.yaml 文件中添加依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_my_utils: ^1.0.0  # 请根据实际版本号进行修改

然后运行 flutter pub get 来安装插件。

2. 导入插件

在你的 Dart 文件中导入插件:

import 'package:flutter_my_utils/flutter_my_utils.dart';

3. 使用插件提供的工具函数

假设 flutter_my_utils 提供了一些常用的工具函数,比如字符串处理、日期格式化等,你可以像下面这样使用它们:

3.1 字符串处理

String str = "Hello, World!";
String reversedStr = MyStringUtils.reverse(str);
print(reversedStr);  // 输出: !dlroW ,olleH

3.2 日期格式化

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

3.3 设备信息获取

String deviceModel = MyDeviceUtils.getDeviceModel();
print(deviceModel);  // 输出: iPhone 12

3.4 网络请求封装

MyHttpUtils.get("https://api.example.com/data").then((response) {
  print(response.body);
}).catchError((error) {
  print("Error: $error");
});

4. 使用插件提供的扩展方法

一些实用工具集插件可能会为 Dart 的内置类提供扩展方法,比如为 StringList 添加新的方法。

4.1 字符串扩展方法

String str = "hello world";
String capitalizedStr = str.capitalize();  // 假设插件提供了 capitalize 方法
print(capitalizedStr);  // 输出: Hello world

4.2 列表扩展方法

List<int> numbers = [1, 2, 3, 4, 5];
List<int> squaredNumbers = numbers.map((number) => number * number).toList();
print(squaredNumbers);  // 输出: [1, 4, 9, 16, 25]

5. 自定义工具函数

如果 flutter_my_utils 允许你自定义工具函数,你可以根据项目需求添加自己的工具函数。

class MyCustomUtils {
  static String customFunction(String input) {
    return "Custom: $input";
  }
}

void main() {
  String result = MyCustomUtils.customFunction("Test");
  print(result);  // 输出: Custom: Test
}
回到顶部