YCFlutterUtils
Flutter Utils 全网最齐全的工具类。包含bus,颜色,日期,文件,json,log,sp,加解密,num,图片,网络,正则,验证,路由,文本,时间,spi,计时器,拓展类,编解码,发射,异常,字节转化,解析等等工具类。
Install / Use
/learn @yangchong211/YCFlutterUtilsREADME
FlutterUtils
目录介绍
- 01.事件通知bus工具类
- 02.颜色Color工具类
- 03.日期转化工具类
- 04.File文件工具类
- 05.Sql数据库工具类
- 06.Json转化工具类
- 07.Log日志打印工具类
- 08.屏幕参数工具类
- 09.Sp轻量存储工具类
- 10.辅助计算工具类
- 11.加密和解密工具类
- 12.Num格式处理工具类
- 13.设备参数获取工具类
- 14.图片处理工具类
- 15.网络处理工具类
- 16.常用正则工具类
- 17.Object常用工具类
- 18.验证相关工具类
- 19.路由管理工具类
- 20.Bus事件工具类
- 21.Text文本工具类
- 22.i18拓展工具类
- 23.Time时间工具类
- 24.SPI帮助工具类
- 25.计时器辅助工具类
- 26.常见拓展工具类
- 27.内存缓存工具类
- 28.清除操作工具类
- 29.编解码相关工具类
- 30.反射相关工具类
- 31.资源相关工具类
- 32.Snackbar工具类
- 33.转化相关工具类
- 34.全局异常捕获工具
- 35.解析数据工具类
- 36.字节转化工具类
- 40.其他相关工具类
00.该库说明
00.1 该库工具类汇总
|工具类 | 功能说明 | |-------- |----- | |EventBusService | bus事件通知工具类,实现了订阅者模式。用于组件之间通信 | |CalculateUtils | 计算文本的宽,高 | |ColorUtils | 主要是将RGB/ARGB转化为16进制字符串颜色或者Color | |DateFormats | 常见中文,英文的日期时间转化的格式。包含绝大多数的日期格式 | |DateUtils | 日期工具类,获取日期时间,各种时间之间的转换操作 | |EncryptUtils | 加解密工具类,主要是md5加密,base64加密和解密,异或加解密等 | |ExtensionXxx | 拓展类,包含int,list,map,set,num,string等拓展类,有大多数常见操作方法 | |TransformUtils | 转化工具类,包含int,string转化二进制,字母大小写转化等等 | |ValidatorUtils | 校验工具类,包含常见类型,图片,url,邮箱,电话,资源文件,驼峰命名等校验| |ExtensionXxx | 拓展类,包含int,list,map,set,num,string等拓展类,有大多数常见操作方法 | |TransformUtils | 转化工具类,包含int,string转化二进制,字母大小写转化等等 | |FileUtils | 文件缓存类,主要是存储和获取字符串,Map,Json等数据,写到本地file文件 | |TransformUtils | 转化工具类,包含int,string转化二进制,字母大小写转化等等 | |AppLocalizations | i18相关,可以设置locale,获取语言中字符串 | |ImageUtils | 图片工具类,主要是负责图片和base64转化,加载网络图片,切换圆角,圆形等 | |JsonUtils | json转化工具类,主要是负责list,map,对象和json之间转化等 | |get_it | spi接口实现,将接口(抽象基类)与具体实现分离和解耦合 | |LogUtils | 日志工具类,设置日志开关,长度,以及可以过滤标签,打印5种类型日志 | |NumUtils | Num格式工具类,主要是负责num相关处理和转化操作 | |ObjectUtils | Object超类工具类,负责各种对象判断,获取长度等操作 | |RegexConstants | 常见正则表达式的规则常量,这部分主要参考AndroidUtils | |RegexUtils | 正则表达式工具类,主要是电话,身份证,邮箱,ip,网络等校验 | |ScreenUtils | 屏幕工具类,获取屏幕的宽高,以及像素密度比等 | |SpUtils | sp存储工具类,适合存储轻量级数据,不建议存储json长字符串| |TextUtils | 文本工具类,主要处理字符串缩略,*,比较,移除等操作 | |TimerUtils | 倒计时器工具类,设置倒计时总时间,间隔时间,开始暂停等 | |UrlUtils | url工具类,获取url的host,参数,校验等操作 | |SystemUtils | 系统工具类,复制内容到剪切板,弹出和关闭软键盘,清除数据等 | |OtherUtils | RandomUtils随机工具类,SnackUtils,PlatformUtils平台工具类 | |MVP | Flutter版本的MVP架构模版,待完善中…… |
00.2 如何使用该库
- 具体文档可以demo
01.事件通知bus工具类
- 事件总线
- 通常实现了订阅者模式,订阅者模式包含发布者和订阅者两种角色。
- 第一种方式:使用map集合存储key为事件eventName,value为EventCallback实现bus
//注册监听bus _subscription = EventBusService.instance.eventBus.on<EventMessage>().listen((event) { String name = event.eventName; //前后台切换发生了变化 if (name == "eventBus1") { var busMessage = event.arguments["busMessage"]; setState(() { message1 = busMessage; }); } }); //发送消息 EventBusService.instance.eventBus.fire(EventMessage( "eventBus1", arguments: {"busMessage": "发送bus消息1"}, )); //页面销毁清除bus if (_subscription != null) { _subscription.cancel(); _subscription = null; } - 第二种方式:使用StreamController实现bus事件通知
//注册监听消息 bus.on("eventBus2", (arg) { var busMessage = arg; setState(() { message2 = "接收消息:" + busMessage; }); }); //发送消息 var arg = "发送bus消息1"; bus.emit("eventBus2", arg); //移除消息 bus.off("eventBus2", (arg) { });
02.颜色Color工具类
- 颜色Color工具类。主要是将RGB或者ARGB颜色转化为Color对象,16进制颜色字符串等等。
hexToColor : 将#A357D6颜色转化为16进制的Color toColor : 将#FF6325颜色或者#50A357D6转化为16进制的Color colorString : 将color颜色转变为字符串 colorString : 检查字符串是否为十六进制
03.日期转化工具类
- 日期转化工具类。主要是获取当前日期,按指定格式格式化时间,以及多种格式化日期工具方法
getNowDateTime : 获取当前日期返回DateTime getYesterday : 获取昨天日期返回DateTime getNowUtcDateTime : 获取当前日期返回DateTime(utc) getNowDateTimeFormat : 获取当前日期,返回指定格式 getUtcDateTimeFormat : 获取当前日期,返回指定格式 isYesterday : 根据时间判断是否是昨天 getNowDateMs : 将#获取当前毫秒值,返回int getNowDateString : 获取现在日期字符串,默认是:yyyy-MM-dd HH:mm:ss,返回字符串 formatDate : 格式化时间,第一个字段是dateTime,第二个可选项表示格式 formatDateString : 格式化日期字符串,第一个字段例如:'2021-07-18 16:03:10',第二个字段例如:"yyyy/M/d HH:mm:ss" formatDateMilliseconds : 格式化日期毫秒时间,第一个字段例如:1213423143312,第二个字段例如:"yyyy/M/d HH:mm:ss" getWeekday : 获取dateTime是星期几 getWeekdayByMilliseconds : 获取毫秒值对应是星期几 isToday : 根据时间戳判断是否是今天 isYesterday : 根据时间判断是否是昨天
04.File文件工具类
4.1 文件存储工具类
- 文件存储工具类。主要是存储和获取String,Json等文件,这个是存储到file本地文件
getTempDir : 获取一个临时目录(缓存),系统可以随时清除 getAppDocDir : 获取应用程序的目录,用于存储只有它可以访问的文件。只有当应用程序被删除时,系统才会清除目录。 getAppFile : 初始化文件路径,默认选中应用程序的目录 readStringDir : 获取存在文件中的数据,默认读到应用程序的目录 writeJsonFileDir : 写入json文件,默认写到应用程序的目录 writeStringDir : 利用文件存储字符串,默认写到应用程序的目录 clearFileDataDir : 清除缓存数据 deleteFileDataDir : 删除缓存文件 writeJsonCustomFile : 写入json文件,自定义路径 writeStringFile : 利用文件存储字符串,自定义路径 readStringCustomFile : 获取自定义路径文件存中的数据
4.2 文件管理工具类
- 文件管理工具类。主要是创建不同的目录路径,创建文件,或者目录路径等操作。
getTempPath : 获取设备上临时目录的路径,该目录没有备份,适合存储下载文件的缓存。 getAppDocPath : 获取应用程序的目录,用于存储只有它可以访问的文件。只有当应用程序被删除时,系统才会清除目录。 getStoragePath : 应用程序可以访问顶层存储的目录的路径 createDirSync : 异步创建文件 createDir : 同步创建文件 createTempDir : 创建临时目录 createAppDocDir : 创建获取应用程序的目录
05.Sql数据库工具类
- 待完善
06.Json转化工具类
- Json转化工具类。json转化常见的操作,逐步完善list,map和json字符串互转等。
printJson : 单纯的Json格式输出打印 printJsonEncode : 单纯的Json格式输出打印 encodeObj : 将对象[值]转换为JSON字符串 getObj : 转换JSON字符串到对象 getObject : 转换JSON字符串或JSON映射[源]到对象 getObjList : 转换JSON字符串列表[源]到对象列表 getObjectList : 转换JSON字符串或JSON映射列表[源]到对象列表
07.Log日志打印工具类
- Log日志打印工具类。五种不同类型日志,还可以添加tag标签过滤。
init : 初始化日志,自定义tag,是否是debug环境,日志最大长度,这几个字段都是非必选 d : 打印debug日志 e : 打印error日志 v : 打印v日志 i : 打印info日志 w : 打印ware警告日志
08.屏幕参数工具类
- 屏幕参数工具类。获取屏幕的宽,高,像素密度,状态栏等属性。后期完善适配工作……
screenWidthDp : 当前设备宽度 dp screenHeightDp : 当前设备高度 dp pixelRatio : 设备的像素密度 screenWidth : 当前设备宽度 px = dp * 密度 screenHeight : 当前设备高度 px = dp * 密度 statusBarHeight : 状态栏高度 dp 刘海屏会更高 bottomBarHeight : 底部安全区距离 dp textScaleFactory : 像素的字体像素数,字体的缩放比例
09.Sp轻量存储工具类
- sp轻量级存储工具。主要是sp存储和获取int,String,list,map等数据操作。
init : 初始化,必须要初始化 hasKey : 判断是否存在key的数据 putObject : 存储object类型数据 getObject : 获取sp中key的map数据 putObjectList : 存储sp中key的list集合 getObjectList : 获取sp中key的list集合 getString : 获取sp中key的字符串 putString : 存储sp中key的字符串 getBool : 获取sp中key的布尔值 putBool : 存储sp中key的布尔值 getInt : 获取sp中key的int值 putInt : 存储sp中key的int值 getDouble : 获取sp中key的double值 putDouble : 存储sp中key的double值 getStringList : 获取sp中key的list<String>值 putStringList : 存储sp中key的list<String>值 getStringMap : 获取sp中key的map值 putStringMap : 存储sp中key的map值 getDynamic : 获取sp中key的dynamic值 getKeys : 获取sp中所有的key remove : 移除sp中key的值 clear : 清除sp isInitialized : 检查初始化 forEach : 遍历打印sp的key和value
11.加密和解密工具类
- 加密和解密工具类。目前支持base64加解密,md5加密。后期逐步完善更多加密方法……
encodeMd5 : md5 加密字符串,这种是不可逆的 encodeBase64 : Base64加密字符串 decodeBase64 : Base64解密字符串 xorBase64Encode : 异或对称 Base64 加密 xorBase64Decode : 异或对称 Base64 解密
12.Num格式处理工具类
- 格式处理工具类。主要是处理num格式转化相关操作。
isNum : 检查字符串是int还是double getIntByValueString : 将数字字符串转int。如果字符串不是数字,则转化为0 getDoubleByValueString : 数字字符串转dou
Related Skills
node-connect
338.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
338.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.6kCommit, push, and open a PR
