2009-12-04 97 views
5

我来自一个企业Java开发组织,我们在很好地分离的可重用层中进行了开发。持久层,服务层等等构建复杂的iPhone应用程序?

现在,我正在寻找iPhone示例应用程序或关于如何构建复杂iPhone项目的文档。大多数书籍&苹果示例展示给你的代码非常有限&体系结构。他们不是可用的imo。

我还在寻找的是如何设置一个持续集成构建系统,该系统在代码签入时运行我所有的单元测试&将单元测试结果报告给我们可以看到结果的系统。 对于我们的java项目,我们使用svn,mvn & sonar。什么是苹果等同于此设置?它甚至有可能吗?

因此,总结我的问题:
Q1:有复杂的iPhone项目架构的任何例子或书籍? Q2:我们如何建立持续集成构建系统?

回答

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持续集成的良好信息。

5

iPhone的传统可以追溯到NeXT Computer的OpenStep。一段时间以来,NeXT的主要焦点是定制的企业应用程序。 iPhone上的技术在企业环境中得到了很好的验证。 NeXT是对象技术,模式和MVC的原始支持者之一。

也就是说,以前在Openstep中可用的一些现在已经消失了。 NeXT拥有一个完全先进的ORM系统(Enterprise Objects Framework - http://en.wikipedia.org/wiki/Enterprise_Objects_Framework),尽管它仍在Apple内部使用并且支持iTunes /等,但现在已经被使用Objective-C(Java版本仍存在)的客户弃用。一个简洁的ORM Core Data(http://developer.apple.com/macosx/coredata.html)取代了它的位置,现在可以在iPhone上使用。 SQLite(这很棒)也捆绑在iPhone上,供开发人员使用。

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

我不确定哪些书是可用的,但几乎任何以前的Openstep开发人员都将具有企业开发专业知识。你可能会考虑把你的项目拉进来,以帮助解决问题。

SVN和MVN可/捆绑在OS X上也有通过像芬克或系统的MacPorts在其他开源软件包拉动选项:

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

它看起来不像目前的声纳groks Objective-C。根据你的选择,也许你可以为此开发一个模块?