組件化開發(fā)亡资,cocoapods原理是什么澜共?

說到組件化開發(fā),網(wǎng)上可以看到很多資料锥腻,如蘑菇街嗦董、滴滴淘寶旷太、攜程展懈、豆瓣京東的組件化架構(gòu)供璧。但里面介紹比較多的是在現(xiàn)有app如何拆分存崖,組件間如何通信。沒有說組件該如何去搭建睡毒,像網(wǎng)絡(luò)請求来惧,json解析這些每個組件都需要用到的共用工具該如何處理。

找了好多資料演顾,大部分都說使用cocoapods創(chuàng)建私有庫供搀,但是我的模塊都是業(yè)務(wù)模塊,也就是我的有些組件的共用性并不高澳浦痢葛虐!我只是想讓每個業(yè)務(wù)線的代碼解耦,方便裝卸就可以棉钧。像支付寶這樣屿脐,可以插件化的。

如果某個業(yè)務(wù)線停止了,我可以隨時把代碼從項(xiàng)目中拿掉的诵。我還可以根據(jù)需求用現(xiàn)有的組件快速搭建出一個新的app万栅。每個模塊的邏輯都是相對獨(dú)立,可能對應(yīng)的服務(wù)都是不同團(tuán)隊(duì)提供西疤,每個組件可以由不同的團(tuán)隊(duì)開發(fā)烦粒。cocoapods這個私有庫雖然也可以實(shí)現(xiàn),但是我覺的cocoapods大部分的用法都是在一些通用組件上代赁,想我這樣把一個大業(yè)務(wù)線規(guī)為一個組件的好像不是很合適扰她。

cocoapods都做了些什么?pod進(jìn)來的庫是什么加載到主工程呢管跺?

每個pod項(xiàng)目都會有一個.xcworkspace文件這個其實(shí)是蘋果自帶的功能义黎,用來管理組合多個項(xiàng)目。還有一個Pods項(xiàng)目豁跑,這個項(xiàng)目里面就是放著一個個我們pod進(jìn)來的第三方庫和私有“組件”廉涕。這個Pods項(xiàng)目里面的代碼和資源是什么引用到主項(xiàng)目里面的?



沒錯艇拍,一個個組件都被編譯成靜態(tài)庫了狐蜕,只要在主項(xiàng)目里面引用就可以。我們再找下到底是在哪里引用的卸夕?在主項(xiàng)目的Build Phases里面可以看到多了個Embed Pods Frameworks和Copy Pods Resources實(shí)行的就是2個.sh文件层释,這個2個腳本是干嘛的?ssell語言我不懂快集,但是我猜一個是合并靜態(tài)庫贡羔,一個是合并資源文件。為什么這么說个初,因?yàn)槲铱吹街黜?xiàng)目只引用了Pods.framework,那其它的庫呢乖寒?合并到了Pods.framework里面了。

Pods只有一個工程什么可以編譯出那么多個靜態(tài)庫院溺?

我想這應(yīng)該就是你在添加一個組件的時候腳本就會幫你添加一個TARGETS楣嘁,看下項(xiàng)目:

果然是這樣的。這些pods 插件都幫你做了珍逸,所以你都不需要自己去操作逐虚。如果不用pods的話這些就都需要你自己手動去做了,其實(shí)也是比較麻煩的事情谆膳,所以我覺的cocoapods和模塊組件化可以搭配使用叭爱。我demo里面還不算完整,并沒有把cocoapods加進(jìn)去漱病。網(wǎng)絡(luò)上組件框架有些有提到cocoapods涤伐,有些并沒用cocoapods馒胆,也許是項(xiàng)目組件化的比較早,cocoapods還不成熟還是別的原因凝果,這個就不深究了。但是基本可以確定他們每個組件的格式都是靜態(tài)庫睦尽。早期我也是想每個組件是個獨(dú)立的app器净,然后通過某種技術(shù)合并成一個app。但是最后找到的資料都是打成靜態(tài)庫(如果有別的方案希望可以分享下)

下面介紹下我的demo吧当凡!

竟然要把我的業(yè)務(wù)模塊打包成靜態(tài)庫山害,那每個模塊用到一個通用的庫該什么處理?如網(wǎng)絡(luò)請求沿量,json解析等浪慌,這些基本每個模塊都是需要的,難道都要重復(fù)編譯到每個組件里面朴则?不不不权纤,且不說會不會沖突,就是安裝包也該大了不少吧乌妒?那如何共用這些通用組件呢汹想?還有我既然是同一個app那我的界面風(fēng)格應(yīng)該也是差不多的,所以可能每個模塊都需要繼承同一個基類撤蚊。所以我的做法就是把這些每個組建都必須用的都抽出來打成一個通用的組件古掏,給每個業(yè)務(wù)組件依賴。至于資源文件的處理我覺的可以參考cocoapods的原理侦啸。

就寫到這里吧槽唾!更多的坑等著我們?nèi)ゲ龋∫黄鸺佑?/p>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末光涂,一起剝皮案震驚了整個濱河市庞萍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌顶捷,老刑警劉巖挂绰,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異服赎,居然都是意外死亡葵蒂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進(jìn)店門重虑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來践付,“玉大人,你說我怎么就攤上這事缺厉∮栏撸” “怎么了隧土?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長命爬。 經(jīng)常有香客問我曹傀,道長,這世上最難降的妖魔是什么饲宛? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任皆愉,我火速辦了婚禮,結(jié)果婚禮上艇抠,老公的妹妹穿的比我還像新娘幕庐。我一直安慰自己,他們只是感情好家淤,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布异剥。 她就那樣靜靜地躺著,像睡著了一般絮重。 火紅的嫁衣襯著肌膚如雪冤寿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天绿鸣,我揣著相機(jī)與錄音疚沐,去河邊找鬼。 笑死潮模,一個胖子當(dāng)著我的面吹牛亮蛔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播擎厢,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼究流,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了动遭?” 一聲冷哼從身側(cè)響起芬探,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎厘惦,沒想到半個月后偷仿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宵蕉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年酝静,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片羡玛。...
    茶點(diǎn)故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡别智,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出稼稿,到底是詐尸還是另有隱情薄榛,我是刑警寧澤讳窟,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站敞恋,受9級特大地震影響丽啡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜耳舅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一碌上、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧浦徊,春花似錦、人聲如沸天梧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呢岗。三九已至冕香,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間后豫,已是汗流浹背悉尾。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挫酿,地道東北人构眯。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像早龟,于是被迫代替她去往敵國和親惫霸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,930評論 2 361

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