前言:
前段時間用元件化開發了一個專案(2個人,90多個頁面,4個模組,差不多20天寫完),分享下心得.
幾個問題:
- 什麼是元件化
- 元件化怎麼用
- 是不是能提高開發速度
- 元件化會碰到的一些問題
一.什麼是元件化
1.從業務上來看
比如:電商app
1.進店(登陸註冊)
2.看商品(商品展示)
3.選商品(購物車)
4.購物發票,電話預定(訂單資訊)
5.給錢(支付)
複製程式碼
一個業務對應一個元件.
不管哪個業務邏輯發生變化.只需要修改其中一個就行.
有人會說,我不用元件化也是這樣啊.
那我這樣說,比如把上面5個業務看成5個文案.
如果寫成一個文案.(沒有元件化).改其中一個業務的文案時,是不是需要從整個文案裡去找.
如果每個業務的文案,都單獨寫成一份.最後放到一起.是不是修改起來就簡單了.
元件化開發是把文案夾在一起.普通開發是把文案訂在一起.
2.從開發的角度
來張圖比較直觀:
1.把第三方庫分類進行封裝.做成基礎lib庫
2.把每個元件都需要的,通用的lib進行整合 做成framework,這個framework其實也是一個lib
3.每個元件在framework的基礎上進行開發.
4.各個元件開發完成後將所有元件整合成app.(可以弄一個空殼module,也可以把某一個module當主module)
覺得的很複雜,很難理解嗎?把圖換一下
同樣的道理放在安卓系統結構上也適用.
二.元件化怎麼用:
元件化gradle的配置,在這就不說,這類文章太多了
三. 是不是能提高開發速度
很多人覺得,沒必要弄,這麼多配置啥的,多浪費時間.多麻煩
這裡總結一下:
1.當你要開發的app頁面數超過50,業務模組大於2個時,最好考慮用元件化開發.即使你是一個人 2.有了第一次,第二次就快了.並且對於架構和業務的理解會提升. 3.分鍋清楚 4.不用擔心別人寫的程式碼影響你的心情. 5.維護容易.某個模組寫的不好,重寫也不難 6.即使一個專案出現:元件一mvc,元件二mvp,元件三mvvm這種情況,也能正常開發,程式碼不亂.(真這樣老大就要祭天了) 7.lib庫越來越豐富.開發更簡單.新專案直接拿lib或者直接拿某一元件開始開發,省時省力.而不是去copy程式碼了.
四. 元件化會碰到的一些問題
1.首先,你需要準備幾個開發庫.在一些開源庫的基礎上再封裝. 2.最好不要使用butterknife.雖然最新的配置一下也能用. 3.AndroidManifest,都要寫好activity註冊.不管是debug目錄,還是release目錄 4.library模式下,不能有applacitonId.會報錯 5.一些定製性的操作,放到framework層做處理.而不是寫死在lib層. 6.後期當lib庫封裝成熟後,可以做成私有的線上依賴庫.
就這些了,想到什麼以後再補充.
最後奉上本人的元件庫開源地址:
目前網路層(lib-network-rx-retrofit)和base層(lib-mvpbase-appcompat)封裝的比較完善.其他的會後續補上
具體module例子沒什麼時間寫.主要看看framework和lib吧= =
---------------------------------分割線--------------------------------
您的喜歡與回覆是我最大的動力-_-(ps:還不是為了吸粉)
交流群:493180098,這是個很少吹水,有人解決問題的群.