2012-07-12 46 views
6

故事板似乎是處理iOS中多個視圖控制器的優雅方式,以及它們之間的轉換。iOS故事板 - 實際經驗重複:多個開發人員?

但是,由於擔心在多個開發人員對同一個故事板文件中的視圖控制器進行更改時發生的情況,以及可能導致的合併衝突,我避免使用它們。

有沒有人有過這方面的實際經驗,在適度複雜的生產應用程序?

您的評估是什麼 - 故事板是否準備好在這方面的「黃金時段」?還是更適合單個開發人員或小型開發團隊?

(又有怎樣的解決方法,如 '拆分' 成多個故事板文件?)

意見?

謝謝!背景

回答

9

點點:

我的5個人小組,四名開發人員和QA,剛剛完成了靈活運用了大量顯著故事板一個相當大的項目(代碼50K +線)。我們至少有10個不同的故事板,其中許多導航結構的深度達到5或6層。

此外,我們嚴重依賴Perforce的版本控制,每天有數十個簽入。

我的經驗:

從來沒有一次我只好就別想處理一個解決與我們的任何故事板。由於兩個主要原因,它們在版本控制方面處理得非常好。首先,如果你打開一個,你會發現它是結構良好的XML,與版本控制非常好。其次,通過故事板,您將需要總是想要在添加任何細節或代碼之前對整個UI結構進行佈局(這就是整個觀點)。這非常適合團隊編碼解決方案,因爲每個成員都可以採用單獨的ViewController並實施它,與其他團隊的努力保持隔離。

但是,我會建議做一些'分片',因爲你可以很容易地得到一個巨大的老鼠巢連接進行。

最後:

如果您在網上四處張望了一下,你會發現很多負面反應,故事板,因爲它可以得到「凌亂」通過從一個視圖到下沿的數據。但是,如果你陷入這種情況,你已經違反了MVC的基本原則。您不應該使用您的視圖來存儲和管理數據。起初它既誘人又輕鬆,但最終會讓你陷入困境,因爲你的項目超越了基本的範疇。

+0

良好的響應,SethHB - 非常感謝你! ...(其他人都喜歡與Storyboarding分享他們的體驗?) – rondoagogo 2012-08-29 01:20:56

+0

@SethHB:很好的建議,感謝分享。小問題:'分片'是什麼意思? – 2013-03-13 14:11:23

+1

@rsanchezsaez Sharding是參考原始問題。基本上,它意味着將你的項目分成多個Storyboard的子集。你擁有的故事板越多,每個人管理起來越容易;但是每增加一塊板子,整個項目的複雜性就會增加。這是一種折衷,你必須找到自己的平衡點。 – SethHB 2013-03-13 17:58:44

4

合併衝突仍然是Apple尚未解決的一個大問題(包括在Xcode 4.6中)。有時,只是觀看故事板內容導致它被修改。這些修改似乎是無害的內部工作,但如果有兩個人在未做修改的情況下查看故事板,保存該文件,然後提交,您可能會看到不明白如何合併的衝突。我在此之前提交了一個錯誤,它被標記爲已知問題的副本。

也看到這些問題,支持這一點:

Storyboards and SVN conflicts

http://robsprogramknowledge.blogspot.com/2012/01/uistoryboard-best-practices.html

Xcode changes unmodified storyboard and XIB files