從Kotlin到Flutter,嗯,還是MVVM更香 Android架構演進 爲什麼要學MVVM?

經常有Android開發者會感到困惑,移動開發這麼多技術,到底該先學什麼呢?

React Native、PWA?談完Kotlin,今年又紛紛討論Flutter,但是目前還沒有大跨步的前進…

我覺得Android開發的思維一定不要侷限,移動開發不僅僅只是App開發,比如 IOT、音視頻、邊緣計算、VR/AR等,許多熱門的技術浪潮,也都屬於移動開發的範疇,這方面的知識有時間的話可以研究一下。

以前安卓開發找工作有多容易?只要瞭解四大組件、視圖、網絡請求,你就能拿到一份薪資豐厚的offer;當時,如果你要是精通java基礎,知道如何處理OOM,組件生命週期原理,熟悉android源碼、架構體系,進大廠都是很輕鬆。

Android架構演進

MVC

結構清晰,低耦合,有利於組件重用;但是Activity/Fragment中代碼較多,結構比較複雜;

MVP

解決了MVC中Activity的問題,但是接口大量增加,所以項目的文件數量也會很多,代碼結構也更復雜性了…

從工作到現在,經歷過了MVC、MVP、Clean等,每個App由於項目特點和需求的不同,其架構模式,分層、組件化、模塊化,每一種設計都是基於項目所在場景的,很難適合所有項目場景。這時候我們該怎麼辦呢?

我們或許可以在Google “欽定”的 Android 開發未來第一架構——MVVM中找到答案。

爲什麼要學MVVM?

MVVM

是Model-View-ViewModel的簡寫,它由三個部分組成,本質上就是MVC 的改進版。MVVM 就是將其中的View 的狀態和行爲抽象化,讓我們將視圖 UI 和業務邏輯分開,在 MVP 的基礎上,MVVM 把 View 和 ViewModel 也進行了解耦。

優點:

  1. 低耦合。視圖(View)可以獨立於Model變化和修改,一個ViewModel可以綁定到不同的"View"上。

  2. 可重用性。一些視圖邏輯放在一個ViewModel裏面,讓很多view重用這段視圖邏輯。

  3. 獨立開發。App 業務規模擴大,隨之而來的是團隊規模擴大,那就涉及到多人協作問題,MVVM架構可以使開發人員、設計人員分別專注於自己的板塊。

  4. 可測試。

但是由於 View 和 ViewModel 解耦,導致 Debug 時難以一眼看出 View 的事件傳遞;代碼複雜性增大,所以 MVVM 架構 Debug 比較困難。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章