就iOS而言,苹果有任何约定/建议吗?哪种方法是最佳实践?
开发人员以各种方式组织其团队、代码和文件。但我使用类似以下方式:
CoreData: 包含 DataModel 和 Entity 类。
Extension: 包含一个类(默认苹果类扩展+项目类扩展)。
Helper: 包含第三方类/框架(例如 SWRevealController)+ 桥接类(例如 Swift 项目中的 Obj C 类)。
Model: 为保存数据创建单例类(例如 AppModel - NSArray,NSDictionary,String 等)。Web 服务响应解析和存储数据也在此处完成。
Services: 包含 Web 服务过程(例如登录验证、HTTP 请求/响应)。
View: 包含 storyboard、LaunchScreen.XIB 和 View 类。创建子文件夹 Cells - 包含 UITableViewCell、UICollectionViewCell 等。
Controller: 包含与 UI 元素相关的逻辑或代码(例如 UIButton 的引用+点击操作)。如果使用 MVVM,可以替换为 ViewModel。
这个结构来自另一个 Stack Overflow 帖子。
以下内容可能对您有帮助:
点击此处查看有关iOS项目架构的演示文稿。
我创建了一个项目来演示我认为适用于小型或中型代码库的Xcode项目结构。您可以在这里找到它。
以下是它的概述:
在项目中组织文件时,有两种最常用的方式。一种是按类型组织代码文件,另一种是按功能(特性)组织。
按类型组织代码适用于小型项目,但对于大型项目来说不是一个好的实践方法。
这种方式是将所有的Models放在一个文件夹中,所有的Views放在另一个文件夹中,所有的Controllers放在第三个文件夹中等等。
想象一下,如果您有大量由类型组织的文件和文件夹,当您在单个功能上工作时,您必须打开所有文件夹,这可能会让您感到困惑,而且当您浏览文件时,您可能会迷路很多次。
类似于这样:
按照功能(意图)组织代码是大型项目和团队的最佳实践。您将与功能相关的所有内容放在一个文件夹中,在处理该功能时,您不必打开所有其他文件夹(组)。
因为通常团队会处理单个功能,并且他们仅专注于单个文件夹或文件组。他们不一定需要了解其他功能和文件。
它看起来像这样:
此外,要提到的是,这种实践和技术(按功能组织项目)由全球最大的公司实施。因此,他们按项目功能划分团队,每个团队都处理特定的功能。此外,在使用git
时,合并和重置时降低了冲突的可能性。