xb_scaffold 1.1.10 copy "xb_scaffold: ^1.1.10" to clipboard
xb_scaffold: ^1.1.10 copied to clipboard

基于provider封装的脚手架.

Changelog #

条目格式约定:每条以「新增 / 修复 / 优化 / 破坏性变更」中文前缀开头,一行一条。 版本按时间升序排列;早期版本中无法考据的 "optimized" 类条目已统一归并为「常规优化与维护」。

1.1.10 #

  • 修复 reset() 后新 VM 永远收不到 widgetDidBuilt:postFrame 回调原来只在 initState 注册一次,现在每次生成新 VM(initState/reset)都会重新调度,同一帧内多次 reset 合并为一次且只回调当前 VM;新增回归测试
  • 修复 VM 销毁窗口期 mounted 假阳性:_disposed 原来在 dispose 末尾才置位、宿主 state.mounted 在 super.dispose() 前仍为 true,重写的 dispose 及其同步回调里的 notify 会通过检查打到正在销毁的 element;新增框架内部入口 disposeFromHost()(宿主销毁/reset 前先置 disposed 再执行 dispose),mounted 在整个销毁链路上保持失效;新增回归测试

0.0.1 #

  • base init

0.0.2 #

  • 常规优化与维护

0.0.3 #

  • 常规优化与维护

0.0.4 #

  • 新增 XBVMLessWidget

0.0.5 #

  • 新增注释、优化

0.0.6 #

  • 增加路由

0.0.7 #

  • 增加去重数组 xb_unique_list

0.0.8 #

  • 常规优化与维护

0.0.9 #

  • 常规优化与维护

0.0.10 #

  • 去除actionSheet白色背景

0.0.11 #

  • XBImage增加Uint8List数据显示

0.0.12 #

  • 增加pop到根页面方法

0.0.13 #

  • 新增loading、toast新增淡入淡出效果

0.0.14 #

  • 新增iOSpush效果

0.0.15 #

  • 修复安卓OnWillPop错误

0.0.16 #

  • 去除警告

0.0.17 #

  • 修改命名

0.0.18 #

  • XBPageVM改成非抽象类

0.0.19 #

  • 路由方法提升为全局方法

0.0.20 #

  • 常规优化与维护

0.0.21 #

  • 常规优化与维护

0.0.22 #

  • 常规优化与维护

0.0.23 #

  • 优化全局loading、添加路由栈改变流

0.0.24 #

  • 全局loading的时候,屏蔽XBPage的物理返回键

0.0.25 #

  • 优化路由

0.0.26 #

  • 优化路由

0.0.27 #

  • 优化actionSheet

0.0.28 #

  • 优化actionSheet

0.0.29 #

  • 新增 分组头部悬浮列表 XBHoveringHeaderList

0.0.30 #

  • 常规优化与维护

0.0.31 #

  • 添加路由打印信息

0.0.32 #

  • 修复bug

0.0.33 #

  • 常规优化与维护

0.0.34 #

  • 修复bug

0.0.35 #

  • 增加List的stack拓展

0.0.37 #

  • 常规优化与维护

0.0.38 #

  • 常规优化与维护

0.0.39 #

  • 为indexPath添加compareTo方法

0.0.40 #

  • 优化XBButton点击效果

0.0.41 #

  • 优化XBButton点击效果

0.0.42 #

  • 修改actionSheet的dismiss文字的默认大小

0.0.43 #

  • 修改toast左右区域无法点击的问题

0.0.44 #

  • XBButton增加不可点击状态

0.0.45 #

  • actionSheetWidget增加isScrollControlled属性

0.0.46 #

  • 安卓和iOS返回控制方法增加vm参数

0.0.47 #

  • 常规优化与维护

0.0.48 #

  • dialog添加dialogContent

0.0.49 #

  • dialog添加titleStyle

0.0.50 #

  • 优化toast

0.0.51 #

  • 修改toast的默认背景颜色为灰色、XBPage新增navigationBarTitle的颜色和字体设置

0.0.52 #

  • 优化dialogWidget

0.0.53 #

  • 添加设置loading样式接口

