2009-12-04 96 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。根據你的選擇,也許你可以爲此開發一個模塊?