你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> iOS新建項目架構規范

iOS新建項目架構規范

編輯:IOS開發基礎

big-bunner9_0.jpg

注:這是本人對多年來iOS開發中項目結構一點自己的見解也是為公司內部制定的iOS項目創建模板結構;文中引入了sina的iOS-iPhone的客戶端的界面架構,但是本人並非sina的工作人員,只是根據自己的理解劃分了項目結構,歡迎提出不同觀點:[email protected]

項目結構GitHub地址:https://github.com/Shreker/QLProjectDemo.git

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

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

  • 項目的架構

  • 代碼的規范

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

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

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

609405-20151204103251564-927654444.png

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

609405-20151204103307221-1831532967.png

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

609405-20151204103317611-2132074066.png

4、接下來就是源文件管理,我們看左側的導航區域:

609405-20151204103338752-1737326806.png

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

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

5、 導入我們已經准備好的項目結構文件(就是項目結構的文件夾和文件的集合在這下載查看)到與項目名稱相同的目錄之下,如圖:

01.png02.png

03.png

結果是這樣的:

04.png

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

06.png

  • 需要注意的是圖片的處理,在`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中查看當前項目的結構。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved