通過iOS項目架構都是以MVC為主,今天,我要分享的項目架構主要引用MVVM+MVC,並展示一下目錄該怎么分級。
初級目錄:
我們只需要關注SGZH文件夾下的目錄,其他為Xcode管理的目錄。可以看到此目錄為項目初級目錄,我們開發過程只需對初級目錄內的文件進行操作,其主要划分為3大塊:
1.AppDelegate: AppDelegate是程序入口,程序啟動和顯示邏輯都定義在內部,主要可以讓開發人員快速找到代理文件並了解程序從啟動到顯示過程,也可以快速進行一些初始化測試。
2.Resource: 此目錄主要存放一些項目資源文件,如項目切圖、音頻、視頻、coreData數據等。
3.Class: 存放我們編寫的代碼文件。
4.SupportingFile: 項目配置文件。Info.plist、main.m、pch文件。
二級目錄:
Resource目錄下:
相對較小的切圖放在Assets內部,並以功能模塊划分文件夾。如果較大的圖,如啟動頁,引導頁,可以在該目錄下新建對應的功能模塊文件夾存放。其他音頻視頻文件可以建立對應名字的文件夾存放。
Class目錄下:
Category: 項目分類文件。
Macro: 項目全局頭文件、全局宏和常量
Other: 其他一些配置文件,如網絡請求API
Main: 項目主要文件,全局共用文件以及一些基類
Tool: 項目工具類,如網絡請求工具,緩存工具,app管理工具等
Vendor: 存放項目需要手動引入的第三方庫。
Sections: 項目功能模塊分組
section里的模塊可按底部tabbar對應選項卡划分,若有登錄、新特性等比較大的功能,也可划分為一個模塊。 若果模塊內的子模塊功能比較多,也可在其內部划分一個子模塊。 每個模塊內部都分4個文件夾,分別存放對應的Controller、Model、View、ViewModel。 據我了解,大部分企業iOS項目都會選取類似這種架構模式。個人覺得此架構較為清晰,可讀性好,並且每個模塊文件夾相對獨立,開發人員相對專注開發自己的模塊。
以上為本人從事iOS開發以來總結的一些項目架構經驗,如有不足或者可改進之處可提出修改。