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