看完組件是什么,如何拆分組件,各大門派的做法后,我在現有的大工程內效仿MGJ,工程內加入MGJRouter+加了一個協議映射服務類的中間件.全局頁面跳轉不再寫push+present,A模塊調用B模塊的方法也不再直接調用,組件化完成了!!!本寶寶還太年輕
接著上篇的笑話繼續.
再完成對自己項目笑話似的
組件化之后,我自己也在想這也太TM簡單了把!還值當大家吵來吵去,還值當大家爭相效仿.所以回頭看看有沒有什么我漏掉了,還真有.
1.拾遺
Limboy>蘑菇街 App 的組件化之路文章最后有這么一段:
拾遺.png
殼工程是什么東西?
2.開竅
多產品線.jpg
為了更好的分工協作,團隊會安排團隊成員各自維護一個相對獨立的業務組
件。這個時候我們引入組件化方案,一是為了解除組件之間相互引用的代碼硬
依賴,二是為了規范組件之間的通信接口; 讓各個組件對外都提供一個黑盒服
務,而組件工程本身可以獨立開發測試,減少溝通和維護成本,提高效率。
進一步發展,當團隊涉及到轉型或者有了新的立項之后,一個團隊會開始維護
多個項目App,而多個項目App的需求模塊往往存在一定的交叉,而這個時候組
件化給我們的幫助會更大,我只需要將之前的多個業務組件模塊在新的主App
中進行組裝即可快速迭代出下一個全新App。
以上圖與文完全摘自:iOS組件化實踐方案-LDBusMediator煉就
組件化==>目的:減少溝通和維護成本,提高效率
組件化==>更遠大的理想:多個基礎組件+多個業務組件可以隨意組合演化出多個App.
組合的例子:
SuperJunior.jpg
韓國組合
SuperJunior
一共有13個人.為了應對市場需求(更好的賺中國fans的錢),13人內抽出6個人再加上兩個華裔的練習生=新組合SuperJunior-M
.SuperJunior-M.jpg
這個例子也很好的說明了組件化成功與否的標志.即完成組件化后,各個組件能否進行任意的拆裝組合就是一個新的App.能==>組件化成功.
3.如何即完成目的又實現遠大的理想
前面所述可以看出組件化還是為了代碼的解耦,當然組件化帶來解耦是一種更兇悍的解耦==>代碼的物理性解耦.
那么通過Xcode如何實現代碼的物理性解耦
呢?
首先想到多工程開發,多工程聯合編譯.
多工程聯合.png
寫了demo試了試,沒有什么明顯的缺點.
但最終選了pod,因為pod可以說就是為組件化而生的.平時我們用pod是為了給工程加一些很好用的第三方庫.但回想下,第三方庫是不是就像一些組件
插在了工程里:
AFNetworking==>網絡組件
SDWebImage==>圖片組件
而我們要做的就是將自己的業務模塊梳理抽象成一個個pod,然后插回自己的工程里.而這個工程也就是開頭提到的殼工程
.