Random Toolkit

Random Toolkit Logo

一个功能强大的纯 Dart 随机数据生成工具包,提供各种类型的随机数据生成功能。支持 Flutter、Dart 以及所有 Dart 平台。

pub package License: MIT

功能特性

✨ 纯 Dart 包优势

  • 🚀 跨平台兼容:支持所有 Dart 平台(Flutter、Web、Server、Desktop)
  • 📦 轻量级:无原生依赖,包体积小
  • 🔧 易集成:简单的依赖管理,无需平台配置
  • 🛠️ 高性能:纯 Dart 实现,运行效率高
  • 🔄 易维护:统一的代码库,简化维护成本

🎲 基础随机数据

  • 随机整数、浮点数、布尔值
  • 随机字符串(支持自定义字符集)
  • UUID 生成
  • 数组随机选择和打乱

👤 个人信息生成

  • 随机姓名(支持中文和英文)
  • 随机邮箱地址
  • 随机手机号码(中国大陆格式)

🎨 视觉元素

  • 随机颜色(Color 对象、十六进制字符串)
  • Material Design 颜色
  • 随机图片 URL
  • 随机头像 URL

📍 地理位置

  • 随机地址(支持中文和英文)

⏰ 日期时间

  • 随机日期
  • 随机时间戳
  • 自定义日期范围

👥 完整用户信息

  • 生成包含所有信息的随机用户对象
  • ID、姓名、邮箱、电话、地址、头像等

安装

在您的 pubspec.yaml 文件中添加依赖:

dependencies:
  random_toolkit: ^0.0.9

并运行 flutter pub get 以获取依赖项。

flutter pub get

使用方法

导入包

在您的 Dart 文件中,导入 random_toolkit 包:

import 'package:random_toolkit/random_toolkit.dart';

💡 简化 API(推荐)

从 0.0.9 版本开始,支持点语法调用,代码更简洁,IDE 智能提示更友好:

import 'package:random_toolkit/random_toolkit.dart';

// 基础随机数据
int num = random.integer(1, 100);
double dec = random.decimal(0.0, 1.0);
bool flag = random.boolean();
String str = random.string(10);
String id = random.uuid();
String item = random.choice(['A', 'B', 'C']);

// 个人信息
String chineseName = random.name();
String englishName = random.name(chinese: false);
String email = random.email();
String cnPhone = random.phoneNumber();
String usPhone = random.phoneNumber(countryCode: 'US');

// 视觉元素
Color randomColor = random.color();
String hexColor = random.hexColor();
Color materialColor = random.materialColor();
String imageUrl = random.imageUrl(width: 300, height: 200);
String avatarUrl = random.avatarUrl(size: 100);

// 地理位置
String chineseAddress = random.address();
String englishAddress = random.address(chinese: false);

// 日期时间
DateTime randomDate = random.date(start: DateTime(2020), end: DateTime(2024));
int timestamp = random.timestamp();

// 完整用户信息
Map<String, dynamic> user = random.user();
Map<String, dynamic> englishUser = random.user(chinese: false);

使用简短别名 rt

// rt 是 random 的简短别名,功能完全相同
int num = rt.integer(1, 100);
String name = rt.name();
Color color = rt.color();
Map<String, dynamic> user = rt.user();

传统 API(向后兼容)

如果您更喜欢命名空间风格的调用,原有 API 完全保留:

基础随机数据生成

// 随机整数
int randomInt = RandomToolkit.generators.integer(1, 100);

// 随机浮点数
double randomDouble = RandomToolkit.generators.decimal(0.0, 1.0);

// 随机布尔值
bool randomBool = RandomToolkit.generators.boolean();

// 随机字符串
String randomString = RandomToolkit.generators.string(length: 10);

// UUID生成
String uuid = RandomToolkit.generators.uuid();

// 数组随机选择
String choice = RandomToolkit.generators.choice(['A', 'B', 'C']);

个人信息生成

// 随机姓名(支持中英文)
String chineseName = RandomToolkit.person.name(chinese: true);
String englishName = RandomToolkit.person.name(chinese: false);

// 随机邮箱
String email = RandomToolkit.person.email();

// 随机手机号(支持中美格式)
String cnPhone = RandomToolkit.person.phoneNumber(countryCode: 'CN');
String usPhone = RandomToolkit.person.phoneNumber(countryCode: 'US');

视觉元素

// 随机颜色
Color randomColor = RandomToolkit.visual.color();

// 十六进制颜色字符串
String hexColor = RandomToolkit.visual.hexColor();

// Material Design颜色
Color materialColor = RandomToolkit.visual.materialColor();

// 随机图片URL
String imageUrl = RandomToolkit.visual.imageUrl(width: 300, height: 200);

// 随机头像URL
String avatarUrl = RandomToolkit.visual.avatarUrl(size: 100);

地理位置

// 随机地址(支持中英文)
String chineseAddress = RandomToolkit.location.address(chinese: true);
String englishAddress = RandomToolkit.location.address(chinese: false);

日期时间

// 随机日期
DateTime randomDate = RandomToolkit.dateTime.date(
  start: DateTime(2020, 1, 1),
  end: DateTime(2024, 12, 31),
);

// 随机时间戳
int timestamp = RandomToolkit.dateTime.timestamp();

完整用户信息

// 生成随机用户(支持中英文)
Map<String, dynamic> chineseUser = RandomToolkit.userGenerator.generate(chinese: true);
Map<String, dynamic> englishUser = RandomToolkit.userGenerator.generate(chinese: false);

示例应用

查看 example 文件夹中的完整示例应用,了解如何在实际项目中使用所有功能。

cd example
flutter run

平台支持

  • ✅ Android
  • ✅ iOS
  • ✅ Web
  • ✅ Windows
  • ✅ macOS
  • ✅ Linux

版本要求

  • Flutter: >= 2.5.0
  • Dart: >= 2.19.6

贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 这个项目
  2. 创建您的功能分支 ( git checkout -b feature/AmazingFeature )
  3. 提交您的更改 ( git commit -m 'Add some AmazingFeature' )
  4. 推送到分支 ( git push origin feature/AmazingFeature )
  5. 打开一个 Pull Request

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

链接

更新日志

查看 CHANGELOG.md 了解版本更新历史。

Libraries

random_toolkit
Random Toolkit 库,提供随机数据生成功能。