Skip to content

Releases: BB9z/iOS-Project-Template

6.0

04 Apr 15:23
721f6cc
Compare
Choose a tag to compare

更新重点

  • 系统需求提升至 iOS 13+;
  • iOS 15 适配;
  • 上一版本的 SwiftUI Preview 系统移除;
  • 通过 Interface Builder 控制页面样式、旋转的方式均有不兼容调整。

Full Changelog: 5.0...6.0

5.0

25 Jan 13:33
b99189d
Compare
Choose a tag to compare
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

22 Jul 11:39
21bc96f
Compare
Choose a tag to compare
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 颜色。

正规化版本

18 Feb 12:49
3e372cd
Compare
Choose a tag to compare

更新重点

  • 准备面向外部用户,项目初始化、依赖引入、维护全面开始正规化;
  • 项目配置简化,新增交互式自动 bootstrap 脚本。

其他细节

  • 不再通过 git submodule 引入依赖;
  • PreBuild 系统移除,如有需求推荐使用 Carthagepod 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。

3.5

15 Mar 02:49
ad9c410
Compare
Choose a tag to compare
3.5

最低支持的 iOS 版本提升为 11

3.4

15 Mar 02:49
34e46e5
Compare
Choose a tag to compare
3.4

2019 年之前的版本