導航:首頁 > 編程語言 > phonegapjavajs

phonegapjavajs

發布時間:2025-06-06 04:07:29

Ⅰ 目前編寫一款簡單的手機應用APP一般用什麼編程語言

編寫手機App,用什麼語言?

從簡單到復雜,可以分三級:


簡單方案:HTML5

其實就是把網頁封裝成App。編程語言就是網頁三件套:HTML+CSS+javascript

有多種工具和框架,如Cordova, uni等等。

這種方式實現「App」最容易,且跨平台,對於iOS和android做一套就行了。代價是功能弱,性能低,換句話說就是「卡」。


中等方案:原生跨平台框架

這類方案在iOS和Android之上自行實現一套原生框架。通用的Flutter, ReactNative都是流行的原生跨平台框架。適用於 游戲 的Cocos2D,Corona SDK也可以算在這一級里。


這類方案實現App難度中等,因為跨平台,一次開發,iOS和Android都能運行。功能和性能也是中等,比不上原生App,但比HTML5的又好很多。


復雜方案:原生開發

直接在iOS和Android上各自開發一套原生App。

iOS可以使用Objective C或Swift。

Android可以使用Java或Kotlin。


還是來一個圖表吧,雖然簡單,卻很明了:

推薦用Flutter,簡單。


以前自己用android原生寫過7天酒店簽到程序,不過當時的安卓還是比較難寫的,不像現在越來越容易上手。


Flutter

Flutter是一個由谷歌開發的開源移動應用軟體開發工具包,用於為Android、iOS、 Windows、Mac、Linux、Google Fuchsia開發應用。


Flutter應用是使用Dart語言編寫的,雖然是新的一種語言,但是難度不算大,上網搜下相關教程學習下,應該就能很快上手。


Flutter效果


這里是我上個月仿照教程弄的一個簡單APP,效果圖如下:



點擊"Next"就切換下一張,點擊"Pre"就切換前一張,點擊「Reset」就全部滑落下來。


我女兒最喜歡中間的Reset效果,哈哈。


希望這個答案能幫到你。

現在Flutter正式版已經出來了,原生性能,安卓iOS多平台支持,谷歌大廠背書,大家可以比較放心的學習。編程語言用的是Dart,可以看做是加了語法糖版本的Java,學習起來也比較容易,如果想做手機app,可以考慮使用它。

如果只是自己做著玩的話推薦用H5開發,開發工具HBuilder或者HBuilderX。

先科普下什麼是IOS和Android吧。

IOS只是操作系統而已,是蘋果的操作系統。

開發IOS上運行的APP的話,現在流行的語言是Object-C和Swift。

Android也是操作系統,是谷歌基於Linux內核開發出來的手機操作系統。

開發Android上運行的APP的話,現在流行的語言我覺得仍然還是JAVA。

如果想要真的做一款APP的話,不僅僅會一門語言就夠了,涉及的東西比較多,如下是我給你的學習推薦路線。

學習路線:

1:先學習js,然後學習下html 、css。

學習這些可以上菜鳥教程或者W3School網站學習。

開發工具使用vscode或者Notepad++都可以的。