0.0.54 #

  • 添加设置toast背景颜色接口

0.0.55 #

  • 修改loading的内部命名,避免冲突

0.0.56 #

  • 修复在VM刚创建的时候showLoading不起作用

0.0.57 #

  • 更新协议

0.0.58 #

  • XBWidget改成继承自StatefulWidget

0.0.59 #

  • XBWidget新增rebuild vm方法

0.0.60 #

  • 常规优化与维护

0.0.61 #

  • 修复vm没有调用dispose方法导致内存泄漏

0.0.62 #

  • 增加XBRoute的生命周期willHide、willShow、willDispose

0.0.63 #

  • XBWidget增加didChangeDependencies、didUpdateWidget

0.0.64 #

  • 常规优化与维护

0.0.65 #

  • XBVM增加state引用

0.0.66 #

  • 修改命名

0.0.67 #

  • XBWidgetState增加wantKeepAlive

0.0.68 #

  • 常规优化与维护

0.0.69 #

  • 新增:XBImage展示file的时候,相同路径可以刷新展示

0.0.70 #

  • 暴露xb_file_image

0.0.71 #

  • 新增XBTip组件

0.0.72 #

  • 优化XBTip组件

0.0.73 #

  • 优化XBTip组件

0.0.74 #

  • 新增XBRefreshTask、新增XBNetImgSizeUtil

0.0.75 #

  • XBVM新增disposed标记、新增XBTimer

0.0.76 #

  • 暴露XBTimer给外部

0.0.77 #

  • 修复XBTip的bug

0.0.78 #

  • XBUniqueList增加拓展方法

0.0.79 #

  • 优化XBTip

0.0.80 #

  • 新增XBPreventMultiTap

0.0.81 #

  • dialog新增按钮文字颜色设置

0.0.82 #

  • 添加页面log

0.0.83 #

  • 修改命名

0.0.84 #

  • pageLogInfo增加分隔符参数

0.0.85 #

  • 增加xb_print和XBHttp

0.0.86 #

  • 拦截器增加queryParameters打印

0.0.87 #

  • 修改queryParameters参数名称、pageLog添加时间

0.0.88 #

  • 暴露dio拦截器

0.0.89 #

  • 添加XBParse

0.0.90 #

  • 修改XBParse函数为全局函数

0.0.91 #

  • 修改目录结构、XBButton添加disable点击事件

0.0.92 #

  • 添加eventbus

0.0.93 #

  • 频繁点击添加错误回调

0.0.94 #

  • 常规优化与维护

0.0.95 #

  • optimize eventBus

0.0.96 #

  • 优化parse int

0.0.97 #

  • 新增xb_title_picker

0.0.98 #

  • 新增xb_title_picker头文件

0.0.99 #

  • 新增xb_def

0.0.100 #

  • loading可以自定义显示的文本

0.0.101 #

  • 局部loading添加content响应参数设置

0.0.102 #

  • actionSheetWidget新增参数

0.0.103 #

  • XBVM新增widgetDidBuilt方法

0.0.104 #

  • 常规优化与维护

0.0.105 #

  • 常规优化与维护

0.0.106 #

  • 修复toast bug

0.0.107 #

  • 打印新增时间

0.0.108 #

  • 新增XBWaitTask、修复ListView滚动Appbar变色

0.0.109 #

  • XBWaitTask优化、XBTip自适应位置

0.0.110 #

  • XBButton优化

0.0.111 #

  • XBButton优化

0.0.112 #

  • 新增ValueGetter和ValueChanged定义

0.0.113 #

  • 常规优化与维护

0.0.114 #

  • 常规优化与维护

0.0.115 #

  • 常规优化与维护

0.0.116 #

  • 常规优化与维护

0.0.117 #

  • 常规优化与维护

0.0.118 #

  • 常规优化与维护

0.0.119 #

  • 常规优化与维护

0.0.120 #

  • 兼容web

0.0.121 #

  • xbParse新增转模型功能

0.0.122 #

  • 常规优化与维护

0.0.123 #

  • 捕捉widget异常

