SmartNews通過分享來自各家新聞媒體的實時新聞,每天幫助數(shù)百萬人探索世界。該公司于2012年在日本成立,目前在全球范圍內(nèi)的下載量已超過5000萬次。
2019年6月,SmartNews團隊注意到Android開發(fā)正在轉(zhuǎn)向采用“Kotlin優(yōu)先”方法,并決定開始自行測試Kotlin。他們想充分利用Kotlin優(yōu)先的Jetpack庫,減少必須維護的代碼量,并從Kotlin更具表達性且易于理解的語法中獲益。
他們做了什么
SmartNews團隊精通Java,因此開始使用Kotlin編寫代碼對他們來說很容易。由于Kotlin可完全與Java互操作,因此他們可以輕松地開始使用Kotlin編寫新功能(例如Weather Radar和News From All Sides),同時仍在現(xiàn)有代碼庫中執(zhí)行操作。他們使用協(xié)程來管理已獲專利的Weather Radar功能中的圖片下載和緩存。協(xié)程調(diào)度程序提供了一個實用的抽象函數(shù)來管理任務(wù),這可幫助SmartNews工程師避免管理原生線程時出現(xiàn)的陷阱。
該團隊還重構(gòu)了部分Java代碼,Kotlin的null安全功能給他們留下了深刻的印象。Kotlin用于識別可變性、是否可為null和初始化的語法幫助該團隊盡早發(fā)現(xiàn)了錯誤,并將審核代碼變更的時間縮短了10%。利用Kotlin簡潔高效的語法,他們還能夠增強其代碼庫的可讀性,從而在公司不斷發(fā)展壯大的同時讓其代碼更易于維護。
結(jié)果
采用Kotlin編寫代碼后,該團隊在從實現(xiàn)到發(fā)布的整個流程中的工作效率得到了提升。采用Kotlin編寫代碼后,該團隊將轉(zhuǎn)換后的代碼行縮減了20%,這是他們看到的一項最重大的改進。目前,SmartNews應(yīng)用中有一半的功能是采用Kotlin編寫的,開發(fā)團隊計劃用Kotlin編寫所有新功能,并重構(gòu)部分現(xiàn)有代碼以便繼續(xù)提高其代碼的可維護性。
開發(fā)團隊在實現(xiàn)Kotlin并減少樣板代碼的過程中發(fā)現(xiàn),團隊士氣得到了很大提升。團隊成員都非常興奮,因為他們能夠更高效地表達自己的想法,同時提高了代碼的可讀性,更便于日后閱讀。SmartNews的工程經(jīng)理Hideo Ohashi注意到,Kotlin對工程招募工作大有裨益?!皯?yīng)聘者最常提問的問題是‘貴公司使用Kotlin嗎?使用頻率是怎樣的?’現(xiàn)在,似乎很多工程師都有意遷移到Kotlin,并希望提供這方面的支持?!北M管團隊士氣的提高和在招募方面的改進并不是該團隊采用Kotlin的主要原因,但這些積極的改變將幫助該公司在這個競爭激烈的行業(yè)中不斷發(fā)展壯大。
開始使用
詳細了解使用Kotlin開發(fā)Android應(yīng)用。