2012-08-25 70 views
2

我在programmers.stackexchange.com上閱讀了幾個問題,以確定這個問題在這裏是否更好。我認爲這個問題屬於SO,但我不完全確定。有關設計模塊化iOS項目的建議?

我有Objective-C和UIKit的基本知識。幾年前,我已經閱讀了Aaron Hillegass編寫的OS X(第二版)的大多數;這是我的大部分知識所在。其餘來自各種網站,SO問題,SDK文檔和小型個人項目(包括OS X和iOS)。

我開始爲我工作的大學開設一個iOS(特別是iPhone)項目。此應用程序將具有不同的功能部分。 「部分」的一些例子是:虛擬學生證,當前學期的課程安排(用戶),校園地圖等等。我希望能夠在未來版本的應用程序中輕鬆添加新的部分。因此,我想設計一個項目,使一個部分是獨立的,從主項目,代碼組(儘可能)。

除了能夠通過創建新模塊添加新功能外,我還希望項目能夠被更多的開發人員使用,只有我自己。也就是說,我希望我的團隊中的其他開發人員能夠按照「最佳實踐」爲應用程序開發新模塊。

目前,我基於我的項目圍繞UITabBarController與我的「模塊」是新的UIViewController s和NIBs。我感覺這可能不是建立我的項目的最佳方式。因此,我的問題:

這樣的項目的一些最佳實踐,我已經描述了什麼?

回答

5

我認爲你是在正確的軌道上。 UIViewControllers是解決這個問題的好方法。

當你有很多選項的時候,UITabBarControllers通常很笨拙;帶有可能性表格視圖的歡迎屏幕可能更具可擴展性。例如,請參閱Facebook的左側面板或內置的設置應用程序。

我通常發現iOS項目中重用的難點不在於視圖控制器(通常很好地隔離),而是像網絡請求,數據存儲,帳戶管理等基礎架構。您可能想要從現有的框架開始(比如說Parse或者RestKit),或者至少看看它們是如何分解的。

關於好的,可重用的iOS設計的主題,你可能會發現Matt Gemmell's post about API design有幫助,如果不是你正在尋找的。

+0

對於tableView推薦+1。如果有> = 5個視圖,TabViews真的很好。 – sosborn

+0

我使用Grails作爲服務器端框架(更好或更糟糕)。我目前的計劃與選項卡視圖是有一個「更多」按鈕,導致不太重要的(?)模塊的表視圖。我想做一個跳板類型的界面,但是現在從頭開始編寫一個界面,我還沒有找到我喜歡的第三方組件(並且我聽說iOS6中可能有一個組件)。 –

+0

只需閱讀您的編輯。我喜歡設置應用界面的建議。 –

2
  • 建立編碼風格和資源位置的約定。
  • 開發靜態庫。
  • 如果你的靜態庫需要他們自己的資源(這可能是一個必要的痛苦),你可能想要爲你的資源使用bundle來減少資源衝突。
  • 集中您的構建配置文件,而不是試圖定義每個項目中的每個設置(使用xcconfigs)。

然後,您可以將這些庫配置爲應用程序項目中的依賴項,並適當地構建,鏈接和複製。

一個重要的注意事項:由於ObjC符號(以及它們引用的內容)不能被​​去除,所以在這些情況下我經常會碰到C和C++符號(如果適用)。這可以減少很多未使用的「二元脂肪」。因此,主要處理其他庫(例如系統庫)中聲明的符號的「核心」庫和庫可能使用C和C++,而您的更高級抽象和派生類型可能使用ObjC。