前述
體驗(yàn)過(guò)牽一發(fā)而動(dòng)全身揭北,編譯5分鐘之后躁染,每次發(fā)版本都要被測(cè)試一頓臭罵之后。組件化的心愈發(fā)強(qiáng)烈坦刀。
網(wǎng)上大多數(shù)關(guān)于組件化的文章或者材料都只闡述了Router
或者一些零散的東西。對(duì)于各個(gè)組件的劃分绑警、和如何去一步步實(shí)踐組件化這些細(xì)膩坑多的活都沒(méi)有一個(gè)示例求泰。本文就是一個(gè)相對(duì)完整的示例。
casa 的《iOS應(yīng)用架構(gòu)談》 计盒,Limboy的《蘑菇街 App 的組件化之路》 渴频,bang's的《iOS 組件化方案探索》一字一字啃了不止5遍,其他組件化的文獻(xiàn)也看了不少北启,看似不復(fù)雜的組件化卜朗,工作量卻很大,無(wú)從下手咕村,遲遲不敢下手场钉。
《在現(xiàn)有工程中實(shí)施基于CTMediator的組件化方案》鼓勵(lì)我們?nèi)プ鼋M件化,并且實(shí)現(xiàn)了基于CTMediator
的組件化方案懈涛,但是作為電商APP
的我們想用一套URL
跳轉(zhuǎn)方案逛万,并且需要一份詳細(xì)的組件化實(shí)例。
組件化的實(shí)踐大概分為以下步驟:
- 組件的劃分
- 創(chuàng)建公共/私有 Pods
- 各組件的封裝
《iOS組件化》之使用AOP代替繼承批钠、《iOS組件化》之 搭建適合業(yè)務(wù)的URL跳轉(zhuǎn)路由-ALRouter宇植、《iOS組件化》之搭建基于AFNetworking的網(wǎng)絡(luò)請(qǐng)求框架 -
融合各組件
本文主要融合各組件
實(shí)踐
在創(chuàng)建HomeModuleDemo
之前得封,我已經(jīng)做了這兩件事情:
- 將
HomeModule
用到的ALRouter、 HKHttpManager支持Cocoapods
- 確定工程架構(gòu)指郁,文件目錄結(jié)構(gòu)
HomeModuleDemo
是首頁(yè)模塊忙上,我部署在coding
的私有庫(kù)上,GitHub
上也有源代碼
MainProjectDemo
是主工程闲坎,GitHub
在這里
在創(chuàng)建MainProjectDemo
疫粥,將HomeModuleDemo
Pod
進(jìn)來(lái)之后新建ALRouter.plist
,將URL
和className
填入
在AppDelegate
中調(diào)用loadConfigPlist
方法,傳入URL
即可得到對(duì)應(yīng)的ViewController
腰懂。
注意
- 組件與主工程之間不可以存在相同名字的類梗逮,不然編譯會(huì)報(bào)錯(cuò)
- 如果想讓組件
Pod
進(jìn)來(lái)之后保留目錄層級(jí),subspec
可以實(shí)現(xiàn) - 組件上傳到
Pods
時(shí)盡量簡(jiǎn)化
結(jié)語(yǔ)
劃分組件 -> 封裝各類組件 -> 創(chuàng)建Pods
-> 融入主工程悯恍,組件化的大量工作在封裝和創(chuàng)建Pods
库糠。
許多博文都是關(guān)于CTMediator
路由這一層的組件化實(shí)踐,希望全新的URL
跳轉(zhuǎn)組件化實(shí)施可以幫助到你涮毫。
我的組件化系列文章:
《iOS組件化》組件的劃分
《iOS組件化》創(chuàng)建公共/私有 Pods
《iOS組件化》之使用AOP代替繼承
《iOS組件化》之 搭建適合業(yè)務(wù)的URL跳轉(zhuǎn)路由-ALRouter
《iOS組件化》之搭建基于AFNetworking的網(wǎng)絡(luò)請(qǐng)求框架