0.0.124 #

  • 兼容2.19.6 dart SDK

0.0.125 #

  • XBImage兼容Harmony

0.0.126 #

  • 常规优化与维护

0.0.127 #

  • 添加多选actionSheet

0.0.128 #

  • 修改命名

0.0.129 #

  • list新增拓展、新增widget

0.0.130 #

  • 添加头文件

0.0.131 #

  • 添加获取XBWidget宽高方法

0.0.132 #

  • 新增XBTextField

0.0.133 #

  • XBImage新增isInPackage变量

0.0.134 #

  • 新增设置xbGlobalContext接口

0.0.135 #

  • 去除设置xbGlobalContext接口、优化endEditing、XBImage新增ui.Image支持

0.0.136 #

  • 新增设置tempContext接口

0.0.137 #

  • 修改鸿蒙判断

0.0.138 #

  • 常规优化与维护

0.0.139 #

  • 常规优化与维护

0.0.140 #

  • 常规优化与维护

0.0.141 #

  • 网页自动设置标题

0.0.142 #

  • 导出设置网页标题的头文件

0.0.143 #

  • 常规优化与维护

0.0.144 #

  • 常规优化与维护

0.0.145 #

  • 新增一些常用cell

0.0.146 #

  • 常规优化与维护

0.0.147 #

  • 常规优化与维护

0.1.0 #

  • 常规优化与维护

0.1.1 #

  • 常规优化与维护

0.1.2 #

  • 新增cell

0.1.3 #

  • 添加XBTable、优化XBTip

0.1.4 #

  • 导出XBTable

0.1.5 #

  • 导出XBTable

0.1.6 #

  • XBDialogInput新增notEmptyTip和清空功能

0.1.7 #

  • 新增浮动菜单

0.1.8 #

  • 常规优化与维护

0.1.9 #

  • 常规优化与维护

0.1.10 #

  • 常规优化与维护

0.1.11 #

  • 常规优化与维护

0.1.12 #

  • 新增dialog的msgStyle参数

0.1.13 #

  • 新增dialog的btnFontSize参数

0.1.14 #

  • 新增dialog的默认msgStyle

0.1.15 #

  • 新增drawer和endDrawer

0.1.16 #

  • 新增leading宽度设置

0.1.17 #

  • bug fixed

0.1.18 #

  • 常规优化与维护

0.1.19 #

  • 新增XBCellTitleArrow

0.1.20 #

  • XBCell模块化

0.1.21 #

  • 常规优化与维护

0.1.22 #

  • 常规优化与维护

0.1.23 #

  • 常规优化与维护

0.1.24 #

  • XBCell新增backgroundWidget

0.1.25 #

  • 常规优化与维护

0.1.26 #

  • 颜色显示优化

0.1.27 #

  • 常规优化与维护

0.1.28 #

  • 添加XBButtonText、添加主要颜色、修复主题切换问题

0.1.29 #

  • 使用primary color

0.1.30 #

  • 优化参数命名

0.1.31 #

  • bug fixed

0.1.32 #

  • bug fixed

0.1.33 #

  • 常规优化与维护

0.1.34 #

  • 常规优化与维护

0.1.35 #

  • 常规优化与维护

0.1.36 #

  • 常规优化与维护

0.1.37 #

  • 常规优化与维护

0.1.38 #

  • 常规优化与维护

0.1.39 #

  • 常规优化与维护

0.1.40 #

  • 常规优化与维护

0.1.41 #

  • 常规优化与维护

0.1.42 #

  • 常规优化与维护

0.1.43 #

  • 新增获取vm方法

0.1.44 #

  • 修复长按输入框键盘会收起的问题

0.1.45 #

  • 添加XBCellGroup

0.1.46 #

  • 常规优化与维护

0.1.47 #

  • 常规优化与维护

0.1.48 #

  • 常规优化与维护

0.1.49 #

  • 优化XBDialogInput

0.1.50 #

  • 沉浸式导航栏

0.1.51 #

  • 常规优化与维护

0.1.52 #

  • 修改方法命名(needShowContentFromScreenTop -> needHideAppbar)

