Google Play:Google Home 應(yīng)用團(tuán)隊(duì)將因首要原因?qū)е碌谋罎⒋螖?shù)減少了 33%

來源: Google Developers
作者:Google Developers
時(shí)間:2021-01-19
17442
Google Home應(yīng)用背后的工程團(tuán)隊(duì)使用Kotlin和Android Jetpack庫(kù)來提升工程生產(chǎn)力和開發(fā)者滿意度,這讓他們受益良多。

Google Home應(yīng)用可幫助您設(shè)置、管理和控制您的Google Home、Google Nest和Chromecast設(shè)備以及數(shù)千種智能互聯(lián)家居產(chǎn)品(如燈具、攝像頭、恒溫器等等)。

Google Home應(yīng)用背后的工程團(tuán)隊(duì)使用Kotlin和Android Jetpack庫(kù)來提升工程生產(chǎn)力和開發(fā)者滿意度,這讓他們受益良多。

google-home-icon.png

他們做了什么

Google Home團(tuán)隊(duì)決定將Kotlin整合到代碼庫(kù)中,以提升編程效率,并使用現(xiàn)代語(yǔ)言功能(如var/val、智能投射、協(xié)程等)。截至2020年6月,30%左右的代碼庫(kù)是使用Kotlin編寫的,我們建議使用Kotlin來開發(fā)所有新功能。

該團(tuán)隊(duì)還采用Jetpack庫(kù)來提高開發(fā)者的速度、降低對(duì)樣板代碼維護(hù)的需求并減少必要的代碼量。Jetpack庫(kù)還有助于提高代碼的可測(cè)試性,因?yàn)橛懈逦墓δ苓吔绾虯PI。

結(jié)果

“Kotlin可助您提高工作效率,讓您編寫更少的代碼來實(shí)現(xiàn)更多的功能,這就是您可實(shí)現(xiàn)的‘速度’提升?!?Jared Burrows,Google Home的軟件工程師

與等效的現(xiàn)有Java代碼相比,改用Kotlin可以減少所需的代碼量。例如,使用數(shù)據(jù)類和Parcelize插件:一個(gè)在使用Java時(shí)需要手動(dòng)編寫126行代碼的類,現(xiàn)在使用Kotlin只需編寫23行,代碼量減少了80%。此外,還可以自動(dòng)生成并及時(shí)更新均衡和解析方法。使用Kotlin中提供的實(shí)用方法,還可以簡(jiǎn)化許多嵌套循環(huán)和過濾檢查。

由于Kotlin可以將是否可為null作為語(yǔ)言的一部分,因此可以避免棘手的情況,例如在Java中不一致地使用是否可為null注釋可能會(huì)導(dǎo)致遺漏錯(cuò)誤。實(shí)現(xiàn)Kotlin后,Google Home應(yīng)用團(tuán)隊(duì)遇到的NullPointerExceptions減少了33%。這是Google Play管理中心中最常見的崩潰類型,因此減少此類崩潰可以顯著提升用戶體驗(yàn)。

對(duì)于Google Home之類的大型成熟應(yīng)用(代碼超過數(shù)百萬行),能夠逐步添加Jetpack庫(kù)會(huì)很有幫助。納入這些庫(kù)后,該團(tuán)隊(duì)可以整合并替換量身定制的解決方案,有時(shí)甚至只需要一個(gè)庫(kù)。Jetpack庫(kù)可幫助工程師遵循最佳做法,并且編寫更簡(jiǎn)潔的代碼(例如,使用Room或ConstraintLayout),因此可讀性也有所提高。該團(tuán)隊(duì)將許多新的Jetpack庫(kù)視為“必備庫(kù)”,包括ViewModel和LiveData,它們?cè)贕oogle Home代碼庫(kù)中得到廣泛使用。

Google Home應(yīng)用團(tuán)隊(duì)發(fā)現(xiàn)將Jetpack KTX與Kotlin協(xié)程集成特別有用。該團(tuán)隊(duì)現(xiàn)在可以將協(xié)程與生命周期感知型組件(如ViewModel)結(jié)合使用,從而避免復(fù)雜的異步編程錯(cuò)誤。

開始使用

詳細(xì)了解使用Kotlin開發(fā)Android應(yīng)用以及Android Jetpack庫(kù)使用入門。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于Google Developers,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家