1.架構(gòu)原則:
- 易讀性
- 易維護(hù)性
- 易擴(kuò)展性
2.架構(gòu)圖
3.目錄結(jié)構(gòu)
3.1 應(yīng)用入口
AppDelegate
是應(yīng)用的代理厂榛,應(yīng)用級的事件都委托它處理,包含啟動退出、推送等事件疼进,以及IM、支付等第三方的回調(diào)螺捐,這使得AppDelegate
內(nèi)代碼龐大颠悬,錯綜復(fù)雜,十分不利于閱讀和維護(hù)定血,因此新增了一個(gè)AppDelegate+AppService
類別赔癌,用來處理生命周期之外的業(yè)務(wù),AppDelegate
作為事件入口澜沟,具體實(shí)現(xiàn)直接調(diào)用類別里的方法灾票。
3.2 Models
Modules
包含了應(yīng)用內(nèi)的功能模塊,根據(jù)底部Tab
欄劃分并關(guān)聯(lián)實(shí)體文件夾(默認(rèn)是虛擬的要手動建立實(shí)體文件夾拖進(jìn)來)茫虽,每個(gè)模塊內(nèi)使用的是MVC模式
有人會問為什么多了
Resource
和Service
文件夾刊苍,MVC是一種設(shè)計(jì)思想,并非死套路就仨文件夾濒析,根據(jù)實(shí)際需求適當(dāng)增加正什,在這我選擇在Service
封裝數(shù)據(jù)請求,VC
里調(diào)用拿數(shù)據(jù)即可
至于
Resource
為什么在這号杏,我認(rèn)為當(dāng)功能模塊層級較多時(shí)婴氮,每個(gè)大功能模塊都對應(yīng)許多資源,對應(yīng)到模塊內(nèi)用起來方便盾致,當(dāng)然也可以放到最外層的Resource
文件夾里主经,建立對應(yīng)的模塊名稱,在這兒我是選擇把公共的放到最外層Resource
里庭惜,功能相關(guān)的放到模塊里的Resource
文件夾內(nèi)罩驻。
3.3 管理模塊
Manager
的定義是全局基礎(chǔ)服務(wù),通常使用類方法或者單例來實(shí)現(xiàn)护赊。
主要包含對應(yīng)用惠遏、用戶的管理和服務(wù),例如網(wǎng)絡(luò)狀態(tài)監(jiān)聽骏啰,廣告頁應(yīng)用介紹頁等爽哎;
用戶快速登錄退出操作以及登錄狀態(tài)的獲取等熏版。
Manager | 管理內(nèi)容 |
---|---|
AppManager |
包含應(yīng)用層的相關(guān)服務(wù) |
IMManager |
IM服務(wù)與管理 |
ShareManager |
分享相關(guān)服務(wù) |
IAPManager |
內(nèi)購模塊 |
UserManager |
UserManager |
3.4 工具類
Utils
文件夾內(nèi)主要包含全局通用工具呀枢,來源于對三方框架的二次封裝,或是自己寫的工具類柿顶。在這個(gè)項(xiàng)目里祈秕,我封裝了帶AES
加密網(wǎng)絡(luò)請求工具渺贤,全局Toast
提示,廣告頁等请毛。
3.5 基類
Base
文件夾用來存放項(xiàng)目的基類志鞍,基類作用包含一些定制化的內(nèi)容,
例如頁面樣式方仿,空數(shù)據(jù)頁面等固棚,使用基類來實(shí)現(xiàn)统翩,可以統(tǒng)一控制,利于維護(hù)此洲,減少冗余厂汗,也為更清晰。
3.6 第三方文件夾
第三方文件夾放一些第三方的類庫和對第三方封裝呜师,比如第三方登錄娶桦、支付、IM等汁汗,現(xiàn)在項(xiàng)目我還沒有添加第三方框架衷畦。
3.7 全局宏定義
全局宏顧名思義是定義了一些全局通用宏。我這里定義了四個(gè):
UtilsMacros
定義的是一些工具宏知牌,比如獲取屏幕寬高祈争,系統(tǒng)版本,數(shù)據(jù)類型驗(yàn)證等角寸;
URLMacros
定義服務(wù)器接口地址以及環(huán)境開關(guān)铛嘱;
FontAndColorMacros
定義全局用的色值、字體大小袭厂,這里建議跟設(shè)計(jì)師共同維護(hù)一個(gè)設(shè)計(jì)規(guī)范墨吓,例如:定義一個(gè)主色調(diào)宏MainColor
,色值是0x333333
纹磺,我們?nèi)质褂?code>MainColor宏作為背景顏色帖烘,當(dāng)某天App改版,色值改變橄杨,我們只需要去更改0x333333
即可秘症,其他代碼不需要動,同時(shí)也能一定程度約束設(shè)計(jì)師式矫,不要隨便增加一種顏色乡摹,非常接近的顏色應(yīng)當(dāng)使用一個(gè)。如果設(shè)計(jì)師不愿意維護(hù)這個(gè)規(guī)范采转,你可以嘗試打一架聪廉,打不過的話,就只能自己維護(hù)了故慈。
ThirdMacros
包含第三方框架相關(guān)的定義板熊,例如keySecret
等。
3.8 全局宏定義資源文件
這里存放了全局的一些資源文件察绷,功能模塊的我放到了模塊內(nèi)的Resource文
件夾內(nèi)干签,個(gè)人喜好。