iOS 搭建APP框架拙計(jì)

1.架構(gòu)原則:

  • 易讀性
  • 易維護(hù)性
  • 易擴(kuò)展性

2.架構(gòu)圖

image

3.目錄結(jié)構(gòu)

image

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模式

有人會問為什么多了ResourceService文件夾刊苍,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 管理模塊

image

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 工具類

image

Utils文件夾內(nèi)主要包含全局通用工具呀枢,來源于對三方框架的二次封裝,或是自己寫的工具類柿顶。在這個(gè)項(xiàng)目里祈秕,我封裝了帶AES加密網(wǎng)絡(luò)請求工具渺贤,全局Toast提示,廣告頁等请毛。

3.5 基類

image

Base文件夾用來存放項(xiàng)目的基類志鞍,基類作用包含一些定制化的內(nèi)容,

例如頁面樣式方仿,空數(shù)據(jù)頁面等固棚,使用基類來實(shí)現(xiàn)统翩,可以統(tǒng)一控制,利于維護(hù)此洲,減少冗余厂汗,也為更清晰。

3.6 第三方文件夾

第三方文件夾放一些第三方的類庫和對第三方封裝呜师,比如第三方登錄娶桦、支付、IM等汁汗,現(xiàn)在項(xiàng)目我還沒有添加第三方框架衷畦。

3.7 全局宏定義

image

全局宏顧名思義是定義了一些全局通用宏。我這里定義了四個(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è)人喜好。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拆撼,一起剝皮案震驚了整個(gè)濱河市容劳,隨后出現(xiàn)的幾起案子喘沿,更是在濱河造成了極大的恐慌,老刑警劉巖竭贩,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚜印,死亡現(xiàn)場離奇詭異,居然都是意外死亡娶视,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門睁宰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肪获,“玉大人,你說我怎么就攤上這事柒傻⌒⒑眨” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵红符,是天一觀的道長青柄。 經(jīng)常有香客問我,道長预侯,這世上最難降的妖魔是什么致开? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮萎馅,結(jié)果婚禮上双戳,老公的妹妹穿的比我還像新娘。我一直安慰自己糜芳,他們只是感情好飒货,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著峭竣,像睡著了一般塘辅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上皆撩,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天扣墩,我揣著相機(jī)與錄音,去河邊找鬼扛吞。 笑死沮榜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的喻粹。 我是一名探鬼主播蟆融,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼守呜!你這毒婦竟也來了型酥?” 一聲冷哼從身側(cè)響起山憨,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎弥喉,沒想到半個(gè)月后郁竟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡由境,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年棚亩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虏杰。...
    茶點(diǎn)故事閱讀 40,133評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡讥蟆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纺阔,到底是詐尸還是另有隱情瘸彤,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布笛钝,位于F島的核電站质况,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏玻靡。R本人自食惡果不足惜结榄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望囤捻。 院中可真熱鬧潭陪,春花似錦、人聲如沸最蕾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瘟则。三九已至黎炉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間醋拧,已是汗流浹背慷嗜。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丹壕,地道東北人庆械。 一個(gè)月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像菌赖,于是被迫代替她去往敵國和親缭乘。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 最近在搭建新項(xiàng)目的iOS框架琉用,一直在思考如何才能搭建出高可用App框架堕绩,能否避免后期因?yàn)榇a質(zhì)量問題的重構(gòu)策幼。以前接...
    yoku醬閱讀 599評論 0 5
  • 最近在搭建新項(xiàng)目的iOS框架,一直在思考如何才能搭建出高可用App框架奴紧,能否避免后期因?yàn)榇a質(zhì)量問題的重構(gòu)特姐。以前接...
    cosWriter閱讀 1,029評論 0 4
  • 前言: 之前看了Casa大神的架構(gòu)設(shè)計(jì)文章,醍醐灌頂黍氮,一直想開個(gè)系列文章記錄一下(這次就做個(gè)小小搬運(yùn)工唐含,別打臉),...
    M_慕宸閱讀 5,675評論 1 13
  • 永遠(yuǎn)保持你的好奇心沫浆,總會有收獲捷枯。 作為游樂場的一種游戲機(jī),抓娃娃機(jī)很早就有了件缸。通常也就四五臺在那里...
    steven_young閱讀 414評論 0 1
  • 今天上午聽了廣東中山紀(jì)念中學(xué)王家文老師的利用素材開啟學(xué)生心智:利用漫畫配文章铜靶、對聯(lián)叔遂、詩詞他炊、墻報(bào)、說教等已艰。 王老師又...
    孫國楊閱讀 302評論 0 6