0.1.53 #

  • 兼容getx

0.1.54 #

  • 常规优化与维护

0.1.55 #

  • 常规优化与维护

0.1.56 #

  • 常规优化与维护

0.1.57 #

  • 增加XBMaxHeightContainer和XBAdaptiveListView

0.1.58 #

  • 常规优化与维护

0.1.59 #

  • 常规优化与维护

0.1.60 #

  • 常规优化与维护

0.1.61 #

  • 常规优化与维护

0.1.62 #

  • 常规优化与维护

0.1.63 #

  • 常规优化与维护

0.1.64 #

  • 增加 List 的 mutable

0.1.65 #

  • XBPage 增加 MediaQuery.removePadding 选项

0.1.66 #

  • 新增XBRootWidget

0.1.67 #

  • 新增XBCellCustom

0.1.68 #

  • 新增XBLogsUtil

0.1.69 #

  • 新增异常捕捉处理

0.1.70 #

  • 修复日志分享打包丢失问题

1.0.0 #

  • 移除XBLogsUtil相关内容,避免鸿蒙兼容问题

1.0.1 #

  • 常规优化与维护

1.0.2 #

  • 补充包级路由 API 测试。
  • 清理静态检查问题与废弃 API 使用。
  • 优化 VM、loading、fade 动画的生命周期处理,减少空 catch。
  • 修复 XBHttp 请求级拦截器未生效、GET 拼参冗余、上传未复用全局 Dio 配置等问题。
  • 优化获取 vm 的方式,不再传值而是使用 context 获取。
  • 增加 命令 xb.page、xb.widget、xb.parsemodel、xb.newmodel、xb.updateimg、xb.extension。

1.0.3 #

  • 移除 network 模块,独立成 xb_network

1.0.4 #

  • 优化异常捕捉初始化函数

1.0.5 #

  • XBPage 分层

1.0.6 #

  • xb.setup 命令优化

1.0.7 #

  • 弹框增加优先级、主题图片使用默认图片兜底、增加 iOS 返回手势、减少依赖

1.0.8 #

  • iOS 返回手势增加阻尼、bug 修复

1.0.9 #

  • 优化 XBPage 返回控制和返回处理

1.1.0 #

  • 新增 AI Skill:包内内置 skill/xb-scaffold(SKILL.md + reference 文档,全英文),供 AI 编程工具学习 xb_scaffold
  • 新增 xb.skill 命令:在项目根生成厂商中立的 AI 自装指南 xb-scaffold-ai-guide.md(可选 --out <path>、--force),文档内含给 AI 的安装指令与 section 标记切分的完整知识库,由 AI 自行转换安装到任意工具(Qoder/Claude Code/Cursor 等)的 skill/规则机制
  • xb.setup 末尾自动生成该指南,接入即生成;make install-cli 同步支持 xb.skill

1.1.1 #

  • 增加xb.build命令用于打包 iOS、安卓、ohos

1.1.2 #

  • 常规优化与维护

1.1.3 #

  • Web 平台兼容性修复:XBRootWidget/XBFileImage/XBImgSizeUtil.getImageSizeFromFile/isHarmony/XBTrimTextInputFormatter 等原先直接依赖 dart:io 的 API 改为条件导出(io 实现 + web stub),Web 工程引入 xb_scaffold 不再编译失败
  • 双击退出抽为 exitApp():非 Web 平台行为不变(exit(0)),Web 平台回退为 SystemNavigator.pop()
  • XBVM 新增 mounted 访问器(与 State.mounted 对齐):异步回调中访问 context/state/widget 前检查,避免页面销毁后使用悬空引用;notify()、loading 展示/隐藏等内部防护同步升级
  • XBScaffold 初始化竞态修复:主题异步初始化增加 token 校验,旧一轮初始化结果不再覆盖新一轮配置;新增 didUpdateWidget,themeConfigs/loadingBuilder/toastBackgroundColor/maxPageLogLen 变更时可正确生效

