經常有Android開發者會感到困惑,移動開發這麼多技術,到底該先學什麼呢?
我覺得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 比較困難。