Releases: BB9z/iOS-Project-Template
Releases · BB9z/iOS-Project-Template
6.0
5.0
更新重点
- 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,因不常用移除。
4.1
更新重点
- 增加一套基础 UI;
- 其他组件增强与问题修正;
- 使用协议由 Apache 变为 MIT。
其他细节
- .gitmodules 文件移除;
- API,使用包装方法,避免直接访问 global 实例,RFAPI v2 beta2;
- AppError,新增,供 Swift 用的应用错误;
- Button,增加列点击样式;
- CI 系统完善,增加一套 GitLab 用的配置,日常使用 GitHub Actions;
- EnumListView 新增,从一些对象中选中一个的 collection view 列表;
- Info.plist 中增加 ATS、图片相关权限样例;
- MBBottomLayoutView,修正尺寸变化时圆角未更新;
- MBCollectionListDisplayer,新增;
- MBCollectionViewFlowLayout,移除 iOS 9 补丁;
- MBCollectionView,多项完善,
refreshFooterView
不自动加载; - MBControlGroup,支持用 stack view 布局,selectionNoticeOnlySendWhenButtonTapped 默认改为 YES;
- MBDebug,修正在非 DEBUG 编译下引入 FLEX,支持 FLEX v4,增加网络存储清理;
- MBEntitiesCollectionView,补上添加、移除方法类型声明;
- MBEntitiesTableView,新增;
- MBFileUploader,新增使用 RFAPI 的实现;
- MBFormFieldVerifyControl,修正从 nib 载入后是通过验证的,防止 vc 创建后销毁没有立即跟着销毁,修正认证失败按钮点击时未忽略隐藏控件;
- MBFormSelectButton,generics 声明;
- MBKeyboardAdjustScrollView,新增,键盘弹出自动调整滚动位置;
- MBMaskHiddenView,新增,容器视图,显隐时执行 mask 遮罩动画;
- MBNotificationCenter,红点管理器、红点视图组件导入;
- MBPublishImagePicker,适配 iOS 13 的 vc 弹出;
- MBSearchTextField,回调增加是自动搜索还是手动搜索的区分;
- MBSearchViewController,不再设置默认的导航和状态栏样式;
- MBShareManager,新增新浪微博、Apple ID 登入支持,universal link 支持,逻辑完善等;
- MBTabControl,界面更新,
selectionNoticeOnlySendWhenButtonTapped
不再设置; - MBTableViewDataSource,对 MBListDateItem 的依赖变为可选;
- MBTableView,刷新逻辑完善,Swift 中
fetchItems(withPageFlag:)
更名为fetchItems(nextPage:)
,方便外部设置outerEmptyView
; - MBTextCountLabel,完善样式支持;
- ObjC bridging header 中加入常用组件的占位;
- RFKeyboard,pod 源使用官方仓库;
- Swift 改写:Account、AccountEntity、API、DebugLog();
- SwiftLint 集成,规则定制;
- UIAnyGestureRecognizer,新增,用于识别任意触摸;
- UIButton+App,优化高亮状态下的文字设置;
- UIKit+DynamicType,新增,让 UILabel、UIButton 的自定义字体支持 dynamic type;
- User ID 为字符串时的代码兼容;
- UserDefaults,accountEntity 大小写修正;
- ZYSMSCodeSendButton,补上请求发送中的状态;
- macCatalyst 编译修正;
- 列表 dataSource 类,请求管理优化,重用的表现没什么问题了,支持全局分页参数设置;
- 列表刷新的多个视图,自带 xib 的样式调整,支持自定义 end view;
- 图片素材更新,图标、颜色资源启动名字空间;
- 导航样式,默认的返回样式得到修正;
- 文件组织变更;
- 移除:MBEmbedWebView、NSMilliDate、ZYTemplateImageView;
- 路由系统完善,修正可能的多次跳转;
- 项目颜色管理全面转用 asset catalog,增加一套 Material 颜色。
正规化版本
更新重点
- 准备面向外部用户,项目初始化、依赖引入、维护全面开始正规化;
- 项目配置简化,新增交互式自动 bootstrap 脚本。
其他细节
- 不再通过 git submodule 引入依赖;
- PreBuild 系统移除,如有需求推荐使用 Carthage 或 pod package;
- 项目配置更新,Swift 5,macCatalyst;
- 依赖更新:
- RFAPI v2;
- RFDelegateChain 从新的源导入。
- 组件更新:
- 导航样式默认无阴影,隐藏返回按钮标题;
- Date+App,增加 TimeStamp 时间戳类型;
- DateFormatter+App,周几的格式调整;
- MBAudioRecorder,新增状态代理,限制录音长度,录音结束 AVAudioSession 设置;
- MBBottomLayoutView,更好的裁切判断;
- MBCollectionViewColumnLayout,像素对齐行为优化;
- MBCollectionViewEqualColumnSpaceLayout,支持水平方向;
- MBFormFieldVerifyControl,验证支持跳过被隐藏输入框,验证失败按钮连接及自动化功能,必要方法暴露;
- MBFormSelectButton,暴露
displayStringWithValue:
方法便于子类重写; - MBModalPresentSegue,导航获取行为调整;
- MBShareManager,新增 QQ 分享,第三方登入;
- MBTabController,子 vc 不再需要强制实现 listView;
- TextField,增加用户名、邮箱类型,textContentType 已设置跳过,增加 leftAccessoryView;
- UIButton+App,修正 text setter;
- ZYImageView,支持运行时更换 placeholderImage;
- ZYLayoutButton,支持禁用时半透明,当前大小作为 intrinsicContentSize。