SkillAgentSearch skills...

YCFlutterUtils

Flutter Utils 全网最齐全的工具类。包含bus,颜色,日期,文件,json,log,sp,加解密,num,图片,网络,正则,验证,路由,文本,时间,spi,计时器,拓展类,编解码,发射,异常,字节转化,解析等等工具类。

Install / Use

/learn @yangchong211/YCFlutterUtils
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

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

View on GitHub
GitHub Stars255
CategoryDevelopment
Updated1mo ago
Forks60

Languages

Dart

Security Score

95/100

Audited on Feb 5, 2026

No findings