模块化iOS应用程序有哪些方法?

时间:2015-02-04 04:30:08

标签: ios objective-c xcode architecture dependency-management

如果我有一个大项目并且有几个功能。这些功能将由另一个开发人员在另一个iOS项目中独立开发。这些功能可以包括UIView控制器,导航和iOS应用程序通常具有的其他功能。然后我有一个主应用程序,其中功能项目将集成在xcode工作区中。如何从主应用程序/项目中引用其他功能项目?我尝试从故事板中加载一个看起来没有找到它的viewcontroller。我也尝试使用构建阶段添加,但我无法使其工作。

我读了这篇文章Using CocoaPods To Modularize Big iOS Apps。该博客讨论了使用cocoapods,我试图避免。我似乎没有找到一些说它适用于SVN的东西,这就是我不会将它用于我需要的原因。有框架选项,但我正在寻找更好的解决方案。

3 个答案:

答案 0 :(得分:1)

Cocoapods可以帮助您将子项目集成到一个主项目中。除了cocoapods,您还需要一个模块化框架来帮助您使用这些子项目的代码。例如,子项目A需要使用子项目B的视图控制器,但是A不能在B中获取.h文件,这确实是个问题。我在iOS中有一个名为TinyPart的开源模块化框架,可以帮助您了解iOS中的模块化。 https://github.com/RyanLeeLY/TinyPart

答案 1 :(得分:0)

您可能希望遵循适当的模式,其中软件组件依赖于抽象而不是具体实现。请查看http://www.oodesign.com/dependency-inversion-principle.html

将该功能作为库项目,然后可以单独开发,然后卡在沙盒项目中进行开发。完成后,将其粘贴回主项目。

您应该为该功能声明一个接口(或在Objective-C中称之为协议),因此您的主项目知道如何使用它。制作该协议的虚拟实现,将其粘贴到主项目中,因此在开发库时,您仍然可以继续进行主项目的开发。

答案 2 :(得分:0)

了解如何从其他项目/框架加载其他storyboard的视图控制器here。不确定它是否正是您正在寻找的但似乎是一个类似的问题

根据您在上述链接中链接的指南中的情况,请查看Developing the Framework as a Dependent Project