构建复杂的iPhone应用程序?

时间:2009-12-04 07:48:30

标签: iphone architecture continuous-integration

我是从一个企业Java开发组织来的,我们在很好的分离可重用层中进行开发。持久层,服务层等等。

现在,我正在寻找关于如何构建复杂的iPhone项目的iPhone示例应用程序或文档。大多数书籍和苹果的例子显示你非常有限的代码和建筑。它们不适用于imo。

我还在寻找有关如何设置连续集成构建系统的信息,该系统在代码签入和运行中运行我的所有单元测试。将单元测试结果报告给我们可以看到结果的系统。 对于我们的java项目,我们使用svn,mvn&声纳为此。这个设置的苹果等价物是什么?它甚至可能吗?

所以,总结一下我的问题:
Q1:复杂的iPhone项目架构是否有任何示例或书籍? Q2:我们如何设置持续集成构建系统?

2 个答案:

答案 0 :(得分:6)

您想要一个复杂的例子吗? This question链接到许多非Apple开源iPhone应用程序,包括my own。一些应用程序相对复杂。

就设计而言,我强烈推荐这本书Cocoa Design Patterns。虽然不是严格意义上的iPhone(鉴于Cocoa从NeXT开始,最近在Mac上出现),所涵盖的设计模式是Cocoa框架和Cocoa应用程序架构的核心。

我还建议支付WWDC 2009 videos并观看会议“iPhone用户界面设计”,“有效的iPhone应用程序架构”和“原型设计iPhone用户界面”。在这些会话中构建iPhone应用程序有很多很好的建议。

我已经在我的应用程序中使用了单元测试,但我还没有进行任何形式的持续集成构建。但是,this question看起来有很多关于与Xcode持续集成的好信息。

答案 1 :(得分:5)

iPhone的传统可以追溯到NeXT Computer的OpenStep。一段时间以来,NeXT的主要关注点是定制的企业应用程序。在iPhone上运行的技术在企业环境中得到了充分证明。 NeXT是对象技术,模式和MVC的原始倡导者之一。

也就是说,以前在Openstep中提供的一些东西现在已经消失了。 NeXT有一个完全先进的ORM系统(企业对象框架 - http://en.wikipedia.org/wiki/Enterprise_Objects_Framework)虽然仍然在Apple内部使用并且支持iTunes /等,但现在已经不再使用Objective-C(Java版本仍然存在) 。精简的ORM,核心数据(http://developer.apple.com/macosx/coredata.html)取代了它,现在可以在iPhone上使用。 SQLite(非常棒)也捆绑在iPhone上,可供开发人员使用。

美中不足的是,当前版本的iPhone的XCode对子项目/框架的掌握有限,因此对可重用代码进行分区比以前更难。 Omni的Tim Wood提供了有关如何在iPhone上管理XCode框架的一些细节(http://blog.omnigroup.com/2008/10/01/using-frameworks-in-iphone-applications/)。不幸的是,这个过程并不像应该的那样容易。

我不确定哪些书籍可用,但几乎所有前Openstep开发人员都将拥有企业开发专业知识。您可以考虑将一个项目纳入项目中以帮助解决问题。

svn和mvn在OS X上可用/捆绑。还有通过fink或MacPorts等系统引入其他开源软件包的选项:

还有一些支持TDD的框架选项。 Test Driven Design for iPhone Native apps

此时它看起来不像声纳格斗物Objective-C。根据您的选择,您可以为此开发一个模块吗?