2:了解Mui常用組件(官網:https://dev.dcloud.net.cn/mui/ui/),

熟悉常用API(官網:http://www.html5plus.org/doc/h5p.html)。

3:服務端的開發,要麼用java開發,要麼用.net webapi開發,推薦理由,java目前是主流,.net webapi簡單容易。

java 開發工具IntelliJ IDEA,.net 開發工具 vs。

4:數據存儲使用mysql。

補充說明:如果是想做專業開發APP的話還是建議用java開發客戶端,ios APP則用swift開發。

當然現在為了一套代碼多個平台,使用H5開發專業APP的也有。

會了就可以正式擼代碼實現自己簡單的APP了。


回答完畢,謝謝。我是只說代碼的大餅。


那當然首選是h5套殼了。關於語言方面,我建議還是用PHP吧。隨著進一步學習,可以學習uinapp一鍵多端。H5、小程序、App、小程序支持多個平台上架、微信抖音支付寶網路,希望可以幫助你

目前有三種app開發方式:原生app、混合app、webapp。

原生app:安卓需要java語言,ios需要 objec t-c,wp需要的.net語言。這種app用戶體驗最好,性能也是最好的,開發成本高,開發周期長,一款app需要開發多個語言版本;

混合app:需要h5,javascript,了解每個混合框架,比如appcan、hbulider、phonegap等等,以及封裝的中間件。這種開發方式的用戶體驗、性能沒有原生的好,但是他的開發周期短,開發成本低,對開發人員技能掌握比較高,開發一套程序可以兼容到多個設備上;

webapp:需要h5、javascript語言,不能調用底層設備,用戶體驗效果次之,開發簡單,開發成本低,開發周期短,可以兼容多個設備。

綜上所述三種開發各有優缺點,要根據具體的項目需求來選擇適合自己的開發語言和開發場景。

uniapp了解下,多端應用。app的話要考慮安卓和蘋果,但學了二種學習成本比較高。用uniapp就解決了。

現在中小型企業都在逐漸採用跨平台開發的模式 效率高 成本低 作為個人更是開發不二的選擇 你問的iOS和安卓是原生開發 需要不同的開發語言和框架 學習成本也很高 既然你說你是小白 如果採用原生開發 可能得大概花一年半載才能開始上手

採用跨平台開發 只需要學習一下html css JavaScript 然後選擇跨平台開發框架 比如react flutter uniapp 都可以 跨平台就是指你這一套代碼編寫的app可以到不同平台運行 比如iOS安卓都OK 但其實很多還可以編譯到各類小程序平台運行 所以很方便

我這里推薦uniapp 一個基於vue的跨端開發框架 我自己也用這個開發了很多項目 確實很快 也提供了原生渲染能力 不做 游戲 等軟體 基本沒啥問題 社區插件市場也很熱鬧 基本有問題可以很快解決 希望可以幫到你。



按照開發方式可分為原生開發、混合開發、webapp開發,不同的開發方式學習的編程語言不一樣,下面我們來一個一個分析一下:

一、原生開發



原生開發的編程語言主要為針對IOS運行環境的為編程語言為Swift或Object c,安卓環境為Java或Kotlin,WP環境為NET。原生開發的運行效率最高,用戶體驗最好,但是需要學習不同平台的編程語言,學習門檻較高。


二、混合開發(偽原生開發)



混合開發技術主要採用一套特別的渲染引擎來渲染UI界面和交互,按照渲染引擎可分為html與dart,其編程語言主要是Javascript或Typescript、Dart。

目前基於html渲染的開發框架有react native、weex、uniapp,基於dart的開發框架只有flutter。

混合開發由於調用了原生的控制項來渲染UI,所以載入和體驗與原生差不多,學習成本比較低,只要會js,選擇一個框架開發就行了,或者學習dart語言,進行flutter開發。


三、webapp開發



webapp開發主要利用原生環境中的瀏覽器控制項來裝載伺服器上的html頁面,實際這個app就是一個自定義的瀏覽器app,所以只要會html,就會開發webapp,由於app內部載入的是遠程的網頁,所以載入速度和體驗最差。

以上是我個人的總結,有不對的歡迎指出,謝謝。

本人用c#,除了單片機用c,cad CATIA,多媒體主要Adobe,它幹完所有,不需要性能的視圖混合dom代碼。

Ⅱ HTML5實現APP和原生方式有多大差距,多少坑

我試過用國內的 HBuilder + MUI 框架開發,也試過 Cordova + React for Web
開發。現在手上的某App,正在同步使用 Cordova + React 和 React Native 分別開發 UI
層(邏輯層代碼公用)。當然,都是小型應用,還不需要像 @李維特 寫的一樣考慮頁面切換等問題……

我的結論是:坑、好大的坑、虎紋大坑。

才疏學淺,只總結出以下問題:

1. 性能問題
先是動畫。
無論是 CSS3 動畫、還是 Canvas 動畫,還是 JavaScript 操作 DOM 的動畫,都卡;後者尤甚。高端機尚可,低端機是可以卡成幻燈片的。我錄過 GIF,使用的設備是台電P88,全志 CPU 。大概就是這樣:http://zsxsoft.qiniudn.com/upload_images/2015/08/201508158461_695.gif

其次,是 DOM 性能問題。
感謝 React 帶來了 Virtual DOM,部分解決了局部區域 DOM 刷新時的性能問題。不過,一旦涉及到較大區域 DOM 更新,反倒有更大的性能損耗(最終計算出來的結果還是要全部替換掉,多做了一步 Diff )。

因為性能問題,Facebook 2012年離開了 HTML5 App 陣營(Facebook: 「Betting on HTML5 Was a Mistake」)。但時至今日,還是沒有什麼改善。也分享一篇文章,可以看看坑:移動端HTML5游戲性能優化。
這里有個例子:微眾銀行 App 是 Cordova + Ionic + Angular。微眾很行app十分卡頓,大家覺得么?

2. 兼容問題
先只算官方系統。Android系統的 WebView 一般隨 Android 版本更新(當然,也可以自己去 Play Store 更新),每個版本所支持的功能均不同。坑的是,在國內的環境下,基本不會再更新了。有的功能,在 PC 上對應版本的Chrome 是有的,到該版本 WebView 就沒有了。
比如說,XMLHttpRequest 的 onprogress 在 Android 4.0.4 上不被支持。於是,針對這類系統,只能採用像之前對 IE 的 Hack 一樣,用 iframe 來替代進度條。
再比如說,ECMAScript 6 被高版本 WebView 支持。如果開發者寫慣了後,引入了 Symbol 等,又忘記了 polyfill 。在低版本 WebView 就會出錯。就像我這樣:<Table> doesn't support old browsers. · Issue #1685 · callemall/material-ui · GitHub
接著呢,感謝 ROM 廠商亂改系統自帶的 WebView ,從而導致在各種小細節上不同手機的顯示效果或運算結果不同。更倒霉的是,有的甚至還會全頁面混亂。
怎麼解決?個人認為,像微信那樣自帶一個 X5,也許算是一個解決方案吧。

至於兼容問題的例子,還是微眾銀行好了:https://www.v2ex.com/t/215728 (與新版 iOS 9 的 WebView 不兼容)

3. 調試問題
先吐槽:Android 5.0+ 的系統內的 WebView ,可以用 Chrome for PC 來調試。但需要翻牆。

調試分調試 JavaScript 和界面兩方面。
JavaScript
方面,如果 throw 出一個錯誤,很可能剩下的事情你都幹不了了。手機端的表現就是什麼操作都沒用,也不會崩潰退出之類。在開發時,對於
JavaScript 報錯,MUI 和 Cordova 均可以通過 adb logcat 來檢查報錯;Release 後可就沒辦法找用戶連
USB 了。weinre 等工具對於 JavaScript Debug 沒啥用。
那 weinre 幹啥用?只是讓你看 DOM 層級或動態執行代碼罷了。這就是 UI 方面的調試了。這部分的話,考慮到兼容問題,自求多福吧……

Cordova 提供了 Ripple,倒的確是一個很不錯的解決方案。但是並不能涵蓋所有的手機……

4. 代碼安全性問題

如.apk -> .dex -> .jar -> .class -> .java一下就能把代碼全部拿出來看一樣,.apk
-> .js 更為方便,解壓一下就好了。於是,在 Release 前,必須 gulp / grunt 構建工作流,把 uglify
之類全部一股腦塞進去。這部分和做網頁前端沒啥區別,差別大概只有不需要考慮代碼切分等(畢竟沒有網路,全在本地)。
然而,這樣的代碼,修改成本非常低。比如我做一個付費的本地游戲,只要簡單地修改一下.js,輕輕鬆鬆破解驗證等後重新打包回去,破解版游戲就做好了,比 Java 的簡單多了。就算有 C++,我 js 不調用你,你又奈我何?沒有伺服器驗證的話,玩蛋去吧。

5. 功能問題
如果沒有 Native Code,一切HTML5 App都是空架子。所以,Java / Objective-C / C#仍然是必須學習的語言;Native App 如何開發也仍然是必修。比如以下代碼,就是在 MUI 里用原生瀏覽器打開一個鏈接。
function openInBrowser(originalUri) {
var Intent = plus.android.importClass("android.content.Intent");
var main = plus.android.runtimeMainActivity();
var Uri = plus.android.importClass("android.net.Uri");
var uri = Uri.parse(originalUri);
var intent = new Intent(Intent.ACTION_VIEW, uri);
main.startActivity(intent);
}

當然,Cordova 就得寫 plugin 了,更為繁雜。

閱讀全文

與phonegapjavajs相關的資料

熱點內容
php寫入xml 瀏覽:973
daemon命令行錯誤 瀏覽:568
php判斷是否為中文 瀏覽:342
活塞壓縮機噴油 瀏覽:100
scr指標源碼 瀏覽:729
手錶pdf 瀏覽:966
高海礦山空氣壓縮機 瀏覽:291
逆向思維pdf 瀏覽:719
java克隆實現 瀏覽:414
hdfsbalance命令 瀏覽:765
程序員養老院段子 瀏覽:482
伺服器路由表怎麼用 瀏覽:967
php內置函數源碼 瀏覽:848
資金回頭選股源碼 瀏覽:254
dz宏命令 瀏覽:355
蟻群演算法實現一維優化代碼 瀏覽:319
伺服器釋放有什麼用 瀏覽:390
解壓包子洗了變粘了怎麼辦 瀏覽:830
635除以三十的簡便演算法 瀏覽:640
樂高ev3編程軟體安卓 瀏覽:337