Flutter随机数据生成插件random_data_generator的使用
Flutter随机数据生成插件random_data_generator的使用
random_data_generator
包旨在简化随机数据、代码和标识符的生成,适用于各种用例。该包提供了广泛的函数来生成随机整数、浮点数、字母、颜色、电子邮件地址、密码、动物名称、公司名称等。
安装
在你的 pubspec.yaml
文件中添加以下依赖:
dependencies:
random_data_generator: ^0.0.2
然后运行 flutter pub get
来安装该包。
特性
- 随机数字生成:在指定范围内生成随机整数和浮点数。
- 随机日期时间:20多种方法生成不同格式的随机日期和时间。
- 随机字符生成:生成随机小写和大写字母。
- 引用生成:从一组名言中获取随机引用。
- 语言名称生成:从一组常见语言中获取随机语言名称。
- 颜色生成:以多种格式(十六进制、RGB、RGBA、HSL、HSV、CMYK)生成随机颜色。
- 电子邮件生成:生成随机电子邮件地址。
- 密码生成:生成简单、中等或强密码。
- 动物名称生成:获取随机动物名称。
- 古代动物名称生成:获取随机古代动物名称。
- 自行车名称生成:获取随机自行车名称及其相应公司。
- 汽车名称生成:获取随机汽车名称及其相应公司。
- 水果名称生成:获取随机水果名称。
- 蔬菜名称生成:获取随机蔬菜名称。
- 国家名称生成:获取随机国家名称。
- 货币生成:获取随机货币名称及其符号。
- 公司名称生成:从各个行业获取随机公司名称。
- 科技公司生成:获取随机科技公司名称。
- 金融公司生成:获取随机金融公司名称。
- 零售公司生成:获取随机零售公司名称。
- 汽车制造公司生成:获取随机汽车制造公司名称。
- 食品饮料公司生成:获取随机食品饮料公司名称。
- 制药公司生成:获取随机制药公司名称。
- 航空航天公司生成:获取随机航空航天公司名称。
- 咨询公司生成:获取随机咨询公司名称。
- 能源公司生成:获取随机能源公司名称。
- 制造业公司生成:获取随机制造业公司名称。
- 一次性密码生成:生成指定长度的一次性密码(OTP)。
- 唯一标识符生成:生成类似于GUID、ULID和Snowflake ID的唯一标识符。
- 令牌生成:为各种用途生成随机令牌。
- 发票号生成:生成随机发票号。
- 电话号码验证码生成:生成随机电话号码验证码。
- 文档编号生成:生成随机文档编号。
- 跟踪号生成:生成随机跟踪号。
- 员工ID生成:生成随机员工ID。
- 订单号生成:生成随机订单号。
- 账号生成:生成随机账号。
- 交易ID生成:生成随机交易ID。
- 优惠券代码生成:生成随机优惠券代码。
- 代金券代码生成:生成随机代金券代码。
- 折扣代码生成:生成随机折扣代码。
- 促销代码生成:生成随机促销代码。
- 推荐代码生成:生成随机推荐代码。
- 验证码生成:生成随机验证码。
- 追踪码生成:生成随机追踪码。
- 认证码生成:生成随机认证码。
- PIN码生成:生成随机PIN码。
- 秘密码生成:生成随机秘密码。
- 访问码生成:生成随机访问码。
- 会话ID生成:生成随机会话ID。
- 客户编号生成:生成随机客户编号。
- 预订码生成:生成随机预订码。
- 交易码生成:生成随机交易码。
- 退款码生成:生成随机退款码。
- 注册码生成:生成随机注册码。
- UUID生成:生成不同版本和变体的UUID(通用唯一识别码)。
- GUID生成:生成GUID(全局唯一标识符)。
- ULID生成:生成ULID(通用字典序可排序唯一标识符)。
- 雪花ID生成:为分布式系统生成雪花ID。
- 基于哈希的ID生成:生成基于哈希的ID。
- Nano ID生成:生成Nano ID,用于短且URL友好的ID。
- UDID生成:生成UDID(唯一设备标识符)。
- 随机字符串ID生成:生成随机字符串ID。
- 时间戳ID生成:生成基于时间戳的ID。
- 安全随机ID生成:生成安全随机ID。
- 复合ID生成:生成复合ID。
- 抗碰撞ID生成:生成抗碰撞ID。
- 分布式ID生成:生成分布式ID。
- 安全哈希ID生成:生成安全哈希ID。
- 集群ID生成:生成集群ID。
- 一致哈希ID生成:生成一致哈希ID。
- 基于时间的ID生成:生成基于时间的ID。
- 唯一键ID生成:生成唯一键ID。
- 排列ID生成:生成排列ID。
- 安全时间戳ID生成:生成安全时间戳ID。
- 全球教育机构名称生成:获取随机全球教育机构名称。
- 随机电话号码生成:生成随机电话号码。
- Slug ID生成:生成用于URL的Slug ID。
- Flake UUID生成:生成Flake UUID。
- XID生成:生成XID(CUID)。
- UUIDv6生成:生成UUIDv6。
- 生成UUIDv5:生成UUIDv5。
- 版本描述:获取UUID版本描述。
- 变体描述:获取UUID变体描述。
使用
详细的使用示例和API文档,请参阅API文档。
许可证
MIT许可证 (MIT) 版权所有 © 2024 Shirsh Shukla
许可协议如下:
MIT License
Copyright (c) 2024 Shirsh Shukla
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
示例代码
import 'package:flutter/material.dart';
import 'package:random_data_generator/random_data_generator.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
final String title;
const MyHomePage({
super.key,
required this.title,
});
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _randomDataGenerate() {
String randomQuote = RandomData.quote(); // 随机引用
String ancientAnimalName = RandomData.generateAncientAnimalName(); // 古代动物名称
int number = RandomData.generateRandomIntBetween(1, 20); // 生成一个介于1到20之间的随机整数
String uuid = RandomData.generateUuid(UuidVersion.v1, UuidVariant.ncs); // 生成一个UUID
String strongPassword = RandomData.generateStrongPassword(); // 生成一个强密码
int flakeUuid = RandomData.generateFlakeUuid(21); // 生成一个雪花ID
String xid = RandomData.generateXid(); // 生成一个XID
String nanoId = RandomData.generateNanoId(size: 21); // 生成一个Nano ID
String ulid = RandomData.generateUlid(); // 生成一个ULID
String currencyNamWithSign = RandomData.generateRandomCurrencyNamWithSign(); // 生成一个货币名称及其符号
List<int> rgbColor = RandomData.getRandomRGBColor(); // 生成一个随机RGB颜色
debugPrint("randomQuote: $randomQuote"); // 输出: randomQuote: Success is not how high you have climbed, but how you make a positive difference to the world. – Roy T. Bennett
debugPrint("ancientAnimalName: $ancientAnimalName"); // 输出: ancientAnimalName: Saber-toothed Cat
debugPrint("number: ${number.toString()}"); // 输出: number: 18
debugPrint("uuid: $uuid"); // 输出: uuid: c620b921-de7b-1721-2e70-44d61ce683dc
debugPrint("strongPassword: $strongPassword"); // 输出: strongPassword: u=Y2r6j#5JVG
debugPrint("flakeUuid: ${flakeUuid.toString()}"); // 输出: flakeUuid: 1682001920
debugPrint("xid: $xid"); // 输出: xid: 1044dd9116f529ab77000000
debugPrint("nanoId: $nanoId"); // 输出: nanoId: kJz2H4v8A4KT1IkMrzhaP
debugPrint("ulid: $ulid"); // 输出: ulid: 00lvdug4nlYH2XHRDDTGVRFA4R
debugPrint("currencyNamWithSign: $currencyNamWithSign"); // 输出: currencyNamWithSign: Cape Verdean Escudo (₲)
debugPrint("rgbColor: $rgbColor"); // 输出: rgbColor: [87, 145, 3]
/*
该包可以生成超过100种类型的数据,包括UDIDs、UUIDs和Nano IDs。
它还可以生成多种随机数据类型,例如引用。
"The only way to do great work is to love what you do." – Steve Jobs
*/
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text(
"该包可以生成超过100种类型的数据,包括UDIDs、UUIDs和Nano IDs。\n它还可以生成多种随机数据类型,例如引用。\n'The only way to do great work is to love what you do.' – Steve Jobs"),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _randomDataGenerate,
tooltip: '随机数据生成',
child: const Icon(Icons.add_circle_outline_sharp),
),
);
}
}
更多关于Flutter随机数据生成插件random_data_generator的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter随机数据生成插件random_data_generator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何在Flutter项目中使用random_data_generator
插件的示例代码。random_data_generator
插件可以帮助你生成各种随机数据,比如姓名、地址、电子邮件等。
首先,确保你已经在pubspec.yaml
文件中添加了random_data_generator
依赖:
dependencies:
flutter:
sdk: flutter
random_data_generator: ^2.0.0 # 请检查最新版本号
然后运行flutter pub get
来安装依赖。
接下来,在你的Flutter项目中使用这个插件。以下是一个完整的示例代码,展示如何生成随机姓名、地址和电子邮件:
import 'package:flutter/material.dart';
import 'package:random_data_generator/random_data_generator.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Random Data Generator Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: RandomDataDemo(),
);
}
}
class RandomDataDemo extends StatefulWidget {
@override
_RandomDataDemoState createState() => _RandomDataDemoState();
}
class _RandomDataDemoState extends State<RandomDataDemo> {
late RandomDataGenerator _randomDataGenerator;
@override
void initState() {
super.initState();
_randomDataGenerator = RandomDataGenerator();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Random Data Generator Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Random Name: ${_generateRandomName()}',
style: TextStyle(fontSize: 20),
),
SizedBox(height: 20),
Text(
'Random Address: ${_generateRandomAddress()}',
style: TextStyle(fontSize: 20),
),
SizedBox(height: 20),
Text(
'Random Email: ${_generateRandomEmail()}',
style: TextStyle(fontSize: 20),
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {}); // 触发重新构建以生成新的随机数据
},
tooltip: 'Generate New Data',
child: Icon(Icons.refresh),
),
);
}
String _generateRandomName() {
var person = _randomDataGenerator.person();
return '${person.firstName} ${person.lastName}';
}
String _generateRandomAddress() {
var address = _randomDataGenerator.address();
return '${address.streetAddress}, ${address.city}, ${address.state}, ${address.postalCode}, ${address.country}';
}
String _generateRandomEmail() {
var person = _randomDataGenerator.person();
return person.email;
}
}
在这个示例中,我们做了以下几件事:
- 在
pubspec.yaml
文件中添加了random_data_generator
依赖。 - 在
MyApp
类中设置了基本的Flutter应用结构。 - 创建了一个
RandomDataDemo
有状态小部件,在其中初始化了RandomDataGenerator
实例。 - 使用
RandomDataGenerator
实例生成随机姓名、地址和电子邮件,并在UI中显示它们。 - 添加了一个浮动操作按钮(FAB),当用户点击它时,会触发UI的重新构建,从而生成新的随机数据。
运行这个代码,你应该会看到一个包含随机生成姓名、地址和电子邮件的简单Flutter应用。点击浮动操作按钮可以刷新数据。