先我們先聊聊目前主流手機操作系統,目前就兩大陣營:安卓與IOS。在我國,從市場份額來說安卓的占有率是極高的高達80%,而蘋果才20%。(2018年數據)?,F在開發手機APP的技術現在主要分為原生開發、前端的方式開發、原生和前端的混合方式,還有目前新出的flutter技術的開發方式,接下來我們來詳細聊聊對應的相關技術。
原生方式開發
如果你選擇安卓陣營,目前可供你選擇的語言有 JAVA 和 Kotlin,如果你是安卓的初學者沒有 JAVA 相關的編程經驗,建議你先從 JAVA 開始學起。如果你是有 JAVA 編程經驗的開發人員,你可以開始學 Kotlin。接下來我來分別進行解釋為什么要這樣選擇:
1、沒有編程經驗的初學者,建議先從JAVA語言開始
如果你沒有編程經驗,建議你還是首選JAVA,除了Android 系統開發APP 開始就是首選 JAVA 的原因外,還有如下幾個原因:
JAVA 可以為你打下編程思維的基礎,如果沒有語言基礎,上來就編 APP 很難。
JAVA 相關的中文資料多,有什么問題,你都可以通過搜索引擎找到答案。
JAVA 的社區社區成熟、還有對應用 JAVA 編寫的安卓庫比較多,你可以很方便的拿來就用。
相對Kotlin來說,還是一種新的編程語言,很多開源項目還未成熟,并且學習資源也相對稀少。這樣就意味著你有比較多的坑要踩,對于初學者有著太多的挑戰。
2、有 JAVA 編程經驗的,建議開始學kotlin
安卓最開始的官方首選語言推薦JAVA,自從隨著甲骨文對JAVA有著相應的版權,安卓官網為了擺脫這個束縛,就開始轉變編程語言,建議使用 kotlin。對Java開發人員來說,建議開始學習Kotlin,因為它確實提高了開發效率。有些以前幾十行的 JAVA 代碼,如過換成了 Kotlin 有可能幾行就實現了。facebook, Squre等公司曾經公開已經切到看Kotlin開發,國內使用 JAVA 進行開發還需要持續一段時間,目前還沒有聽說哪個應用是完全用 kotlin 開發的。但是不代表未來不會,畢竟安卓官方正在不遺余力的進行推,代表著未來的方向,因此作為有 JAVA 編程基礎的人,應該從現在開始學習 kotlin,學習這個你應該提前有個心理準備,相關的學習資源比較少,插件少,大部分資料是外文的,你還有許多坑要去踩。
如果你選擇 IOS 開發陣營,你可以選擇的語言同樣面臨著兩種,一個是一開始就使用的object-C 和 現在官方推薦的 swift。由于歷史遺留的問題,還有比較多用 object-C開發的APP,因此我建議在學好object-C的基礎上,再開始學習 swift。因為在未來的版本中,官方會越來越向 swift 進行傾斜。既然是這樣,你又不得不去學習 swift,同時又不能丟棄object-C,還有一點需要提及到在swift的項目中你還可以使用 object-C,使用兩者語言可以混合進行開發。如果時間精力不允許的情況,在使用 object-C 開發的項目中,如果有新的功能,你可以使用 swift 語言,等有時間了,條件允許的情況下,在逐步把以前的功能替換成 swift。
混合開發
目前也比較流行混合開發,由于原生開發的成本比較高,需要有兩個團隊進行維護,同時修改一個功能,都需要進行打包發布提交審核,為了節省成本提高開發速度,會將精彩有變化的通用的功能,使用內嵌網頁的形式進行開發,這時用到的就是前端相關的開發知識,比如你可以使用前端相關的開發框架 vue、react、angular 其中的任意一種,或者不用任何前端框架。如果采用這種方式開發,你就要去學前端相關的知識:html,css,javaScript等,學完這些還要去學習我剛才提及的三種框架之一。
完全用前端技術開發
隨著前端技術的發展,現在有一種流行的“大前端”的說法,你可以用前端做很多的事情,除了用前端可以開發網站,我們可以用來做后端(Node),桌面軟件、手機端軟件、VR 、網頁游戲等等。這里我們來聊聊完全用前端的開發方式,剛才我們說的混合開發其實使用到的的類似webview的組件訪問網頁而已,之所以選擇這種方式開發,一是實現了跨平臺,同時又節省了開發和管理成本,用前端的方式編寫一套代碼,就可以多平臺部署。使用這種方式的優勢就是開發快,成本低,缺點就是犧牲了原生的性能。
這里我說的完全用前端開發有比較多的解決方案:Cordova、uni-app、weex, ionic、React Native、Taro等方式,由于太多我就不一一介紹了,如果你傾向使用Vue框架,建議使用 uni-app,如果你前端傾向學習 React 框架,你就選擇 React Native。 接下來我著重介紹下uni-app 和 React Native(如果你感興趣我剛才提及的技術,建議去搜索引擎查找下)。
1、uni-app
uni-app是一個使用Vue.js開發所有前端應用的框架,開發者編寫一套代碼,可發布到的iOS,機器人,H5,以及各種小程序(微信/支付寶/百度/頭條/ QQ /釘釘)等多個平臺。據他們說擁有350萬開發者用戶,旗下uni-app有5萬+案例,600 +插件。如果你選擇使用這個方式開發開發APP,那建議你去學習 Vue這個框架 和 前端相關的基礎知識。以下這張圖羅列了uni-app官網對其框架的詳細解釋圖,如下所示:
2、React Native
React Native (簡稱RN)是Facebook于2015年4月開源的跨平臺移動應用開發框架,是Facebook早先開源的JS框架 React 在原生移動應用平臺的衍生產物,目前支持iOS和安卓兩大平臺。RN使用Javascript語言,類似于 HTML 的JSX,以及CSS來開發移動應用,因此熟悉Web前端開發的技術人員只需很少的學習就可以進入移動應用開發領域。
因此你想使用這種方法進行開發APP,你就要去學習 React 和前端相關的基礎知識。
flutter
Flutter是谷歌的移動UI框架,可以快速在iOS和Android上構建高質量的原生用戶界面。 Flutter可以與現有的代碼一起工作。在全世界,Flutter正在被越來越多的開發者和組織使用,并且Flutter是完全免費、開源的。由于 Flutter 目前還比較新,使用的語言是 Dart,如果你選擇這種開發方式做APP,意味著你要面臨中文學習資料少,有更多坑要踩,下面是一張 Flutter 與 React Native 的對比介紹,要不要選擇這種方式,你可以考慮下,從這張圖中,貌似Flutter的性能會更好。
小節
關于想進入開發手機APP的同學們,如果你或者公司對性能要求很高,又不考慮開發成本,建議選擇原生開發,如果選擇選擇原生開發,你需要確定是做 IOS 開發 還是 安卓 開發,做安卓開發你可以選擇 Java 或者 kotlin,選擇 IOS 開發 你要學習 object-C 和 swift 。如果你選擇混合開發和完全用前端技術開發,你需要學習前端相關的基礎知識和相關框架。如果你想用時髦比較前衛的技術實現跨平臺開發,你需要學習Flutter相關的 Dart 編程。今天的問題解答就分享到這里,如果你有其它的補充方案,歡迎到留言區交流。
-
JAVA
+關注
關注
19文章
2960瀏覽量
104562 -
APP
+關注
關注
33文章
1569瀏覽量
72385 -
編程語言
+關注
關注
10文章
1939瀏覽量
34608
發布評論請先 登錄
相關推薦
評論