iOS-factor 的灵感来自于著名的 12-factor应用框架——用于编写高质量 web 服务的方法论。iOS-factor 使用与其相同的结构和类似的原则,重写后应用于 iOS 应用程序的开发流程上。
背景
过去 10 年里,iOS 应用的开发流程发生了剧烈的变化:
- 以前仅需支持单一设备;而现在需要支持使用 iOS 系统的大量机型,如各种 iPhone 和 iPad,以及多个平台,如 tvOS 和 watchOS;
- 以前手动集成 git 中的模块;而现在使用第三方库的依赖管理器;
- 以前 iOS 应用大多仅运行在本地;而现在 iOS 应用则需要大量依赖后端服务;
- 以前 iOS 应用的审核时间需要 2 周以上;而现在最短仅需不到 1 天;
- 以前使用 iTunes 在手机上安装应用;而现在使用官方的 TestFlight 发布应用;
- 以前向 iTunes Connect 上传时,每种语言仅需 5 张屏幕截图;而现在每种语言需要上传 110 张,同时还需要上传应用预览;
- 以前开发者使用的编程语言只是 Objective-C 和 C++;而现在是多语言混合,包括 JavaScript;
- 以前是慢节奏发布;而现在每周都要发布;
- 以前发布完整版本;而现在要进行 A/B 测试,新功能要慢慢推出,还要自动化回归检测。
什么是 iOS-factor?
iOS-factor 是一个从2018年5月开始的试验性项目。它的目标在于为构建高质量 iOS 应用提供一套最佳实践方案。每个主题就是一个 factor
,它描述了在 iOS 开发过程中某个方面的理想状态。
由于一些限制(例如 Xcode 只能在 macOS 上运行),并非所有的要求都能被满足。这个项目旨在明确目标,同时针对我们目前面临的挑战提出最佳实践。
iOS-factor 是关于开发 iOS 应用时的架构决策,且不会涵盖任何与特定编程语言有关的问题。
这个项目目前由 iOS 开发社区维护。你可以在 GitHub 上找到完整的源码,并对其进行更新或者添加新的 factors。