想製作手機上的APP,該學習什麼編程語言?

Dorothy_Cullen


首先我們先聊聊目前主流手機操作系統,目前就兩大陣營:安卓與IOS。在我國,從市場份額來說安卓的佔有率是極高的高達80%,而蘋果才20%。(2018年數據)。現在開發手機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 編程。今天的問題解答就分享到這裡,如果你有其它的補充方案,歡迎到留言區交流。


前端達人


你好,製作手機APP有多種編程語言組合完成,簡單的介紹一下。

使用人數最多的語言JAVA,JAVA可以作為APP的後臺開發語言,前端可以安卓原生開發(需要學習Android技術)和蘋果原生開發(需要學習iOS技術)前端也可以用web技術來寫,需要學習HTML、CSS、jQuery、ajax、vue.js等web技術,掌握了基本的前後端技術,可以開始APP的開發了,對於初學者難度還是比較大的,只有通過大量的項目編寫,才能慢慢成為一個合格的APP開發技術。

一般來說,做一個APP都是多個人合作完成的,一個人的能力畢竟有限,學習APP開發建議你選擇一個方向去學習,這樣會學的更快更專業。



APP網站遊戲開發


從問題本身猜測一下,這是一個編程初學者提出的問題。

作為初學者,想製作適合多平臺的手機App,那麼,就需要編程語言易學、易懂。

三個建議:

Javascript

使用Javascript可編寫網頁,可編寫手機H5應用,可編寫微信小程序,可使用ReactNative編寫手機App。

不能實現原生App的性能,但作為業餘使用足夠了。


Dart

可使用Flutter框架,用Dart語言編寫跨平臺App。這個框架比較新,我最近也在使用。

雖然相對來說資料少一些,但看起來前景可期。


Lua

如果還想更簡單點,可以考慮CoronaSDK。使用Lua開發跨平臺手機App。



最後,如果想開發像樣的App,而不只是玩票,最好還是有一個團隊來完成。如果對性能有一定要求,建議用Java/Kotlin和Objective-C/Swift開發原生App。


夏冬


我用的是flutter搭建好環境以後,看一天文檔基本就能上手開始寫了,非常簡單,代碼提示友好,查看源碼能看明白七八成 的api



日照西軟軟件客服


安卓:Kotlin

谷歌已經將其定位安卓的官方語言!

蘋果:OC或者swift

swift蘋果新語言,即將取代oc

swift與Kotlin相似度90%,都是現在編程語言,更容易上手,且更友好!不用擔心過時或者被短時間取代!

Kotlin也可以寫java程序,swift是開源的,利用框架也可以寫服務器

以上是原生開發,前後端都通吃!

混合開發:

谷歌還有一個flutter,是混合開發可以編譯成安卓與蘋果,還有網頁!

阿里的weex也是混合開發,可以編程成安卓,蘋果與網頁!

flutter與weex是渲染成原生組件,所以流暢度不用懷疑!

還有一種利用前端三大框架開發的,angluer,native.vue!

目前vue最火,各家小程序,包括uniapp都是基於vue,所以先學vue即可!

至於先學哪個?個人建議先原生開發然後再學vue!最後在學混合開發!

我是先學的oc,也會使用swift,花了三個月自學轉的前端,一年了,vue,uniapp,weex都做過項目,也都上架並運行維護至今!

喜歡了就努力學習!


柯帥


這個得分開細細說:

1.Android原生官方開發語言首選JAVA編程語言,Android一開始運用層使用的就是JAVA,現在隨著和甲骨文的版權問題,官方已經往kotlin編程語言方向轉變,但是不可否認,JAVA還是Android的主流語言,基本原因就是JAVA的Android庫異常多,還很豐富。

2.iOS一開始運用層使用的是object-C,現在官方推swift編程語言,新項目直接swift,但是你還會遇到好些老項目維護,不可避免和object-c打交道。

3.現在也比較流行混合開發APP,一套代碼通吃Android和iOS,那麼有很多框架選擇,框架也是某個開發語言基礎。國內的mui,uni-APP使用的是JavaScript,HTML,CSS。框架vue.js。

國外的ionic使用JavaScript,HTML,CSS,ionic4支持angular,vue,react等框架。

react native使用JavaScript,HTML,CSS,框架react。

谷歌的flutter可能將來會最流行,使用語言Dart。

最後上一張風景圖片結束,希望對你有幫助。



閉著眼睛切土豆


主要就是java,這個是跨平臺通用的,最近比較火的語言,很多軟件都是它編程的。幾乎所有智能手機都有內置的java平臺。要學的話可以買淘寶上的《Java----從入門到精通》系列。


瓜果飄香科技


主要就是java,這個是跨平臺通用的,最近比較火的語言,很多軟件都是它編程的。

幾乎所有智能手機都有內置的java平臺。

要學的話可以買淘寶上的《Java----從入門到精通》系列。

望採納。


分享到:


相關文章: