2018年Android應(yīng)用程序的發(fā)展趨勢
應(yīng)用程序開發(fā)人員正在不斷開發(fā)新方法,一方面簡化和縮短開發(fā)流程,另一方面構(gòu)建***設(shè)計和用戶體驗。每年我們都可以看到在移動應(yīng)用程序開發(fā)中不斷涌現(xiàn)的新型***技術(shù)和工具。在這里,我們將介紹一些趨勢,讓您更好地了解2018年應(yīng)該是什么。讓我們仔細(xì)看看Android應(yīng)用程序的發(fā)展趨勢!
Kotlin是一種相對較新的編程語言,適用于Java虛擬機。它主要由JetBrains程序員開發(fā),自從Google IO 2017開始,Kotlin一直是Android應(yīng)用程序的官方編程語言。它有很多優(yōu)點,比如:
- Kotlin可與Java互操作
- 零安全
- 擴展功能
- Lambda表達(dá)式
- 數(shù)據(jù)類
Kotlin將現(xiàn)代語言的所有這些功能帶到Android平臺。這非常適合開發(fā)Android應(yīng)用程序,并完全支持Android Studio 3.0。它還包含幾個工具來改善工作,就像Kotlin Android擴展,它可以完全替代標(biāo)志性的findViewById()。
ObjectBox
ObjectBox是由GreenRobot創(chuàng)建的性能優(yōu)化的移動NoSQL數(shù)據(jù)庫,他也創(chuàng)建了GreenDao庫。這個數(shù)據(jù)庫管理系統(tǒng)是在2017年9月發(fā)布的一個穩(wěn)定的版本。ObjectBox是一個從零開始建立的數(shù)據(jù)庫,有一個簡潔的API,可以在像GreenDao和Realm這樣的對象上運行。它支持ACID操作和多版本并發(fā)控制(MVCC),提供安全事務(wù)和并行性。
MVVM
開發(fā)移動應(yīng)用程序時,您必須面對一些挑戰(zhàn)。其中最重要的是清晰的架構(gòu)。有幾個設(shè)計模式可以幫助您分離應(yīng)用程序中的模塊。創(chuàng)建簡單且沒有業(yè)務(wù)邏輯的UI代碼使管理更容易。還有一個很大的優(yōu)勢 - 你的代碼變得更可測試。
MVVM模式是最近創(chuàng)建的,并且是為Android系統(tǒng)創(chuàng)建移動應(yīng)用程序的創(chuàng)新方法。乍一看,MVVM模式與MVP是非常相似的,這是Android開發(fā)中***的模式。由于使用MVVM標(biāo)準(zhǔn),單元測試的創(chuàng)建更加簡單,因為沒有層依賴于視圖。在測試過程中,在數(shù)據(jù)模型層更改時,檢查觀察變量是否正確設(shè)置就足夠了。在MVP模式的情況下,不需要用人造視圖來替代測試。

模型
在MVVM模式中,模型層與MVC和MVP中的模型層相同。它負(fù)責(zé)管理業(yè)務(wù)邏輯并從服務(wù)器或數(shù)據(jù)庫獲取數(shù)據(jù)。它向View-Model層提供所需的信息。
視圖
視圖層代表用戶界面元素,并負(fù)責(zé)顯示數(shù)據(jù)。視圖觀察由視圖模型公開的數(shù)據(jù)。與MVP模式類似,Activities和Fragments與XML文件中的控制系統(tǒng)一起屬于視圖層。
視圖模型
ViewModel是數(shù)據(jù)層和視圖層之間的負(fù)責(zé)任的連接。其任務(wù)是提供幫助維護(hù)視圖狀態(tài)的方法,命令和其他屬性,以及作為視圖中的操作的結(jié)果來管理模型并處理視圖中的事件。View-Model不包含關(guān)于視圖的信息,并且完全獨立于視圖。

Android體系結(jié)構(gòu)組件
Android Architecture Components是一組幫助設(shè)計可維護(hù),健壯和可測試的應(yīng)用程序的庫。這個庫的集合組成前面提到的持久性庫,但也包含下面介紹的LiveData和ViewModel組件和Paging Library,但它仍然是alpha,不像其他組件。
LiveData
LiveData是一個可識別生命周期的可觀察數(shù)據(jù)的持有者,這意味著它尊重其他應(yīng)用程序組件的生命周期,比如Activity,F(xiàn)ragment或者Service。因此,您不必手動處理生命周期,因為在Fragment收到onDestroy()時,LiveData也會自動刪除觀察者。
視圖模型
ViewModel類是MVVM模式的助手。它旨在存儲和管理UI所需的數(shù)據(jù)。ViewModel類允許數(shù)據(jù)在屏幕旋轉(zhuǎn)等配置更改后生效,但ViewModel不會取代onSaveInstanceState()。

結(jié)論
總之,去年我們有一些很大的變化。***的Android應(yīng)用程序發(fā)展趨勢是什么?最重要的是,Kotlin現(xiàn)在是Android的官方編程語言,并且在2018年,Kotlin 可能比Java更受Android應(yīng)用程序的歡迎。而且,我們在Android數(shù)據(jù)庫管理系統(tǒng)中有一些新的玩家。兩者間和ObjectBox值得我們學(xué)習(xí),在我看來,值得一用。
因此,Room最終可以取代Android中明確的SQLite數(shù)據(jù)庫,并且ObjectBox可以成為像Realm這樣的noSQL數(shù)據(jù)庫的真正競爭者。2017年,Android架構(gòu)組件也發(fā)布了。自2017年11月以來,他們已經(jīng)有了一個穩(wěn)定的版本,所以我們相信在2018年這些庫可以變得非常強大。