iOS建立專案檔管理規範

來源:互聯網
上載者:User

標籤:

當我們進入到新的公司的第一天,看到以前老員工編寫的代碼,找個東西累死人咧,那個抓耳撓腮的啊,一般情況下都有想揍人的趕腳。 哈哈,不忙,先想一下自己的代碼!想一下自己寫的代碼怎麼才能新來的人一眼就能看懂,想找什麼,在幾秒之內就能找到?這個就要在前期建立項目的時候留神 了, 要保證項目的易讀性、易維護性以及易擴充性等。

在我看來,作為一個項目開發的領頭人,你可以從兩個方面著手:

  • 項目的架構

  • 代碼的規範

今 天就先介紹我在做新項目的時候項目架構(代碼規範我會在下一篇文章以總結的形式羅列出來),搞理論這個我不擅長,只好整個例子說一說。考慮到很多人在剛學 OC的時候都用“新浪微博”來練手,所以這裡就拿新浪微博的iPhone用戶端來說事,也正好對比一下,這樣更能看出問題所在。(其實,目前市場上基本所 有的應用都適用,本文說的就是一個思想,不論平台,不論語言,只要能理解,就可以應用到實際的應用開發中。)

為了為項目代碼建立一個易讀性、易維護性、易擴充性都相當不錯的代碼模板,現在要求項目代碼的搭建者按照如下的步驟進行:

1、所有建立項目最好是「Single View Application」:

2、填好各個項目,這裡注意,項目名稱最好使用英文:

3、項目建立好之後,第一件事就是修改最低部署系統的Target版本:

4、接下來就是源檔案管理,我們看左側的導航地區:

  • 非代碼源檔案全部移動到「Supporting Files」中;

  • 選 中Appdelegate和ViewController的.h和.m,右鍵「Show In Finder」,然後把Appdelegate和ViewController的.h和.m移到廢紙簍,回到Xcode,刪除紅色的剛才我們刪除的檔案 (也可以直接在Xcode中右鍵->delete->movetotrash, 但是有時候會刪除地不乾淨)。

5、 匯入我們已經準備好的項目結構檔案(就是項目結構的檔案夾和檔案的集合在這下載查看)到與項目名稱相同的目錄之下,:

結果是這樣的:

6、 其中檔案夾`QLClasses`中是該項目中的所有原始碼,`QLResources`中存放的是所有的非代碼資源檔,下面就這兩個檔案夾的結構就新浪微博目前的結構進行詳細的說明。整體的架構圖如下(這才是重點):

  • 需 要注意的是圖片的處理,在`QLResources`中有個`QLImages`檔案夾,這個檔案夾是供特殊的圖片檔案而設立的,你不能把所有的圖片都塞 到這裡,這個不科學。最好還是放在Assets.xcassets中,那麼到底是哪些圖片呢?在有些項目中,大量使用了全屏的背景圖片,這樣的圖片我們一 定不能使用[UIImage imageNamed:@"imageName"]的方式載入,因為這個方法會把圖片直接緩衝到記憶體中,試想一下,如果很多張圖片都塞進記憶體是什麼情況? 那就只能使用[UIImage imageWithContentsOfFile:@"imagePath"]的方式,但是我們知道Assets.xcassets中的圖片在產生ipa 後會被打包成一個壓縮檔,以減少記憶體的佔用,這個`imagePath`從哪裡來呢,所以問題就解決了。把這些圖片放到這個檔案夾下面,載入的時候直接 用NSBundle解決path的問題,ok!

  • 項目中肯定會遇到多個介面使用同一個資料模型的問題,最好還是在`QLMain`檔案夾中建立兩個檔案夾`QLCommonModel`和`QLCommonView`兩個檔案夾,以便統一管理。

  • 在Xcode左側導航中看到的結構中的每一個檔案夾(除卻Supporting Files),必須映射到Finder中的檔案夾中,這樣在不開啟項目的情況下,我們就可以迅速的定位出以前寫過的工具類的位置,也方便在Finder中查看當前項目的結構。

iOS建立專案檔管理規範

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.