Skip to content

5.0

Compare
Choose a tag to compare
@BB9z BB9z released this 25 Jan 13:33
b99189d

更新重点

  • Xcode 12、iOS 14 适配;
  • 脚本系统完善;
  • 许多代码转写为 swift;
  • 一些过时清理。

其他细节

  • Account,逻辑完善;
  • API,本地化错误信息,错误处理完善,解析器用 Swift 重写,行为优化,RFAPI 升级;
  • Array+App,views hidden 支持动画;
  • AssociatedObject.swift 新增,OC associated object 辅助工具;
  • B9MulticastDelegate 源从 master 改为 1.0;
  • CalloutView 新增,带箭头的面板 view;
  • Codable 扩展新增;
  • DBManager,GRDB.swift 管理器;
  • Geometry 更名 Geometry+App,统一命名格式;
  • Git Ignore,新增 playground 规则,移除 InjectionForXcode 规则;
  • GitHub Actions,修正 xcodebuild 出错 workflows 仍然成功;
  • GitLab CI,新增 dSYMs 打包下载,修正 p12 导入问题,缓存 Carthage 编译结果,CocoaPods 处理完善,firim 上传把本次提交信息作为 changelog,其他小修正;
  • HasItem 协议新增,item 传值方案的 Swift 实现;
  • IdentifierEquatable 新增,用于生成 uid 相同;
  • Logger 模块新增,使用官方 swift-logger;
  • MBApp 用 Swift 重写;
  • MBButton、MBControlGroup、MBTextField 中通过 IBInspectable 设置 UIEdgeInsets 的辅助属性全部重命名;
  • MBCodeSendButton, 请求成功自动转移焦点;
  • MBCollectionView,增加数据源状态变化回调,刷新时滚动区域调整支持自定义,使用 supplementary view 激活时防误用,不设置 delegate 为自身;修正底部刷新 view 没有按预期更新,修正 iOS 14 可能死循环;
  • MBCollectionViewColumnLayout,实现优化,增加仅调整宽度模式;
  • MBCollectionViewDataSource,支持分组数据,支持 supplementary view 定制;
  • MBCollectionViewHeaderFooterView,尺寸计算考虑 safe area;
  • MBControlGroup,解决 Mac Catalyst 上焦点问题;
  • MBDatePickerViewController,界面用 Storyboard 管理,适配 iOS 14 新样式;
  • MBDebug, 对 FLEX 引入进行包装以简化使用,用 segue 跳转菜单页避免跳转的硬编码;
  • MBDebugLiveCountChecker, 新增,内存泄漏辅助工具;
  • MBEnvironment,标志定义升级为 Swift 友好的方式,修正一些状态的设置,增加网络状态标志;
  • MBGeneralSelection, UITextField+App、MBRootWrapperViewController 移动到基础库;
  • MBHightlightTintImageView 新增,主题色根据高亮状态变化的 image view;
  • MBImageView,加载重构,移除根据 view 大小加载不同尺寸图片,增加加载优先级控制;
  • MBIndefiniteRotationImageView,动画启停属性更名,支持用系统方法控制,增加方向控制;
  • MBKeyboardFloatContainer, 警告消除;
  • MBListDataSource,支持分组数据,修正取消后请求卡住,重用部分状态未重置;
  • MBMaskHiddenView,增加方向支持;
  • MBModalPresentSegue, 协议更名、调整为 MBModalPresentDestination;
  • MBModalPresentViewController 修正 prepareForSegue 没有调用,增加退出回调、弹出误用提示;
  • MBSwift, 新增 MBSwift.typeName() 替换旧的 className,新增包装类型允许 Swift 值在 objc 环境中传递;
  • MBTableListDisplayer,添加 nullability 声明;
  • MBTableViewDataSource,增加泛型声明,移除对象改用序号保证与 indexPath 相匹配;
  • MBValueMapPickerViewController 界面用 Storyboard 管理;
  • MBVauleLabel,nullable 声明;
  • Number+App,新增距离格式化方法;
  • Podfile 列出一些常用库,备注不支持 macCatalyst 库的解决方案;
  • RootViewController, 启动闪屏默认注掉以稳定 naigationLoaded 标记的设置时机;mac 上尺寸适配辅助;
  • SearchHighlight 新增,搜索高亮支持;
  • ShareManager 默认不导入;
  • String+App, 新增正则表达式匹配、号码打码方法,尽可能在 StringProtocol 上扩展;
  • Swift 标准库扩展整理,更泛型的扩展,集合相关方法移动到 Collections+App 中;新 remove(at indexes: IndexSet);
  • SwiftLint,关闭 unavailable_function、empty_count,忽略 playground 文件,更新命名忽略规则;
  • TagView 新增,自定义绘制,展示若干 tag;
  • TextField, 允许定制输入为空的提示语;
  • UIApplication+App 新增,打开应用设置方法;
  • UIDevice+App, 网络判断调整,警告消除,CDMA revA、HSDPA 划归低速网络;Wi-Fi 方法名调整;
  • UIKit+App.h, 移除过时声明,引用全部改为可选;
  • UIKit+IBInspectable, 整理,统一文件名;
  • UIView 圆角裁切转用 Swift 实现,避免误用;
  • UIViewController+App 新增 swift 版本,两个弹窗方法;
  • UIViewController+App,newFromStoryboard 错误处理调整,不处于导航中的 vc 使用 RFPresentViewController 方法时提示误用;
  • UIViewController+NavigationAppearance,增加透明导航开关;
  • UIViewController+RFInterfaceOrientation,修正基于 vc 的屏幕旋转控制在 iOS 13 上失效;
  • 一些文档增补、修正;
  • 一些组件头文件调整;
  • 几处断言失败调整为 log 提醒;
  • 增加 SwiftUI preview 系统,支持 UIKit 预览,还包括 preview 专用的项目配置;
  • 多个扩展合入、转为 swift 版本;
  • 导航 tab 重构,文件拆分、更好的接口;
  • 所有 ZY 组件重命名为 MB:UIImage+ZYImageSet,ZYLayoutButton,ZYSMSCodeSendButton,ZYImageView,ZYSkyImageView;
  • 服务器日期格式统一进一个文件,时间戳代码放在一起并默认注释掉;
  • 素材管理,颜色不使用命名空间,图片格式转为 PDF,导航返回应该按模版渲染;
  • 脚本,新增拉取 demo 仓库,其他便捷脚本完善;
  • 脚本,项目文件整理通过 git hook 执行;
  • 脚本系统,构建数更新从编译后改为编译前运行,ProjectFileVerification 跳过示例检查,清理 Icon 加版本号、强制重写编译、提醒修改产品名,移除 Pod lock 检查;
  • 设置 Development asset,包括 GPX 数据,playground 及供其导入项目文件的 framework;
  • 项目配置,应用 Xcode 12 推荐配置,恢复 Metal 配置,DOUT 配置清理,C/C++ 配置删除用编译器默认的,默认包名改为 com.example.app,Mac Catalyst 与之统一;
  • 项目需求提升到 Xcode 12;
  • 默认加载 Injection3;
  • 移除不常用或过时组件:
    • ImageEntity,小众需求、移除;
    • MBCollapsibleView,被 stack view 取代移除;
    • MBMultiLineLabel,iOS 11+ 不再需要,移除;
    • MBObjectiveC,因不常用移除;
    • MBSkyHeaderView,因不常用移除;
    • MBVerifyTextField,因不常用移除;
    • NSObject+MBSwift,被 Swift 实现取代;
    • NSRegularExpression+App,被 String 扩展取代;
    • NSURL+App,URLByResolvingApplicationDirectoryChange 方法;
    • ReferenceSizing,因需求小众移除;
    • UILabel+App,小众需求,移除;
    • UIView+App,因不常用移除。