1.1.4 #

  • XBEventBus 弱注册重构:Bus 对 listener 及其回调只持弱引用,非 VM 使用者忘记 removeListener 不再永久泄漏,注册项随 GC 自动失效并在 fire/prune 时剪除;XBVM.listen 内部自动保管回调,VM 使用者无感知
  • XBEventBus 分发优化:按事件类型 Map<Type, List> 精准分发,不再对所有订阅者做 O(n) 类型过滤
  • 行为变化:事件分发改为按 runtimeType 精确匹配(注册父类型、fire 子类型实例时不再收到);需要子类型语义请改用 XBEventBus.on<T>() 强订阅通道
  • setController 废弃,新增 initController:注入时机错误或重复初始化会 assert 报错,不再静默失效
  • XBVM 新增 removeListen 用于单独注销某个事件回调

1.1.5 #

  • 主题持久化(存储委托模式):XBScaffold 新增 themeIndexReader/themeIndexWriter 可选参数,注入后自动“变更即存、启动回灌”,存储后端由业务方决定(SharedPreferences/MMKV/内存等),框架零存储依赖
  • changeTheme 越界校验:index 越界时主题保持不变,debug 下抛 AssertionError 提前暴露(旧版会静默新建空主题,页面拿到默认色不报错)
  • theme getter 修复:读取未初始化/越界主题时回落到默认主题(index 0)并 assert 提示,不再静默新建空主题污染 _themeMap
  • 回灌防脏数据:持久化的越界/负数 index 被静默忽略,不会在启动时崩溃

1.1.6 #

  • 破坏性变更:移除 XBPage.pushAnimationMilliseconds,不再用固定定时器猜测转场结束时机
  • addEnsureAfterPushAnimationTask 改为监听 Route.animation 的 AnimationStatus:转场真正结束(completed)时精确触发,自定义时长转场、被打断的转场(dismissed,任务随页面销毁废弃)均准确
  • 零时长转场(transitionDuration == Duration.zero)立即视为完成;首帧延迟等极端场景由下一帧兜底检查覆盖
  • 兼容说明:goRouter/getx 等第三方路由最终也会生成标准 Route,ModalRoute.of 均可拿到转场动画,行为一致

1.1.7 #

  • 页面日志时间戳修复:recordPageLog 改用设备本地时间(旧实现 toUtc().add(hours: 8) 硬编码东八区,海外/非东八区设备时间戳错误)
  • toastWidget 失败可观测:首次失败记录日志后再重试;重试前显式检查 overlay 就绪,仍不可用则记录日志并安全丢弃,不再静默吞错

1.1.8 #

  • README 新增「大页面性能优化」章节:拆分子 XBWidget / context.select / ValueNotifier 三种局部 rebuild 手段及重建统计方法
  • 补齐核心模块测试(+19 个):路由观察者(push/pop 生命周期回调、三层路由、销毁取消订阅)、XBImage 类型分发(空值/bytes/svg/data-uri/网络/asset 全分支)、XBImgSizeUtil(PNG 解码与缓存)、5 个表单 formatter

1.1.9 #

  • xb.setup 新增产物:在业务工程根目录生成 README_XBScaffold.md(xb_scaffold 框架完整文档,内容为包内 README.md 原样复制,每次执行静默覆盖为当前包版本)
  • xb.extension 生成逻辑改为文件级跳过:已存在的文件保留不动(不覆盖用户定制),仅补齐缺失的文件;退出码不再因存在旧文件而报非 0,存量工程执行 xb.setup/xb.extension 可自动补齐新增模板
  • 主题系统新增 XBThemeFontFamily(全局 getter fontFamilies,默认 def 为 null 即系统默认字体,业务通过 extension 添加自定义字体族);xb.extension/xb.setup 模板同步新增 app_theme_font_family.dart
  • XBDialogStyle 新增 maxWidth:dialog/dialogContent/XBDialogInput 卡片宽度三级取值(调用处 maxWidth > 全局样式 maxWidth > 框架默认 screenW - gapDef*2),超宽自动 cap,适配横屏收窄弹窗宽度
3
likes
80
points
1.35k
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

基于provider封装的脚手架.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

cached_network_image, flutter, flutter_svg, provider

More

Packages that depend on xb_scaffold