這里記錄一下在知乎回答的《Android 開(kāi)發(fā)有哪些新技術(shù)出現(xiàn)?》。知乎鏈接在這里。
原問(wèn)題如下:
Android 開(kāi)發(fā)有哪些新技術(shù)出現(xiàn)?可以從UI設(shè)計(jì)或者一些核心的算法之類的說(shuō)起
這是我回答的原文:
第一次在知乎回答問(wèn)題,感覺(jué)有些戰(zhàn)戰(zhàn)兢兢,在大神云集的地方,生怕有些東西說(shuō)錯(cuò),讓大家笑話。 題主提的這個(gè)問(wèn)題,相信很多開(kāi)發(fā)者都有自己的話要說(shuō)。Android 的發(fā)展確實(shí)太快了,每年的都有很多新東西出現(xiàn),想要覆蓋所有新東西感覺(jué)也不太可能,我這里主要說(shuō)一下主要的 Android 的主要新技術(shù)發(fā)展,其實(shí)了解 Android 的發(fā)展趨勢(shì),可能對(duì)開(kāi)發(fā)者更有幫助。

開(kāi)發(fā)工具
Android Studio: Google 官方放棄 Eclipse 和 Android Studio 普及。AS 雖然不算新,但是對(duì) Android Studio 這個(gè)軟件的更新速度快的驚人,有大量的新功能發(fā)布。例如支持很多注解代碼提示注解、Live code template、支持自動(dòng)生成 Parcelable 實(shí)現(xiàn)等等,作為開(kāi)發(fā)者,持續(xù)關(guān)注這個(gè)更新列表 Recent Changes,一定會(huì)讓你的寫代碼的生活更加美好。編程“語(yǔ)言”
Kotlin: 作為 Android 領(lǐng)域的 Swift,絕對(duì)讓你如沐新風(fēng)。拋棄沉重的 Java 語(yǔ)法,Kotlin 融入了很多現(xiàn)代編程語(yǔ)言的思想,作為開(kāi)發(fā)者,接受新的語(yǔ)言,了解新語(yǔ)言的發(fā)展趨勢(shì),更有利于開(kāi)闊你的思路和加深對(duì)語(yǔ)言的理解。在 Android 開(kāi)發(fā)上,使用 Kotlin 并不會(huì)讓你付出什么代價(jià),為什么不來(lái)試試? 使用Kotlin進(jìn)行Android開(kāi)發(fā)。
React Native: 跨平臺(tái)一直是程序員的夢(mèng)想,而且移動(dòng)應(yīng)用的跨平臺(tái)解決方案也很多,因?yàn)?Facebook 的參與和力推,讓這個(gè)解決方案帶上了光環(huán)。第一個(gè)用 React Native 開(kāi)發(fā)的 App 已經(jīng)在 Google Play 上架 Facebook 廣告管理工具,聽(tīng)說(shuō) Android 的 SDK 也馬上會(huì)到來(lái),React Native。
Sky: 與 React Native 類似,使用 Web 開(kāi)發(fā)語(yǔ)言來(lái)做移動(dòng)平臺(tái)的開(kāi)發(fā),雖然這個(gè)只是一個(gè)嘗試,但是這是 Google 自身推出的,特別是在 Java 語(yǔ)言的使用上敗訴之后,這可能會(huì)有一些作為呢,domokit/sky_sdk。開(kāi)發(fā)模式
Dagger 2:依賴注入并不是什么新技術(shù),但是使用在 Android 確實(shí)一個(gè)新的嘗試。Android App 越來(lái)越被當(dāng)成嚴(yán)肅的大型項(xiàng)目來(lái)構(gòu)建,很多在以前大型服務(wù)器開(kāi)發(fā)上使用的技術(shù)都被應(yīng)用到了移動(dòng)開(kāi)發(fā)。Android 開(kāi)發(fā)分模塊開(kāi)發(fā),使用 Dagger 來(lái)松耦合模塊。特別值得一體的是,Dagger 2 現(xiàn)在由 Google 親自接管。 Dagger ‡ A fast dependency injector for Android and Java。
MVP:因?yàn)?Android 并沒(méi)有嚴(yán)格的業(yè)務(wù)和界面區(qū)分,項(xiàng)目一復(fù)雜,就很容易使代碼陷入混亂。現(xiàn)在 Android 開(kāi)發(fā)社區(qū)對(duì) MVP 模式討論越來(lái)越熱,覺(jué)得 MVP 是非常適合 Android APP 開(kāi)發(fā)。MVP for Android: how to organize the presentation layer。
RxAndroid: 函數(shù)響應(yīng)式編程(Functional Reactive Programming)也不是新內(nèi)容,RxAndroid 把 RxJava 帶到 Android 環(huán)境中。很多時(shí)候,編寫 Android 程序,你也可以看成是數(shù)據(jù)的處理和流動(dòng),換一種思想編程,曾經(jīng)看起來(lái)很棘手的問(wèn)題,瞬間就很優(yōu)雅的解決了:ReactiveX/RxAndroid。
MVVM:這是因?yàn)殚_(kāi)始官方支持 DataBinding,把 MVVM 直接帶到 Android 中。數(shù)據(jù)綁定在 Windows WPF 和 Web 已經(jīng)非常常見(jiàn),它非常高效的開(kāi)發(fā)效率,讓你只關(guān)心你的數(shù)據(jù)和業(yè)務(wù)。這也對(duì) Android 開(kāi)發(fā)來(lái)說(shuō),無(wú)疑是一個(gè)非常重大的影響:android UI設(shè)計(jì)MVVM設(shè)計(jì)模式討論?。
插件化:針對(duì)大型 Android 項(xiàng)目,很多 App 開(kāi)始使用插件來(lái)分模塊構(gòu)建相對(duì)獨(dú)立的功能。
Hybrid:完全使用 HTML 5 開(kāi)發(fā) App,目前還不成熟。但是折中方案在很多情況下是非常適合的,典型的就是微信,大部分信息展示都是通過(guò) H5 來(lái)完成,同時(shí)通過(guò) Hybird 方式,把 Web 和 Native 打通,提供給網(wǎng)頁(yè)訪問(wèn)本地資源的能力。UI設(shè)計(jì)
Material Design:已經(jīng)紅遍了大江南北,這方面的討論實(shí)在太多了,而且各種支持庫(kù)都有了,特別是 Google 官方出了一個(gè)支持庫(kù) Android Design Support Library。
Sketch 3: 這是一個(gè)專為設(shè)計(jì)移動(dòng)端 UI 的設(shè)計(jì)工具,作為開(kāi)發(fā)者,不用懂那么復(fù)雜的 PS 使用,也可以做非常專業(yè)設(shè)計(jì):https://designcode.io/sketch
說(shuō)了這么,感覺(jué)還有很多東西沒(méi)有說(shuō)到,技術(shù)的發(fā)展是很快,我們可能跟不上每個(gè)細(xì)節(jié),但是我們會(huì)發(fā)現(xiàn)這些新技術(shù),很多地方都是相通的。對(duì)于開(kāi)發(fā)者,能夠保持對(duì)新技術(shù)的好奇和興趣時(shí)非常難得的,參與到新技術(shù)中是技術(shù)修養(yǎng),引領(lǐng)新技術(shù)的發(fā)展,那就是大神了。