什么是Xcode解决方案组织的最佳实践和指南?

时间:2012-03-15 09:42:46

标签: iphone objective-c xcode

是否有关于如何在xcode中组织一个解决方案的最佳实践

目前这是我的根源:

  • 每个第三方框架的文件夹,例如KissXML
  • 我的单元测试的文件夹
  • 框架,产品和资源的文件夹
  • MyApp的文件夹,其中包含模型,视图,控制器,数据库,支持文件和域的子文件夹。

2 个答案:

答案 0 :(得分:1)

我的是:

Main application
    Model
    Singletons
    Helper+managers
    Controllers    // I keep nibs with their respective class files
    View
    Resources
        images
        plists
        //  ... groups from other types of resources if needed
    Supporting files
Unit tests
Frameworks

对于iOS上的可重用代码,我使用静态库并将它们作为单独的项目添加到Xcode工作区中。即使对于第三方代码,如果没有静态库目标,我也会创建一个。这样,我对待第三方代码的方式与处理自己的库代码的方式相同。此外,我不必担心第三方代码的版本控制。

我发现让Xcode镜像代码的文件系统组织很重要,至少达到某种程度。我在阅读this blog post后采用了这种做法。不过,我不会低于上面列出的水平。例如,当您在github上共享代码时,这会有所帮助。而不是让下载程序或贡献者必须将所有源转移到单个目录中,而是将其组织成功能桶。我见过一些Xcode组织正常的项目,但文件系统中的每个源文件都被转储到一个目录中。

答案 1 :(得分:0)

虽然没有特定的方法可以没有缺点,但这是我们使用的

  1. 应用程序核心或模型的文件夹。这包括子文件夹 使用的任何第三方库和专用模型的文件夹 类。例如,会有用于Web服务处理的文件夹。

  2. 一个主要模块的文件夹,其中包含每个模块的子文件夹 包含类文件,笔尖和资源的屏幕(这可能包括 根据需要提供更多子文件夹。

  3. 第二个主要模块的文件夹等等。

  4. 这个模型为我们提供了一个主要目的。我们的应用程序核心包含日志记录,数据加密/解密等内容。因此,我们开发的许多应用程序都不太可能进行更改。类似地,会有一些应用程序需要主要模块1的功能并添加其他一些东西。因此,这三个文件夹组在subversion上保持为单独的存储库。

    现在,当我们开始一个新项目时,我们为项目创建一个新的存储库,并根据需要将其与应用程序核心存储库和其他主要模块存储库相关联。因此,一个项目团队在应用程序核心中所做的任何更改也会反映在其他项目中。与其他主要模块相同。这也有助于我们实现完全模块化。

    当然这个方案会有缺点,但这个方案现在很适合我们多年了:))