自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

優(yōu)雅快速的搭建iOS工程框架的探討

移動開發(fā)
一個簡潔優(yōu)雅的iOS工程目錄,能夠幫助團隊提升開發(fā)效率,同時也令自己進行心情愉悅的編碼;反之,雜亂無章的目錄則會使人心情煩躁,降低團隊開發(fā)效率。

一個簡潔優(yōu)雅的iOS工程目錄,能夠幫助團隊提升開發(fā)效率,同時也令自己進行心情愉悅的編碼;反之,雜亂無章的目錄則會使人心情煩躁,降低團隊開發(fā)效率。

不知你是否也有同感?歡迎你在評論區(qū)寫下的感受。

首先,我想說:

  • 本文說的工程架構(gòu)適用于純代碼開發(fā)的團隊,也適用于使用Storyboard開發(fā)的團隊;
  • 本文適用于傳統(tǒng)的Tabbar+NavigationBar搭建的app,也適用于其他非傳統(tǒng)的app;
  • 本文特別適用于讓團隊的新進成員了解項目的整體構(gòu)架,并且進行快速開發(fā)

本文以公司的FCS app為例,界面如下:

 

主界面

公司的項目屬于Objective-C和Swift混編的項目,對于純swift的項目和純OC的項目,可能文件夾和類文需要自行修改,Xcode項目工程目錄如下:

 


工程框架搭建圖

正如上圖所示,我將項目劃分為9大部分,GitHub地址

Models:模型數(shù)據(jù)類,所有自定義的數(shù)據(jù)模型應該放在此處;

Views:視圖類,以功能模塊還需要再建一層文件夾,所有自定義的功能模塊的視圖類都應該放在給自的文件夾下此處,,手動拖入的第三方UI控件除外,第三方的UI應該放入Vendor文件夾里;

Controllers:控制器類,所有控制器類放在此文件夾里面,如果有BaseViewController、BaseNavigationController可以放在Base文件夾下(可以在此目錄下新建的一個Base文件夾),同時相應功能模塊的Storyboard也放在此目錄下,Storyboard放在此處相比于放在View里面更加方便(我們項目最開始在Views目錄下新建Storyboards文件夾來存放所有的Storyboard,這樣的做法弊端是去相應的Storyboard和功能模塊的VC太遠,操作不便);

Resouces:資源文件夾,存放項目需要用到的音頻、視頻、圖片(webP格式的圖片或者內(nèi)存比較大png只需要用到一份的背景圖片)、字體、動畫等等資源文件都放在此處;

Util,一些工具類的文件夾,比如Objective-C的分類文件夾Category、swift擴展類的文件夾Extension,管理單例類文件夾Manager等等;

Vendor,手動管理的第三方庫,上圖的BookRoom是我們FCS app的BookRoom模塊都是封裝為framework的形式引入的,所以就適合在此處添加,還有一些比較輕的第三方庫就可以手動拖入代碼添加進來,比如我們的項目中有一個獲取適配型號的第三方庫DeviceUtil,對于這類比較輕的庫盡量使用手動拖入代碼管理,畢竟項目中的framework多了,會影響app的啟動時間,這個在WWDC 2016 Session 406 - Optimizing App Startup Time的演講中有講原理;

Pods :優(yōu)秀的第三方庫管理工具,比如網(wǎng)絡請求AFNetworking,圖片加載SDWebImage等等比較重的第三方庫就可以使用Pods自動管理,當然你也可以使用Carthage來管理,具體使用哪個見仁見智,網(wǎng)絡上也有很多關于這個的討論。我們公司使用的是Pods,所以就是以Pods為主了

Appdelegate和首頁:Appdelegate和首頁是各個功能模塊的入口,所以放在頂部最顯眼的位置,(對于傳統(tǒng)Tabbar+NavigationBar App的首頁類文件可能會在對應的模塊下);

Assets.xcassets、info.plist:這部分相對Appdelegate在同一目錄下,但是放在最下面,這部分的操作頻率不是太多,Assets.xcassets里面的圖片,可以使用功能模塊放置添加(New Folder,以模塊命名)。

看到這里,有的人會想:一個項目直接按照功能模塊劃分不也挺好的么,每個功能模塊里面再按照MVC的模式劃分,以下面這個app為例

 


藝學機構(gòu)版

劃分如下所示如下圖所示:

 


以功能模塊劃分工程框架圖

這兩種搭建項目框架的模式?jīng)]有孰優(yōu)孰劣之分,只有得放到具體情境下面討論才有意義,不過很明顯,第二種以功能模塊劃分的模式適用于以小團隊開發(fā)(iOS端2-3人以下),這樣每個人負責開發(fā)一個模塊,效率非常高。如果團隊人員比較多,則更適合采用***種模式,這樣開發(fā)效率更高,比如有人專門負責,網(wǎng)絡層代碼的編寫,有人專門負責UI界面的編寫,有人負責日志類的封裝編寫。

一些其他的小建議:

文件夾模塊使用英文而不要使用中文命名,并且使用正確的英文名不要使用拼音;

  1. 名稱首字母大寫;
  2. 文件夾層數(shù)不要太多,最多三層;
  3. 快速定位某一個類文件的位置,光標在定位在類文件里面,按快捷鍵command+shift+J并可定位他的具體位置模塊。

demo的GitHub地址

責任編輯:未麗燕 來源: 簡書
相關推薦

2011-09-22 14:08:38

需求工程的探討

2010-09-15 09:03:44

JavaScript

2018-05-24 11:38:17

2021-11-18 09:46:24

ServerlessKubeless 阿里云

2023-04-18 10:05:20

系統(tǒng)框架

2024-04-02 09:55:36

GolangColly開發(fā)者

2009-06-24 17:21:23

JSF框架設計模式

2024-06-05 06:43:20

2023-01-14 08:12:53

KnowTopic配置

2018-10-08 14:13:04

區(qū)塊鏈框架項目

2019-02-21 06:51:31

2022-04-12 12:02:14

Nginx公網(wǎng)加密數(shù)據(jù)

2011-04-08 10:51:17

Objective-CiOS

2024-05-24 10:51:51

框架Java

2019-10-09 11:26:01

JavaXMLSQL

2024-07-04 08:02:59

2024-01-24 10:48:39

CMakeMakefile文件工具

2021-12-03 11:06:01

VeleroKubernetesLinux

2009-10-28 12:39:33

Java EE無框架

2017-05-27 09:23:10

IOS框架APP框架代碼
點贊
收藏

51CTO技術(shù)棧公眾號