這裏記錄一下在知乎回答的《Android 開發有哪些新技術出現?》。知乎連接在這裏。php
原問題以下:html
Android 開發有哪些新技術出現?
能夠從UI設計或者一些核心的算法之類的提及android
這是我回答的原文:git
第一次在知乎回答問題,感受有些戰戰兢兢,在大神雲集的地方,生怕有些東西說錯,讓你們笑話。 題主提的這個問題,相信不少開發者都有本身的話要說。Android 的發展確實太快了,每一年的都有不少新東西出現,想要覆蓋全部新東西感受也不太可能,我這裏主要說一下主要的 Android 的主要新技術發展,其實瞭解 Android 的發展趨勢,可能對開發者更有幫助。程序員
開發工具
- Android Studio: Google 官方放棄 Eclipse 和 Android Studio 普及。AS 雖然不算新,可是對 Android Studio 這個軟件的更新速度快的驚人,有大量的新功能發佈。例如支持不少註解代碼提示註解、Live code template、支持自動生成 Parcelable 實現等等,做爲開發者,持續關注這個更新列表 Recent Changes,必定會讓你的寫代碼的生活更加美好。
編程「語言」
- Kotlin: 做爲 Android 領域的 Swift,絕對讓你如沐新風。拋棄沉重的 Java 語法,Kotlin 融入了不少現代編程語言的思想,做爲開發者,接受新的語言,瞭解新語言的發展趨勢,更有利於開闊你的思路和加深對語言的理解。在 Android 開發上,使用 Kotlin 並不會讓你付出什麼代價,爲何不來試試? 使用Kotlin進行Android開發。
- React Native: 跨平臺一直是程序員的夢想,並且移動應用的跨平臺解決方案也不少,由於 Facebook 的參與和力推,讓這個解決方案帶上了光環。第一個用 React Native 開發的 App 已經在 Google Play 上架 Facebook 廣告管理工具,據說 Android 的 SDK 也立刻會到來,React Native。
- Sky: 與 React Native 相似,使用 Web 開發語言來作移動平臺的開發,雖然這個只是一個嘗試,可是這是 Google 自身推出的,特別是在 Java 語言的使用上敗訴以後,這可能會有一些做爲呢,domokit/sky_sdk。
開發模式
- Dagger 2:依賴注入並非什麼新技術,可是使用在 Android 確實一個新的嘗試。Android App 愈來愈被當成嚴肅的大型項目來構建,不少在之前大型服務器開發上使用的技術都被應用到了移動開發。Android 開發分模塊開發,使用 Dagger 來鬆耦合模塊。特別值得一體的是,Dagger 2 如今由 Google 親自接管。 Dagger ‡ A fast dependency injector for Android and Java。
- MVP:由於 Android 並無嚴格的業務和界面區分,項目一複雜,就很容易使代碼陷入混亂。如今 Android 開發社區對 MVP 模式討論愈來愈熱,以爲 MVP 是很是適合 Android APP 開發。MVP for Android: how to organize the presentation layer。
- RxAndroid: 函數響應式編程(Functional Reactive Programming)也不是新內容,RxAndroid 把 RxJava 帶到 Android 環境中。不少時候,編寫 Android 程序,你也能夠當作是數據的處理和流動,換一種思想編程,曾經看起來很棘手的問題,瞬間就很優雅的解決了:ReactiveX/RxAndroid。
- MVVM:這是由於開始官方支持 DataBinding,把 MVVM 直接帶到 Android 中。數據綁定在 Windows WPF 和 Web 已經很是常見,它很是高效的開發效率,讓你只關心你的數據和業務。這也對 Android 開發來講,無疑是一個很是重大的影響:android UI設計MVVM設計模式討論?。
- 插件化:針對大型 Android 項目,不少 App 開始使用插件來分模塊構建相對獨立的功能。
- Hybrid:徹底使用 HTML 5 開發 App,目前還不成熟。可是折中方案在不少狀況下是很是適合的,典型的就是微信,大部分信息展現都是經過 H5 來完成,同時經過 Hybird 方式,把 Web 和 Native 打通,提供給網頁訪問本地資源的能力。
UI設計
- Material Design:已經紅遍了大江南北,這方面的討論實在太多了,並且各類支持庫都有了,特別是 Google 官方出了一個支持庫 Android Design Support Library。
- Sketch 3: 這是一個專爲設計移動端 UI 的設計工具,做爲開發者,不用懂那麼複雜的 PS 使用,也能夠作很是專業設計:https://designcode.io/sketch
說了這麼,感受還有不少東西沒有說到,技術的發展是很快,咱們可能跟不上每一個細節,可是咱們會發現這些新技術,不少地方都是相通的。對於開發者,可以保持對新技術的好奇和興趣時很是可貴的,參與到新技術中是技術修養,引領新技術的發展,那就是大神了。github