返學(xué)費(fèi)網(wǎng) > 培訓(xùn)機(jī)構(gòu) > 全國(guó)IT培訓(xùn)中心
編寫(xiě)手機(jī)App,用什么語(yǔ)言?
從簡(jiǎn)單到復(fù)雜,可以分三級(jí):
其實(shí)就是把網(wǎng)頁(yè)封裝成App。編程語(yǔ)言就是網(wǎng)頁(yè)三件套:HTML+CSS+
有多種工具和框架,如Cordova, uni等等。
這種方式實(shí)現(xiàn)“App”最容易,且跨平臺(tái),對(duì)于iOS和Android做一套就行了。代價(jià)是功能弱,性能低,換句話說(shuō)就是“卡”。
這類方案在iOS和Android之上自行實(shí)現(xiàn)一套原生框架。通用的Flutter, 都是流行的原生跨平臺(tái)框架。適用于 游戲 的Cocos2D,Corona SDK也可以算在這一級(jí)里。
這類方案實(shí)現(xiàn)App難度中等,因?yàn)榭缙脚_(tái),一次開(kāi)發(fā),iOS和Android都能運(yùn)行。功能和性能也是中等,比不上原生App,但比HTML5的又好很多。
直接在iOS和Android上各自開(kāi)發(fā)一套原生App。
iOS可以使用Objective C或Swift。
Android可以使用Java或Kotlin。
還是來(lái)一個(gè)圖表吧,雖然簡(jiǎn)單,卻很明了:
推薦用Flutter,簡(jiǎn)單。
以前自己用android原生寫(xiě)過(guò)7天酒店簽到程序,不過(guò)當(dāng)時(shí)的安卓還是比較難寫(xiě)的,不像現(xiàn)在越來(lái)越容易上手。
Flutter是一個(gè)由谷歌開(kāi)發(fā)的開(kāi)源移動(dòng)應(yīng)用軟件開(kāi)發(fā)工具包,用于為Android、iOS、 Windows、Mac、Linux、Google Fuchsia開(kāi)發(fā)應(yīng)用。
Flutter應(yīng)用是使用Dart語(yǔ)言編寫(xiě)的,雖然是新的一種語(yǔ)言,但是難度不算大,上網(wǎng)搜下相關(guān)教程學(xué)習(xí)下,應(yīng)該就能很快上手。
這里是我上個(gè)月仿照教程弄的一個(gè)簡(jiǎn)單APP,效果圖如下:
點(diǎn)擊"Next"就切換下一張,點(diǎn)擊"Pre"就切換前一張,點(diǎn)擊“Reset”就全部滑落下來(lái)。
我女兒最喜歡中間的Reset效果,哈哈。
希望這個(gè)答案能幫到你。
現(xiàn)在Flutter正式版已經(jīng)出來(lái)了,原生性能,安卓iOS多平臺(tái)支持,谷歌大廠背書(shū),大家可以比較放心的學(xué)習(xí)。編程語(yǔ)言用的是Dart,可以看做是加了語(yǔ)法糖版本的Java,學(xué)習(xí)起來(lái)也比較容易,如果想做手機(jī)app,可以考慮使用它。
如果只是自己做著玩的話推薦用H5開(kāi)發(fā),開(kāi)發(fā)工具HBuilder或者HBuilderX。
先科普下什么是IOS和Android吧。IOS只是操作系統(tǒng)而已,是蘋(píng)果的操作系統(tǒng)。
開(kāi)發(fā)IOS上運(yùn)行的APP的話,現(xiàn)在流行的語(yǔ)言是Object-C和Swift。
Android也是操作系統(tǒng),是谷歌基于Linux內(nèi)核開(kāi)發(fā)出來(lái)的手機(jī)操作系統(tǒng)。
開(kāi)發(fā)Android上運(yùn)行的APP的話,現(xiàn)在流行的語(yǔ)言我覺(jué)得仍然還是JAVA。
如果想要真的做一款A(yù)PP的話,不僅僅會(huì)一門語(yǔ)言就夠了,涉及的東西比較多,如下是我給你的學(xué)習(xí)推薦路線。
學(xué)習(xí)路線:1:先學(xué)習(xí)js,然后學(xué)習(xí)下html 、css。
學(xué)習(xí)這些可以上菜鳥(niǎo)教程或者W3School網(wǎng)站學(xué)習(xí)。
開(kāi)發(fā)工具使用vscode或者Notepad++都可以的。
2:了解Mui常用組件(官網(wǎng):
熟悉常用API(官網(wǎng):
3:服務(wù)端的開(kāi)發(fā),要么用java開(kāi)發(fā),要么用.net webapi開(kāi)發(fā),推薦理由,java目前是主流,.net webapi簡(jiǎn)單容易。
java 開(kāi)發(fā)工具IntelliJ IDEA,.net 開(kāi)發(fā)工具 vs。
4:數(shù)據(jù)存儲(chǔ)使用mysql。
補(bǔ)充說(shuō)明:如果是想做專業(yè)開(kāi)發(fā)APP的話還是建議用java開(kāi)發(fā)客戶端,ios APP則用swift開(kāi)發(fā)。
當(dāng)然現(xiàn)在為了一套代碼多個(gè)平臺(tái),使用H5開(kāi)發(fā)專業(yè)APP的也有。
會(huì)了就可以正式擼代碼實(shí)現(xiàn)自己簡(jiǎn)單的APP了。
回答完畢,謝謝。我是只說(shuō)代碼的大餅。
那當(dāng)然首選是h5套殼了。關(guān)于語(yǔ)言方面,我建議還是用PHP吧。隨著進(jìn)一步學(xué)習(xí),可以學(xué)習(xí)uinapp一鍵多端。H5、小程序、App、小程序支持多個(gè)平臺(tái)上架、微信抖音支付寶百度,希望可以幫助你
目前有三種app開(kāi)發(fā)方式:原生app、混合app、webapp。
原生app:安卓需要java語(yǔ)言,ios需要 objec t-c,wp需要的.net語(yǔ)言。這種app用戶體驗(yàn)最好,性能也是最好的,開(kāi)發(fā)成本高,開(kāi)發(fā)周期長(zhǎng),一款app需要開(kāi)發(fā)多個(gè)語(yǔ)言版本;
混合app:需要h5,,了解每個(gè)混合框架,比如appcan、hbulider、phonegap等等,以及封裝的中間件。這種開(kāi)發(fā)方式的用戶體驗(yàn)、性能沒(méi)有原生的好,但是他的開(kāi)發(fā)周期短,開(kāi)發(fā)成本低,對(duì)開(kāi)發(fā)人員技能掌握比較高,開(kāi)發(fā)一套程序可以兼容到多個(gè)設(shè)備上;
webapp:需要h5、語(yǔ)言,不能調(diào)用底層設(shè)備,用戶體驗(yàn)效果次之,開(kāi)發(fā)簡(jiǎn)單,開(kāi)發(fā)成本低,開(kāi)發(fā)周期短,可以兼容多個(gè)設(shè)備。
綜上所述三種開(kāi)發(fā)各有優(yōu)缺點(diǎn),要根據(jù)具體的項(xiàng)目需求來(lái)選擇適合自己的開(kāi)發(fā)語(yǔ)言和開(kāi)發(fā)場(chǎng)景。
uniapp了解下,多端應(yīng)用。app的話要考慮安卓和蘋(píng)果,但學(xué)了二種學(xué)習(xí)成本比較高。用uniapp就解決了。
現(xiàn)在中小型企業(yè)都在逐漸采用跨平臺(tái)開(kāi)發(fā)的模式 效率高 成本低 作為個(gè)人更是開(kāi)發(fā)不二的選擇 你問(wèn)的iOS和安卓是原生開(kāi)發(fā) 需要不同的開(kāi)發(fā)語(yǔ)言和框架 學(xué)習(xí)成本也很高 既然你說(shuō)你是小白 如果采用原生開(kāi)發(fā) 可能得大概花一年半載才能開(kāi)始上手
采用跨平臺(tái)開(kāi)發(fā) 只需要學(xué)習(xí)一下html css 然后選擇跨平臺(tái)開(kāi)發(fā)框架 比如react flutter uniapp 都可以 跨平臺(tái)就是指你這一套代碼編寫(xiě)的app可以到不同平臺(tái)運(yùn)行 比如iOS安卓都OK 但其實(shí)很多還可以編譯到各類小程序平臺(tái)運(yùn)行 所以很方便
我這里推薦uniapp 一個(gè)基于vue的跨端開(kāi)發(fā)框架 我自己也用這個(gè)開(kāi)發(fā)了很多項(xiàng)目 確實(shí)很快 也提供了原生渲染能力 不做 游戲 等軟件 基本沒(méi)啥問(wèn)題 社區(qū)插件市場(chǎng)也很熱鬧 基本有問(wèn)題可以很快解決 希望可以幫到你。
按照開(kāi)發(fā)方式可分為原生開(kāi)發(fā)、混合開(kāi)發(fā)、webapp開(kāi)發(fā),不同的開(kāi)發(fā)方式學(xué)習(xí)的編程語(yǔ)言不一樣,下面我們來(lái)一個(gè)一個(gè)分析一下:
一、原生開(kāi)發(fā)
原生開(kāi)發(fā)的編程語(yǔ)言主要為針對(duì)IOS運(yùn)行環(huán)境的為編程語(yǔ)言為Swift或Object c,安卓環(huán)境為Java或Kotlin,WP環(huán)境為NET。原生開(kāi)發(fā)的運(yùn)行效率最高,用戶體驗(yàn)最好,但是需要學(xué)習(xí)不同平臺(tái)的編程語(yǔ)言,學(xué)習(xí)門檻較高。
二、混合開(kāi)發(fā)(偽原生開(kāi)發(fā))
混合開(kāi)發(fā)技術(shù)主要采用一套特別的渲染引擎來(lái)渲染UI界面和交互,按照渲染引擎可分為html與dart,其編程語(yǔ)言主要是或、Dart。
目前基于html渲染的開(kāi)發(fā)框架有react native、weex、uniapp,基于dart的開(kāi)發(fā)框架只有flutter。
混合開(kāi)發(fā)由于調(diào)用了原生的控件來(lái)渲染UI,所以加載和體驗(yàn)與原生差不多,學(xué)習(xí)成本比較低,只要會(huì)js,選擇一個(gè)框架開(kāi)發(fā)就行了,或者學(xué)習(xí)dart語(yǔ)言,進(jìn)行flutter開(kāi)發(fā)。
三、webapp開(kāi)發(fā)
webapp開(kāi)發(fā)主要利用原生環(huán)境中的瀏覽器控件來(lái)裝載服務(wù)器上的html頁(yè)面,實(shí)際這個(gè)app就是一個(gè)自定義的瀏覽器app,所以只要會(huì)html,就會(huì)開(kāi)發(fā)webapp,由于app內(nèi)部加載的是遠(yuǎn)程的網(wǎng)頁(yè),所以加載速度和體驗(yàn)最差。
以上是我個(gè)人的總結(jié),有不對(duì)的歡迎指出,謝謝。
本人用c#,除了單片機(jī)用c,cad CATIA,多媒體主要Adobe,它干完所有,不需要性能的視圖混合dom代碼。
關(guān)于手機(jī)APP開(kāi)發(fā)用混合還是原生現(xiàn)在說(shuō)法不一,有說(shuō)混合開(kāi)發(fā)好:時(shí)間短、費(fèi)用低、效果也不錯(cuò),有說(shuō)原生開(kāi)發(fā)好,原生APP在性能方面比較好。app原生開(kāi)發(fā)和混合開(kāi)發(fā)的區(qū)別是什么呢?
混合模式 APP
混合應(yīng)用開(kāi)發(fā)正是結(jié)合原生和HTML5開(kāi)發(fā)的技術(shù),取長(zhǎng)補(bǔ)短的一種開(kāi)發(fā)模式,原生代碼部分利用WebView插件或者其它的框架為HTML5提供了一個(gè)容器,程序主要的業(yè)務(wù)實(shí)現(xiàn)、界面展示是利用H5相關(guān)的Web技術(shù)進(jìn)行實(shí)現(xiàn)的。比如現(xiàn)在的京東、淘寶、今日頭條等都是利用的混合開(kāi)發(fā)模式。
優(yōu)點(diǎn):
①.開(kāi)發(fā)效率高,節(jié)約時(shí)間同一套代碼Android和IOS基本都可用;
②.更新和部署比較方便,不需要每次升級(jí)都要上傳到App Store進(jìn)行審核了,只需要在服務(wù)器端升級(jí)就可以;
③.代碼維護(hù)方便、版本更新快,降低產(chǎn)品成本;
缺點(diǎn):
①.由于不能直接操控硬件有些方面性能不是很好;
②.用戶體驗(yàn)不如本地應(yīng)用,性能稍慢(需要連接網(wǎng)絡(luò));
原生模式 APP
原生模式開(kāi)發(fā)代表著較好的用戶體驗(yàn)和更快更高的性能。原生app開(kāi)發(fā)采用的純?cè)鷳?yīng)用開(kāi)發(fā),是在Android、IOS等移動(dòng)平臺(tái)上利用官方提供的開(kāi)發(fā)語(yǔ)言、開(kāi)發(fā)類庫(kù)、開(kāi)發(fā)工具進(jìn)行App開(kāi)發(fā)。比如android是利用java、eclipse、Android studio,iOS是利用Objective-C 和Xcode進(jìn)行開(kāi)發(fā)。原生應(yīng)用由于利用的是官方提供的語(yǔ)言和工具并且能夠直接操控硬件設(shè)備(比如多點(diǎn)觸控、NFC、讀取短信等),在應(yīng)用性能上和交互體驗(yàn)上應(yīng)該是最好的,但是原生應(yīng)用的可移植性比較差,特別是一款原生的App,Android和IOS都要各自開(kāi)發(fā),同樣的邏輯、界面要寫(xiě)兩套。
優(yōu)點(diǎn):
①.可訪問(wèn)手機(jī)所有功能、可實(shí)現(xiàn)功能齊全;
②.運(yùn)行速度快、性能高,的用戶體驗(yàn);
③.比較快捷地使用設(shè)備端提供的接口,處理速度上有優(yōu)勢(shì);
缺點(diǎn):
①.開(kāi)發(fā)成本高;
②.支持設(shè)備非常有限(一般是哪個(gè)系統(tǒng)就在哪個(gè)平臺(tái)專屬設(shè)備上使用);
③.上線時(shí)間不確定(App Store審核過(guò)程不一);
④.獲得新版本時(shí)需重新下載應(yīng)用更新;
? ? ?原生開(kāi)發(fā)是在Android、IOS移動(dòng)平臺(tái)上利用各自的開(kāi)發(fā)語(yǔ)言、開(kāi)發(fā)API、開(kāi)發(fā)工具進(jìn)行App軟件開(kāi)發(fā)。例如Android是利用Java或者kotlin,使用Eclipse、Android studio、idea等工具開(kāi)發(fā);IOS是利用Objective-C或者Swift,使用Xcode工具等進(jìn)行開(kāi)發(fā)。
原生開(kāi)發(fā)的優(yōu)點(diǎn):
可訪問(wèn)手機(jī)所有功能(如GPS、攝像頭等)、可實(shí)現(xiàn)功能齊全;
運(yùn)行速度快、性能高,絕佳的用戶體驗(yàn);
支持大量圖形和動(dòng)畫(huà),不卡頓,反應(yīng)快;
比較快捷地使用設(shè)備端提供的接口,處理速度上有優(yōu)勢(shì)。
原生開(kāi)發(fā)的缺點(diǎn):
開(kāi)發(fā)周期長(zhǎng); ?
制作費(fèi)用高昂,成本較高; ?
可移植性比較差,一款原生的App,Android和IOS都要各自開(kāi)發(fā),同樣的邏輯、界面要寫(xiě)兩套; ?
內(nèi)容限制(App ? Store限制); ?
獲得新版本時(shí)需重新下載應(yīng)用更新。
混合開(kāi)發(fā)混合開(kāi)發(fā),是指在開(kāi)發(fā)一款A(yù)pp產(chǎn)品的時(shí)候,為了提高效率、節(jié)省成本而利用原生與H5的開(kāi)發(fā)技術(shù)的混合應(yīng)用。通俗點(diǎn)來(lái)說(shuō),這就是網(wǎng)頁(yè)的模式,通常由“H5云網(wǎng)站+APP應(yīng)用客戶端”;兩部分構(gòu)成。
混合開(kāi)發(fā)是一種取長(zhǎng)補(bǔ)短的開(kāi)發(fā)模式,原生代碼部分利用插件或者其它框架為H5提供容器,程序主要的業(yè)務(wù)實(shí)現(xiàn)、界面展示都是利用與H5相關(guān)的技術(shù)進(jìn)行實(shí)現(xiàn)的。很多APP都是利用混合開(kāi)發(fā)模式而成的。 ?
混合開(kāi)發(fā)優(yōu)點(diǎn):
開(kāi)發(fā)效率高,節(jié)約時(shí)間。同一套代碼Android和IOS基本上都可使用; ?
更新和部署比較方便,每次升級(jí)版本只需要在服務(wù)器端升級(jí)即可,不再需要上傳到App ? Store進(jìn)行審核; ?
代碼維護(hù)方便、版本更新快,節(jié)省產(chǎn)品成本; ?
比web版實(shí)現(xiàn)功能多; ?
可離線運(yùn)行。?
混合開(kāi)發(fā)缺點(diǎn): ?
網(wǎng)絡(luò)要求高:混合APP數(shù)據(jù)需要全部從服務(wù)器調(diào)取,每個(gè)頁(yè)面都需要重新下載,因此打開(kāi)速度慢,網(wǎng)絡(luò)占用高,緩沖時(shí)間長(zhǎng),容易讓用戶反感。 ?
1.原生開(kāi)發(fā)(Native App開(kāi)發(fā)):像蓋房子一樣,先打地基然后澆地梁、房屋結(jié)構(gòu)、一磚一瓦、鋼筋水泥、電路走向等,原生APP同理:通過(guò)代碼從每個(gè)頁(yè)面、每個(gè)功能、每個(gè)效果、每個(gè)邏輯、每個(gè)步驟全部用代碼寫(xiě)出來(lái),一層層,一段段全用代碼寫(xiě)出來(lái)
此種APP的數(shù)據(jù)都保存在本地,APP能及時(shí)調(diào)取,所以相應(yīng)速度及流暢性有保障
2.混合開(kāi)發(fā)(HTML5開(kāi)發(fā)):這個(gè)就相當(dāng)于一種框架開(kāi)發(fā),說(shuō)白了就是網(wǎng)頁(yè);該模式通常由“HTML5云網(wǎng)站+APP應(yīng)用客戶端”兩部份構(gòu)成,APP應(yīng)用客戶端只需安裝應(yīng)用的框架部份,而應(yīng)用的數(shù)據(jù)則是每次打開(kāi)APP的時(shí)候,去云端取數(shù)據(jù)呈現(xiàn)給手機(jī)用戶。
混合APP還有一種是套殼APP,套殼APP就是用H5的網(wǎng)頁(yè)打包成APP,雖然是APP能安裝到手機(jī)上,但是每個(gè)界面,全部是網(wǎng)頁(yè)。此種APP數(shù)據(jù)都保存在云端,用戶每次訪問(wèn)都需要從云端調(diào)取全部?jī)?nèi)容,這樣就容易導(dǎo)致反應(yīng)慢,每打開(kāi)一個(gè)網(wǎng)頁(yè)或點(diǎn)一個(gè)按鈕都需要等半天。
混合開(kāi)發(fā)的優(yōu)缺點(diǎn):
優(yōu)點(diǎn)是:
1、開(kāi)發(fā)效率高,節(jié)約時(shí)間同一套代碼Android和IOS基本都可用
2、更新和部署比較方便,不需要每次升級(jí)都要上傳到App Store進(jìn)行審核了,只需要在服務(wù)器端升級(jí)就可以
3、代碼維護(hù)方便、版本更新快,降低產(chǎn)品成本
缺點(diǎn)是:
1、由于不能直接操控硬件有些方面性能不是很好
2、另外有技術(shù)比較新版本的兼容性比較差,還有就是即懂原生開(kāi)發(fā)又懂H5開(kāi)發(fā)的高端人才難找。
混合App開(kāi)發(fā)是未來(lái)的趨勢(shì),目前混合開(kāi)發(fā)中使用的技術(shù)也很多,主要的混合開(kāi)發(fā)技術(shù)有jQuery Mobile、React Native、Cordova、APICloud、AppCan等。雖然混合開(kāi)發(fā)能夠提高效率節(jié)省成本,但也有很多的限制,除了硬件、緩存等的限制,各大平臺(tái)之間的兼容性也不足。有的也比較消耗資源。
只要一個(gè)電話
我們免費(fèi)為您回電