Xcode项目组结构的最佳实践?

问题描述 投票:14回答:2

在提供代码示例的教程和示例中,有时我看到Xcode项目导航器中的项目文件按照MVC模式(“视图”,“控制器”,“模型”)按组排列,有时它们被组织成组按功能(例如“登录”,“清单”)。

关于iOS,Apple有什么约定/推荐吗?哪个应该是最好的做法?

ios xcode file folder project-structure
2个回答
14
投票

开发人员以多种方式组织他们的组,代码和文件。但我使用如下内容:

  • 核心数据:包含数据模型和实体类。
  • 扩展:包含一个类(默认的apple类扩展+项目类扩展。)
  • 助手:包含第三方类/框架(例如SWRevealController)+桥接类(例如基于Swift的项目中的Obj C类)
  • Model:创建一个单例类(例如,AppModel - NSArray,NSDictionary,String等)来保存数据。 Web服务响应解析和存储数据也在此处完成。
  • 服务:包含Web服务进程(例如,登录验证,HTTP请求/响应)
  • 视图:包含故事板,LaunchScreen.XIB和视图类。创建子文件夹单元格 - 包含UITableViewCell,UICollectionViewCell等。
  • 控制器:包含与UIElements相关的逻辑或代码(例如,UIButton的参考+点击动作)

这个结构来自another Stack Overflow post

这些也可能对您有所帮助:

  1. http://akosma.com/2009/07/28/code-organization-in-xcode-projects/
  2. https://github.com/futurice/ios-good-practices/issues/28
  3. http://www.slideshare.net/MassimoOliviero/architecting-ios-project

6
投票

我实际上创建了一个项目来演示我认为我的小型或中型代码库的Xcode项目结构。你可以找到它here

这是一个概述:

  • 来源 - 所有源代码 帐户 - 与帐户相关的类(与会话相关的类,帐户逻辑等) 应用程序 - 应用程序相关的类。应用程序委托,配置类等 Core Additions - 来自苹果课程的扩展和子类 实用程序 - 通用实用程序类。有用的扩展,格式化实用程序,便利类等 基于元素的文件夹 - UIView,UITableViewCell等文件夹 本地持久性 - 本地持久层。与本地数据库的所有交互(领域,核心数据) 存储库 - 所有与模型相关的本地持久性逻辑 常量 - 所有常量。网址,字体,颜色,错误等 模型 - 所有模型(服务器端实体的表示)。我们也会抛出任何对象映射逻辑 模块 - 在这里我们可以找到按功能划分的每个应用程序的部分 基于模块的文件夹 - 每个文件夹包含所有特定于模块的视图控制器,视图,代理和相关类 网络 - 应用程序的网络层(例如负责与Web服务交互的类) 服务 - 所有与模型相关的Web逻辑
  • 故事板 - 包含所有故事板文件
  • 资源 - 任何附加资源,如媒体,文档,本地化文件等
© www.soinside.com 2019 - 2024. All rights reserved.