flutter調(diào)用原生sdk 目前編寫(xiě)一款簡(jiǎn)單的手機(jī)應(yīng)用APP一般用什么編程語(yǔ)言?
目前編寫(xiě)一款簡(jiǎn)單的手機(jī)應(yīng)用APP一般用什么編程語(yǔ)言?用什么語(yǔ)言編寫(xiě)移動(dòng)應(yīng)用程序?從簡(jiǎn)單到復(fù)雜,它可以分為三個(gè)層次:事實(shí)上,它是將網(wǎng)頁(yè)封裝成應(yīng)用程序。有很多工具和框架,比如Cordova、uni等等。以
目前編寫(xiě)一款簡(jiǎn)單的手機(jī)應(yīng)用APP一般用什么編程語(yǔ)言?
用什么語(yǔ)言編寫(xiě)移動(dòng)應(yīng)用程序?
從簡(jiǎn)單到復(fù)雜,它可以分為三個(gè)層次:事實(shí)上,它是將網(wǎng)頁(yè)封裝成應(yīng)用程序。有很多工具和框架,比如Cordova、uni等等。
以這種方式實(shí)現(xiàn)“應(yīng)用程序”是最簡(jiǎn)單的方法,而且是跨平臺(tái)的。只需為IOS和Android做一個(gè)設(shè)置。價(jià)格是功能弱,性能低,換句話說(shuō)就是“卡”。
這種解決方案在IOS和Android上實(shí)現(xiàn)了本機(jī)框架。通用flutter和react native是流行的native跨平臺(tái)框架。Cocos2d和coronasdk的游戲也可以包括在這個(gè)級(jí)別。
由于IOS和Android可以在跨平臺(tái)、一次性開(kāi)發(fā)中運(yùn)行,因此這種解決方案在應(yīng)用程序?qū)崿F(xiàn)上有一定難度。功能和性能也是中等的,不如原生應(yīng)用,但比HTML5好得多。
直接在IOS和Android上開(kāi)發(fā)本機(jī)應(yīng)用程序。
IOS可以使用objective C或swift。
Android可以使用Java或kotlin。
讓我們看一張圖表。雖然很簡(jiǎn)單,但很明顯:
現(xiàn)在國(guó)內(nèi)使用Flutter來(lái)開(kāi)發(fā)的多嗎?
像仙游這樣的國(guó)內(nèi)開(kāi)發(fā)團(tuán)隊(duì)在顫振領(lǐng)域做了大量的研究,阿里等公司也越來(lái)越重視這個(gè)框架。
Flitter在中國(guó)的普及率仍然相對(duì)較低,而像recent native這樣的工具似乎被更多的人使用。主要原因是國(guó)內(nèi)大部分開(kāi)發(fā)人員都從事過(guò)網(wǎng)站開(kāi)發(fā),所以對(duì)HTML和JS比較熟悉。
因?yàn)閒latter使用的是dart語(yǔ)言,學(xué)習(xí)的成本很高,而且dart的UI設(shè)計(jì)是純代碼的,嵌套很多,這讓初學(xué)者很頭疼。然而,只要你習(xí)慣了任何一種語(yǔ)言,就不難使用它。開(kāi)始每件事往往是困難的。
既然谷歌已經(jīng)選擇了dart,那里面一定有什么東西。簡(jiǎn)單地比較或者討論,比如動(dòng)態(tài)或者靜態(tài),是否支持反射是沒(méi)有意義的。白菜蘿卜各有所愛(ài)。支持任何語(yǔ)言都是合理的。關(guān)鍵取決于他的精通程度。
谷歌可能擔(dān)心Java的版權(quán)問(wèn)題,因此強(qiáng)烈建議使用Android本機(jī)語(yǔ)言kotlin。但效果很差。我覺(jué)得沒(méi)有人會(huì)選擇kotlin,除非Java被禁止。這和人們習(xí)慣使用JS而不喜歡dart的原因是一樣的。但有趣的是,dart可以生成JS代碼。這應(yīng)該是更多人選擇使用它的原因之一。
由于谷歌強(qiáng)烈推薦flatter,這實(shí)際上與它的新系統(tǒng)功能有關(guān),許多人懷疑Android可能會(huì)被谷歌拋棄。坦率地說(shuō),我希望如此。Android的性能是一個(gè)弱點(diǎn)。雖然比以前光滑了,但也不是天生的好。谷歌正在基于其新的鋯石內(nèi)核構(gòu)建一個(gè)新的系統(tǒng),這個(gè)系統(tǒng)類似于鴻蒙的想法,可以支持多種平臺(tái)。
Flitter不僅受到谷歌的重視,也受到國(guó)內(nèi)巨頭的重視。據(jù)估計(jì),像華為這樣的公司對(duì)此特別關(guān)注,因?yàn)樗麄兪堑谝粋€(gè)參加funchsia測(cè)試的中國(guó)公司。由于Google是基于性能需求開(kāi)發(fā)的flatter,在Android上,flatter組件與native是同一個(gè)渲染引擎,因此性能非常接近native,這也是其他框架的優(yōu)勢(shì)。
很多年前,我們都希望H5能統(tǒng)一世界,但我覺(jué)得未來(lái)可能需要dart來(lái)統(tǒng)一。這種后發(fā)優(yōu)勢(shì)可能是谷歌創(chuàng)新的原因。在不影響性能的前提下,快速發(fā)展將是未來(lái)的發(fā)展趨勢(shì)。
Android App開(kāi)發(fā)現(xiàn)在學(xué)Kotlin好還是Flutter好?
巧合的是,他們都和谷歌有關(guān),這很有趣。
Kotlin是一種運(yùn)行在Java虛擬機(jī)上的靜態(tài)編程語(yǔ)言,被稱為Android世界的swift。2017年,谷歌宣布kotlin作為Android的官方開(kāi)發(fā)語(yǔ)言。這樣,kotlin就成為了Android開(kāi)發(fā)的主流語(yǔ)言。當(dāng)然,作為一種運(yùn)行在Java虛擬機(jī)上的語(yǔ)言,kotlin也可以像Java一樣用作后臺(tái)開(kāi)發(fā)語(yǔ)言。與Java相比,kotlin是一種語(yǔ)法簡(jiǎn)潔、開(kāi)發(fā)效率高的現(xiàn)代語(yǔ)言,也是一種強(qiáng)類型語(yǔ)言。
讓我們來(lái)談?wù)勵(lì)澱瘛Mǔ?lái)說(shuō),flutter不是一種語(yǔ)言,而是由Google推出的開(kāi)源移動(dòng)UI框架。其開(kāi)發(fā)語(yǔ)言為dart,其核心優(yōu)勢(shì)是:?jiǎn)味碎_(kāi)發(fā),多終端操作,程序性能接近本地應(yīng)用體驗(yàn)。那就是開(kāi)發(fā)一套可以在IOS和Android上運(yùn)行的代碼??梢韵胂?,一個(gè)程序員,開(kāi)發(fā)一個(gè)程序可以在多個(gè)終端上運(yùn)行,也就是說(shuō),一個(gè)人同時(shí)做幾個(gè)人的工作!當(dāng)然,好處不言而喻。
如果本課題的開(kāi)發(fā)工作主要集中在開(kāi)發(fā)Android上,我個(gè)人建議首先使用政府推薦的kotlint,因?yàn)橹皇褂肁ndroid的官方語(yǔ)言是絕對(duì)有利的。你為什么這么說(shuō)?如果大公司開(kāi)發(fā)應(yīng)用程序,他們更喜歡程序的穩(wěn)定性、可靠性和效率,并且程序本身不會(huì)局限于需求的規(guī)劃。因此,為了節(jié)約預(yù)算,大公司不會(huì)考慮節(jié)約成本的方式,而采用的框架不夠成熟,周邊生態(tài)不夠完善。
然而,并不是顫振不能做到這一點(diǎn)。它的優(yōu)勢(shì)在小公司是顯而易見(jiàn)的,因?yàn)橐粋€(gè)人可以同時(shí)開(kāi)發(fā)多個(gè)終端應(yīng)用程序,這對(duì)于小公司的老板來(lái)說(shuō)是非常理想的。首先,我們可以少招人,節(jié)省成本,把產(chǎn)品更快推向市場(chǎng)。
最后,這取決于主題的選擇。我建議kotlin作為日常生活中的主要開(kāi)發(fā)語(yǔ)言,可以花時(shí)間玩flutter,必要時(shí)可以自由切換。