Flutter核心工具集插件nd_core_utils的功能使用

Flutter核心工具集插件nd_core_utils的功能使用

nd_core_utils 是一个用于 Dart 核心的小型实用库。

1. NDClosureIterable 和 NDClosureIterator

NDClosureIterableNDClosureIterator 可以帮助我们通过闭包来创建可迭代对象和迭代器。

var iterable = NDClosureIterable(get: () => MyIterator());
var iterator = NDClosureIterator(
    current: () {
        // 返回当前值
    },
    moveNext() {
        // 移动到下一个元素
        // 返回结果
    }
);

2. Iteratable

2.1 notNull

notNull 方法可以过滤掉可迭代对象中的 null 值。

final Iterable<int?> it = [1, null, 2];
print(it.notNull()); 
// 输出: [1, 2]

2.2 insertSeparator

insertSeparator 方法可以在每个元素之间插入分隔符。

final Iterable<int> it = [1, 2, 3];
print(it.insertSeparator(100)); 
// 输出: [1, 100, 2, 100, 3]

3. List

3.1 notNullInsertSeparator

notNullInsertSeparator 方法可以在列表中插入分隔符,并过滤掉 null 值。

final List<int?> list = [1, null, 3];
print(list.notNullInsertSeparator(100)); 
// 输出: [1, 100, 3]

完整示例代码

以下是一个完整的示例代码,展示了如何使用这些功能。

// ignore_for_file: avoid_print

import 'package:nd_core_utils/nd_core_utils.dart';

void main() {
  // 创建一个包含数字的列表
  var list = [1, 3, 2, 4];

  // 使用 NDClosureIterable 和 NDClosureIterator
  var it2 = NDClosureIterable(get: () {
    final it = list.iterator;
    return NDClosureIterator(
        current: () => it.current * 2, // 将每个元素乘以2
        moveNext: () => it.moveNext()); // 移动到下一个元素
  });

  // 打印结果
  print(it2); // 输出: [2, 6, 4, 8]
}

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

1 回复

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


nd_core_utils 是一个 Flutter 核心工具集插件,旨在为开发者提供一系列常用的工具和功能,以简化开发过程和提升代码质量。以下是 nd_core_utils 插件的主要功能及其使用方法的详细介绍:

1. 日志记录 (Logging)

  • 功能: 提供简单易用的日志记录工具,支持不同日志级别(如 debuginfowarningerror)。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    
    void main() {
      NdLogger logger = NdLogger();
      logger.debug('This is a debug message');
      logger.info('This is an info message');
      logger.warning('This is a warning message');
      logger.error('This is an error message');
    }
    

2. 网络请求 (Network Utils)

  • 功能: 简化网络请求的处理,支持 GETPOSTPUTDELETE 等常见 HTTP 方法。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    
    void main() async {
      NetworkUtils networkUtils = NetworkUtils();
      var response = await networkUtils.get('https://jsonplaceholder.typicode.com/posts/1');
      print(response.body);
    }
    

3. 本地存储 (Local Storage)

  • 功能: 提供简单的键值对存储功能,支持 SharedPreferences 的封装。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    
    void main() async {
      LocalStorage localStorage = LocalStorage();
      await localStorage.saveString('key', 'value');
      String? value = await localStorage.getString('key');
      print(value);
    }
    

4. 日期时间处理 (Date and Time Utilities)

  • 功能: 提供日期和时间的格式化、解析、比较等常用操作。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    
    void main() {
      DateTime now = DateTime.now();
      String formattedDate = DateUtils.formatDate(now, 'yyyy-MM-dd');
      print(formattedDate);
    }
    

5. 字符串处理 (String Utilities)

  • 功能: 提供字符串的常用操作,如空值检查、截取、格式化等。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    
    void main() {
      String? str = 'Hello, World!';
      if (StringUtils.isNullOrEmpty(str)) {
        print('String is null or empty');
      } else {
        print('String is not null or empty');
      }
    }
    

6. 设备信息 (Device Info)

  • 功能: 获取当前设备的详细信息,如设备型号、操作系统版本等。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    
    void main() async {
      DeviceInfo deviceInfo = DeviceInfo();
      String deviceModel = await deviceInfo.getDeviceModel();
      print('Device Model: $deviceModel');
    }
    

7. 文件处理 (File Utilities)

  • 功能: 提供文件的读写、删除、复制等常用操作。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    
    void main() async {
      FileUtils fileUtils = FileUtils();
      await fileUtils.writeFile('example.txt', 'Hello, World!');
      String content = await fileUtils.readFile('example.txt');
      print(content);
    }
    

8. 权限管理 (Permission Utils)

  • 功能: 简化权限请求和管理,支持常见的权限类型(如相机、存储、位置等)。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    
    void main() async {
      PermissionUtils permissionUtils = PermissionUtils();
      bool granted = await permissionUtils.requestCameraPermission();
      if (granted) {
        print('Camera permission granted');
      } else {
        print('Camera permission denied');
      }
    }
    

9. 主题管理 (Theme Utils)

  • 功能: 提供主题的管理和切换功能,支持动态切换应用主题。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    import 'package:flutter/material.dart';
    
    void main() {
      ThemeUtils themeUtils = ThemeUtils();
      themeUtils.setTheme(ThemeData.light());
      ThemeData currentTheme = themeUtils.getCurrentTheme();
      print('Current Theme: $currentTheme');
    }
    

10. 国际化 (Localization Utils)

  • 功能: 简化国际化处理,支持多语言切换和文本翻译。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    
    void main() {
      LocalizationUtils localizationUtils = LocalizationUtils();
      localizationUtils.setLocale('en');
      String translatedText = localizationUtils.translate('hello');
      print(translatedText);
    }
    

11. 动画工具 (Animation Utils)

  • 功能: 提供常用的动画效果和工具,简化动画的实现。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    import 'package:flutter/material.dart';
    
    void main() {
      AnimationUtils animationUtils = AnimationUtils();
      AnimationController controller = animationUtils.createAnimationController(duration: Duration(seconds: 2));
      Animation<double> animation = animationUtils.createTweenAnimation(begin: 0.0, end: 1.0, controller: controller);
      controller.forward();
    }
    

12. 状态管理 (State Management Utils)

  • 功能: 提供简单的状态管理工具,支持响应式数据绑定和状态更新。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    
    void main() {
      StateManagementUtils stateUtils = StateManagementUtils();
      stateUtils.setValue('counter', 0);
      int counter = stateUtils.getValue('counter');
      print('Counter: $counter');
    }
    

13. UI 组件 (UI Components)

  • 功能: 提供常用的 UI 组件,如按钮、对话框、加载指示器等。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    import 'package:flutter/material.dart';
    
    void main() {
      UIComponents uiComponents = UIComponents();
      uiComponents.showLoadingDialog(context: context, message: 'Loading...');
    }
    

14. 数据验证 (Validation Utils)

  • 功能: 提供数据验证工具,支持常见的验证规则(如邮箱、手机号、密码强度等)。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    
    void main() {
      ValidationUtils validationUtils = ValidationUtils();
      bool isValidEmail = validationUtils.validateEmail('example@example.com');
      print('Is Valid Email: $isValidEmail');
    }
    

15. 工具函数 (Utility Functions)

  • 功能: 提供一系列工具函数,如深拷贝、类型转换、随机数生成等。
  • 使用示例:
    import 'package:nd_core_utils/nd_core_utils.dart';
    
    void main() {
      UtilityFunctions utilityFunctions = UtilityFunctions();
      int randomNumber = utilityFunctions.generateRandomNumber(min: 1, max: 100);
      print('Random Number: $randomNumber');
    }
回到顶部