Flutter通用工具插件common_utilities的使用

Flutter通用工具插件common_utilities的使用

一个Dart语言的通用工具包,它可以使你的代码更快、更简单、更整洁。该工具包包含了大量的对Dart基础类型(支持所有Flutter平台)有用的函数。

特性

  • 字符串:超过30个有用的字符串实用函数。

待办事项(下一版本)

  • 添加数字(int, double, num, BigInt)实用函数。
  • 添加布尔值(bool)实用函数。
  • 添加列表(List)实用函数。

备注

版本 0.1.1:仅包含字符串实用函数。

使用方法

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

dependencies:
  common_utilities: ^0.1.1

或者在命令行中输入:

flutter pub add common_utilities

字符串实用函数

包括超过30个有用的字符串函数,如:

  1. subStringBetween
  2. subStringsBetween
  3. subStringAfter
  4. subStringBefore
  5. insertAt
  6. removeAt
  7. insertAfter
  8. insertAfterEvery
  9. removeAfter
  10. removeBefore
  11. isNumericInt
  12. isNumericDouble
  13. isAlphabetic
  14. isUpperCase
  15. isAlphaNumeric
  16. isBlank
  17. isContainSpecialChar
  18. isValidCharacters
  19. convertEnglishNumberToPersian
  20. convertPersianNumberToEnglish
  21. convertToMoneyFormat
  22. countWords
  23. countLines
  24. reverse
  25. reverseWords
  26. removeBlankLines
  27. removeLinesThatContain
  28. isEmail
  29. convertToBase64
  30. convertBase64ToString
  31. convertToUTF8
  32. wrap
  33. isValidUrl

如何使用

示例:StringUtils 的用法

import 'package:common_utilities/common_utilities.dart';

void main() {
  String yourStr = 'If you want something you have never had you must do something you have never done';

  // 获取 'want' 和 'never' 之间的子字符串
  String result = yourStr.stringUtils().subStringBetween('want', 'never');
  // 输出结果为 'something you have'

  // 获取 'you' 和 'never' 之间的所有子字符串
  List<String> result2 = yourStr.stringUtils().subStringsBetween('you', 'never');
  // 输出结果为 ['something you have', 'must do something you have']

  // 获取 'something' 后面的所有字符
  String result3 = yourStr.stringUtils().subStringAfter('something');
  // 输出结果为 'you have never had you must do something you have never done'

  // 获取 'something' 后面的所有字符,从最后一个 'something' 开始
  bool lastIndex = true; // 这是一个可选参数,默认为 false
  String result4 = yourStr.stringUtils().subStringAfter('something', lastIndex);
  // 输出结果为 'you have never done'

  // 生成一个随机字符串
  String str = CommonUtils.getRandomString(10);
  // 输出结果为类似 'btorklcvxw' 的字符串
}

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

1 回复

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


当然,common_utilities 是一个假想的 Flutter 插件名称,用于说明通用工具函数的使用。在实际 Flutter 开发中,可能没有一个确切名为 common_utilities 的官方插件,但我们可以构想一个包含常用工具函数的插件,并展示如何使用它。

假设我们有一个自定义的 common_utilities 插件,它包含了一些常用的工具函数,比如字符串处理、日期格式化、设备信息获取等。下面是一个简单的实现示例以及如何在 Flutter 应用中使用它。

1. 自定义 common_utilities 插件(伪代码)

首先,我们需要在插件中定义这些工具函数。在实际开发中,这通常涉及创建一个 Flutter 插件项目,并编写 Dart 代码。

lib/common_utilities.dart

library common_utilities;

import 'dart:convert';
import 'dart:ui' as ui;
import 'package:flutter/foundation.dart';
import 'package:intl/intl.dart';

class CommonUtilities {
  // 字符串处理:首字母大写
  static String capitalizeFirstLetter(String input) {
    if (input == null || input.isEmpty) return input;
    return '${input[0].toUpperCase()}${input.substring(1)}';
  }

  // 日期格式化
  static String formatDate(DateTime date, String pattern) {
    return DateFormat(pattern).format(date);
  }

  // 获取设备信息:屏幕大小
  static Size getScreenSize() {
    return ui.window.physicalSize / ui.window.devicePixelRatio;
  }

  // JSON字符串转Map
  static Map<String, dynamic> jsonToMap(String jsonString) {
    return jsonDecode(jsonString) as Map<String, dynamic>;
  }
}

2. 在 Flutter 应用中使用 common_utilities 插件

接下来,我们需要在 Flutter 应用中引入并使用这个插件。

pubspec.yaml

首先,在 pubspec.yaml 文件中添加对 common_utilities 插件的依赖(假设它已发布到 pub.dev)。但在这个例子中,因为它是自定义的,我们需要通过本地路径引入。

dependencies:
  flutter:
    sdk: flutter
  common_utilities:
    path: ../path/to/common_utilities  # 替换为实际路径

lib/main.dart

然后,在 main.dart 文件中使用这些工具函数。

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Common Utilities Demo'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                'Capitalized: ${CommonUtilities.capitalizeFirstLetter("hello world")}',
                style: TextStyle(fontSize: 20),
              ),
              SizedBox(height: 20),
              Text(
                'Formatted Date: ${CommonUtilities.formatDate(DateTime.now(), "yyyy-MM-dd HH:mm:ss")}',
                style: TextStyle(fontSize: 20),
              ),
              SizedBox(height: 20),
              Text(
                'Screen Size: ${CommonUtilities.getScreenSize()}',
                style: TextStyle(fontSize: 20),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

注意事项

  1. 插件开发:在实际开发中,创建和发布 Flutter 插件需要遵循 Flutter 插件开发的官方指南。
  2. 依赖管理:如果插件已发布到 pub.dev,则只需在 pubspec.yaml 中添加依赖项的名称和版本号即可。
  3. 错误处理:在生产代码中,应添加适当的错误处理,以确保工具函数的健壮性。

以上示例展示了如何构想和实现一个自定义的 common_utilities 插件,并在 Flutter 应用中使用它。希望这对你有所帮助!

回到顶部