有開發ios的公司用storyboard寫程序的嗎?


我個人習慣是用代碼寫UI的。代碼寫界面有些好處:

  • 代碼容易復用。
  • 容易批量調整,比如修改顏色的配置,全部界面顏色都變了。

也有人喜歡storyboard,好處也很明顯:

  • 直觀,方便跟設計師一起調整界面。
  • 可以很快地拼接出一個App原型。(但假如界面變動,就很慘了,幾乎要重新拼過)。

我的看法是:

  • 短期快速出一個Deom來驗證想法,xib或storyboard會很快。但長期來看,用代碼寫UI未必會慢。
  • 假如你屏幕越大,xib或storyboard就越有優勢;屏幕越小,代碼就寫UI就越有優勢。

我以前用iMac時,也傾向於用xib或storyboard。後來用了MacBook Pro,就改成寫代碼了。

到了AutoLayout時代,我個人覺得用滑鼠在storyboard中拖那些約束實在太麻煩了,就轉成使用Cartography庫來手寫布局。而有些幾乎不變的布局,我就關掉xib的AutoLayout,直接拖拉,比如一些彈出的消息框。

用代碼或者storyboard做UI哪個好,一直在爭論的。不同團隊選擇會有不同,多些選擇也挺好啊,看你個人喜歡啦。假如加入一個團隊,對這方面有規定,就以團隊的標準來做,反正轉過來也很容易。

storyboard的問題是,將很多界面都放在同一個文件中。這樣多人協同開發時候,就會修改同一個文件。再用版本控制工具合併時,容易做成衝突。

===============

最後一點,我有所誤導。根據評論的說法,可以切分storyboard。


必須有啊,騰訊的微雲和之前的微群組就是


我們就是用純storyboard開發的啊,並沒有上面大家所說的那些問題。

感覺很多人對sb的理解也有問題,如果是sb開發,必然是多sb分開,我們的方案是團隊每人一個sb,自己維護自己的sb,跨sb頁面跳轉也是代碼調用別人sb的identifier,從來沒有在版本控制上有什麼問題啊,效率上感覺快很多。


現有答案寫的挺好了,我補充一點:

Storyboard 不太好的一點是,有時即便你什麼都不改,僅僅是打開它,由於這個 Storyboard 被創建時的 Xcode 版本和你現在的不一樣,也可能會改變這個文件。

即只要你打開看一眼這個文件。它就有可能變動。

所以當多人協作的各位開發環境不是100%一致,然後同時做一個 Storyboard 時,你可以想像這個東西會發展出多少個相互之間有細微差別的分支。


海了去了。



我司新App應該都是用SB吧。

自己沒試過,光聽別人說好不好根本沒意義,Auto Layout 和 Classsize 才是SB的強項,反正我覺得最蠢就是純xib(很多人把SB用成了xib呵呵呵


我最開始學iOS的時候是用xib去做,之後也用過SB,現在基本上都是純代碼去寫。之所以不使用xib和SB主要原因是:

1.很不方便繼承。

2.xib和SB如果拖拽一些自定義的控制項很不方便。

3.目錄結構不清晰。

4.多人開發有時會莫名其妙的文件衝突。

5.項目里如果xib和SB文件很多極大的影響編譯器的響應時間。


唐巧有篇博客討論了這個問題iOS 開發中的爭議(二)

樓上適用storyboard的基本屬於3-5人小團隊,並且人員比較穩定,所以一個人能負責一個storyboard,但是如果是多人開發,一個模塊不止一個人,這就很蛋疼了,storyboard可以一個項目使用幾個,但是適合一個項目十幾個storyboard么?這就是問題之一。更別說還要考慮到人員變遷代碼接手問題,如果前開發人員沒有良好的IB習慣,storyboard簡直就是一場噩夢,接手程序員絕對有想從來一遍的感覺 - -

例如百度知道的sunny就推崇IB,但是他們的團隊是四五個人的穩定小團隊,招人也不經常,各自負責自己的模塊,一個模塊一個storyboard,其他人不碰別人的storyboard,但是一旦遇到天貓這種產品線多,開發人員多達幾十的app,天貓的casa就說不提倡IB。

大家可以下載一些知名app的ipa文件解壓看看裡面有多少nib和storyboardc文件就知道IB在這個app中的比重,基本上見仁見智,程序猿最好都會- - 。


有些人就是不願接受新知識而已,固步自封


我全部的項目都是storyboard寫的。。要吐槽的是size class比想像中的難用。。我比較喜歡的是所見即所得。。另外如果使用storyboard拆分ui的話xcode6或以前會比較麻煩。xcode7好像加上storyboard引用,如果拆分的話,會跟直觀一點。如果用storyboard的話,controler的復用沒什麼影響,但是view的復用性就不怎麼好了。


GitHub - CatchChat/Yep: Meet Genius

這個項目里有40個Storyboard


界面複雜了sb加約束,效果不對總會習慣清楚所有約束,然後繼續。。。


用PureLayout 通過純代碼布局,爽。

好處就是對程序架構清晰,不迷糊。


必須有啊,百度知道app,stroryboard, xib主要做靜態元素變化比較少的,代碼主要控制異變的通過動態控制更直觀一些,純xib和純code都不是最好的方法,兩者結合才是最優解;


碼市 on the App Store

這個就是用 storyboard 寫的,不知道以後會不會也像 Coding/Coding-iOS · GitHub 一樣開源出來。。


我之前一直用masory, 發現還是xib 或 stroryboard效率高。

但stroryboard的不足也很明顯,密集的控制項拉線太麻煩,大神怎麼解決?


用了PureLayout才發現在SB里拉線效率太低,強烈推介,由uikit團隊工程師開發


一般來說,xib+代碼對於協作開發比較適合

這是因為xib模塊化比較好,低耦合,加上用xib做的ui不會很複雜,單人足以(多人不適合,用git log看一下修改就知道了)

storyboard是xib的集合,除非整個ui框架全部單人做,否則多人協作時在版本控制上會衝突不斷,降低效率


推薦閱讀:

開發者如何減少移動廣告平台價格或分賬比例調整等波動對自身收入帶來的影響?開發者自己應該做好什麼?希望廣告平台做好什麼?
寫十年程序是什麼感覺?
為什麼 iPhone 6 Plus 要將 3x 渲染的 2208x1242 解析度縮小到 1080p 屏幕上?
如何系統學習iOS網路編程?
想用業餘時間學習 iOS 開發,零基礎,有沒有推薦自學用的書?

TAG:iOS | iOS開發 | iOS工程師 | iOS開發入門 |