Flutter实用工具插件junny_utils的使用

Flutter实用工具插件junny_utils的使用

Utils Library

这是一个用于处理常见工具函数和扩展的 Dart 库,旨在为 Flutter 项目提供多种常用功能。此库包含了设备信息、权限管理、文本输入格式化、扩展方法等功能模块,简化开发过程中的常见操作,提高代码的可重用性。

功能模块

1. Device Utilities (device_utils.dart)

提供了设备信息获取、平台判断等常用功能,帮助开发者获取设备的相关信息。

2. Directory Utilities (directory_utils.dart)

包含对文件目录的操作工具,如文件路径管理、文件访问权限检查等。

3. Haptic Feedback Utilities (haptic_util.dart)

提供震动和触觉反馈的相关功能,支持 Android 和 iOS 平台。

4. Package Utilities (package_utils.dart)

一些与包和插件相关的实用工具,简化包的管理与使用。

5. Selected Data Provider (selected_data_provider.dart)

提供一个管理已选数据的类,支持单选、多选模式,支持自定义数据比较器,简化了数据选择和管理。

6. Text Input Formatter Utilities (text_input_formatter_utils.dart)

提供一系列文本输入格式化工具,如小数格式化、禁止输入 Emoji、限制输入字母和数字等。

扩展方法

1. BuildContext Extension (build_context_extension.dart)

BuildContext 添加扩展方法,简化常用的上下文操作。

2. Color Extension (color_extension.dart)

Color 类型添加扩展方法,便于颜色操作和转换。

3. Date Extension (date_extension.dart)

DateTime 添加扩展方法,提供日期格式化、计算等功能。

4. Enum Extension (enum_extension.dart)

enum 类型提供扩展方法,支持枚举值的字符串转换、比较等操作。

5. Function Extension (function_extension.dart)

为函数类型提供扩展,简化函数的使用。

6. IdCard Extension (idcard_extension.dart)

提供身份证号相关的扩展方法,如校验和格式化等。

7. Iterable Extensions (iterable_extensions.dart)

Iterable 类型提供常用的扩展方法,简化对集合的操作。

8. Json Parse Extension (json_parse_extension.dart)

为 JSON 数据解析添加扩展方法,简化 JSON 解析过程。

9. List Extensions (list_extensions.dart)

List 类型提供扩展方法,增强列表操作功能。

10. Map Extensions (map_extensions.dart)

Map 类型提供扩展方法,增强对键值对的操作。

11. MediaQuery Extension (media_query_extension.dart)

MediaQuery 提供扩展方法,简化屏幕适配与布局计算。

12. Num Extension (num_extension.dart)

num 类型提供扩展方法,增强对数字的操作。

13. State Extension (state_extension.dart)

State 提供扩展方法,简化状态管理和刷新操作。

14. String Extension (string_extension.dart)

String 类型添加扩展方法,提供常见字符串操作,如格式化、处理特殊字符等。

安装

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

dependencies:
  junny_utils: ^0.0.1

然后运行 flutter pub get 安装依赖。

导入

import 'package:junny_utils/junny_utils.dart';

示例代码

以下是一个简单的示例,展示了如何使用 junny_utils 中的某些功能模块来简化 Flutter 开发。

示例代码

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Junny Utils Demo'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              // 使用 Device Utilities 获取设备信息
              ElevatedButton(
                onPressed: () async {
                  final deviceInfo = await DeviceUtils.getDeviceInfo();
                  print(deviceInfo);
                },
                child: Text('Get Device Info'),
              ),

              // 使用 Text Input Formatter Utilities 格式化输入
              TextField(
                inputFormatters: [
                  TextInputFormatterUtils.decimalFormat(), // 小数格式化
                ],
                keyboardType: TextInputType.number,
                decoration: InputDecoration(
                  labelText: 'Decimal Input',
                ),
              ),
              
              // 使用 State Extension 简化状态管理
              CounterWidget(),
            ],
          ),
        ),
      ),
    );
  }
}

// 使用 State Extension 简化状态管理的示例
class CounterWidget extends StatefulWidget {
  [@override](/user/override)
  _CounterWidgetState createState() => _CounterWidgetState();
}

class _CounterWidgetState extends State<CounterWidget> with StateExtension {
  int _counter = 0;

  void incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Column(
      children: [
        Text('You have pushed the button this many times:'),
        Text(
          '$_counter',
          style: Theme.of(context).textTheme.headlineMedium,
        ),
        ElevatedButton(
          onPressed: incrementCounter,
          child: Text('Increment'),
        ),
      ],
    );
  }
}

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

1 回复

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


junny_utils 是一个 Flutter 实用工具插件,旨在为开发者提供一系列常用的工具函数和扩展方法,以简化开发流程并提高代码的可读性和可维护性。以下是关于如何使用 junny_utils 插件的详细介绍。

1. 安装插件

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

dependencies:
  flutter:
    sdk: flutter
  junny_utils: ^1.0.0  # 请使用最新版本

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

2. 导入插件

在你的 Dart 文件中导入 junny_utils

import 'package:junny_utils/junny_utils.dart';

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

junny_utils 提供了多种实用工具函数和扩展方法,以下是几个常用的示例:

3.1 字符串操作

void main() {
  String text = "Hello, World!";
  
  // 判断字符串是否为空
  bool isEmpty = text.isEmptyOrNull; // false
  
  // 将字符串转换为小写
  String lowerCaseText = text.toLowerCase(); // "hello, world!"
  
  // 将字符串转换为大写
  String upperCaseText = text.toUpperCase(); // "HELLO, WORLD!"
  
  // 去除字符串两端的空白字符
  String trimmedText = text.trim(); // "Hello, World!"
}

3.2 日期时间操作

void main() {
  DateTime now = DateTime.now();
  
  // 格式化日期时间
  String formattedDate = now.format("yyyy-MM-dd HH:mm:ss"); // "2023-10-01 12:34:56"
  
  // 增加天数
  DateTime futureDate = now.addDays(7);
  
  // 减少天数
  DateTime pastDate = now.subtractDays(7);
}

3.3 数字操作

void main() {
  int number = 42;
  
  // 判断数字是否为偶数
  bool isEven = number.isEven; // true
  
  // 判断数字是否为奇数
  bool isOdd = number.isOdd; // false
  
  // 将数字转换为字符串
  String numberString = number.toString(); // "42"
  
  // 将字符串转换为数字
  int parsedNumber = "42".toInt();
}

3.4 集合操作

void main() {
  List<int> numbers = [1, 2, 3, 4, 5];
  
  // 遍历集合并执行操作
  numbers.forEach((num) => print(num));
  
  // 过滤集合
  List<int> evenNumbers = numbers.where((num) => num.isEven).toList(); // [2, 4]
  
  // 映射集合
  List<String> numberStrings = numbers.map((num) => num.toString()).toList(); // ["1", "2", "3", "4", "5"]
}
回到顶部