是時候學習新技術了:
轉自:https://blog.csdn.net/qq_41346910/article/details/86692124
移動開發發展到現在,已經出現了三種開發方式。本文我將為你分析每一種開發的好處和缺點,幫選擇一門你喜歡的開發。
你可能會遇到過沒有不認識的名詞,請一定要了解一下,你只需要右鍵搜索。
- 原生開發
- React Native (下文簡稱RN)
- Flutter
技術在不斷前進,在原生開發還沒有精通、RN還只是了解的時候,Flutter就橫空出世了。不知道你急不急,我感覺面對移動開發的熱度和入門很低的現在。你是時候掌握一門新的跨平台技術了,Android 和Ios一起開發,不要為自己沒有Ios的手機為借口,買不起新的,買個二手的也行啊。
一、原生開發
1.概述
原生開發最簡單理解了。如果你是從事的Android開發,你用Java和Kotlin開發的應用就是原生開發了,ios也同理。
2.優點
性能高 (不管是UI繪制和功能實現)
專一性高 (可針對物聯網、車輛網、等)
可以完成高復雜App、用戶體驗好
可以直接調用Android系統的API,學習比較容易,開發資料非常多。
3.缺點
成本高(無法跨平台,分別需要Android開發人員和Ios開發人員)
維護度高(Android的各種兼容,最明顯的就是屏幕)
動態度比較復雜(一般更新只能發布新版本,需要各App市場審核。當然熱修復和熱更新可以一定程度上解決)
4、總結
自我感覺原生開發不是最差的路線,而是最好的。我對原生開發的建議,不要止步在對現有Android的App能完成開發。你應該選擇深入學習。
對Android系統底層深入理解,framework的理解,以及自己實現。
實現復雜的UI可以話出各種別人無法繪制出來的UI,從把自己項目中的第三方UI庫替換為自己的UI開始。
你寫的App除了不能跨平台,別的方面是別的技術無法比擬的!!!
你的Android開發不至於App的簡單開發,你可以把Tensorflow在Android上跑通。
你可以學習好c、c++做NDK開發、研究OpenCv、OpenGL、Openssl
二、React Native
1.概述
使用JavaScript和React編寫原生移動應用。
React Native產出的並不是“網頁應用”, 或者說“HTML5應用”,又或者“混合應用”。 最終產品是一個真正的移動應用,從使用感受上和用Objective-C或Java編寫的應用相比幾乎是無法區分的。 React Native所使用的基礎UI組件和原生應用完全一致。 你要做的就是把這些基礎組件使用JavaScript和React的方式組合起來。
2.優點
跨平台(這是Android原生無法比的)
高性價(只需要一個精通JavaScript一門語言的工程師)
高動態
3.缺點
性能低
操作復雜(無法直接調用一些系統功能)
4.總結
最強點在與跨平台和高性價。如果你對前端很喜歡,可以通過這一方面向前端好好發展,或者成為一名全棧開發。這門技術比較成熟,學習資料也比較不少。
三、Flutter
1.概述
Flutter是自繪UI+原生。
Flutter是谷歌的移動UI框架,可以快速在iOS和Android上構建高質量的原生用戶界面。 Flutter可以與現有的代碼一起工作。在全世界,Flutter正在被越來越多的開發者和組織使用,並且Flutter是完全免費、開源的。
2.優點
跨平台 (同樣可以在Android和Ios運行)
性能比較高 (比RN高比原生低)
高靈活 (自己寫UI)
熱重載
3.缺點
動態度低 (為了保證UI繪制性能)
成本高(學習資料少,還是新出來的技術不穩定)
4.總結
個人認為,如果你很喜歡App開發,你還是要學習Flutter,畢竟這是google出品,而且有一統移動App開發之勢。
喜歡前端就學習RN,去慢慢接受前端的美。
喜歡Android底層、物聯網等,你需要把你的Android學的更加深入。
最重要的是 深入學習
.