久久久精品波多野结衣|久久人妻av中文字幕|2019中文字幕久久幕|亚洲国产精品成人无码区|欧美巨大精品欧美一区二区|91精品综合久久久久按摩|久久天天躁狠狠躁夜夜婷动漫|无码AV天堂一区二区三区蜜臀

uniapp與flutter,跨平臺解決方案你該如何選擇

發(fā)表日期:2021-03-17 00:00:00          來源:銘奧科技          閱讀量:12次

uniapp與flutter都是為了解決跨平臺問題的框架

uniapp是從h5 app到小程序一步步發(fā)展過來的,也就是走的html的路線。

html從最早的網(wǎng)頁套殼一步步發(fā)展至今,為了解決早期套殼的體驗問題,我們嘗試用js代碼調(diào)用原生接口,與原生進行交互,出現(xiàn)了一系列如React Native,Cordova,Weex,F(xiàn)ramework7,MUI之類的框架,這些框架的出現(xiàn)進一步豐富h5應(yīng)用的功能。但是這些技術(shù)要求很高的優(yōu)化技巧,要走很多坑,在ios的體驗尚可,但是Android上由于更新維護問題,js引擎差別很大,早期Android的js引擎極差,這些框架使用體驗都不好,當(dāng)然也有硬件方面的原因。而且Android上webview存在性能瓶頸,復(fù)雜應(yīng)用不做預(yù)加載的情況下使用體驗真的不好。后來為了使體驗達到h5所能做的極致,小程序出現(xiàn)了,為了性能,屏蔽了dom,規(guī)定了獨特的規(guī)范,按照這些規(guī)范去寫,編譯時框架提前給你優(yōu)化好,事實證明這樣做確實可以提高h5應(yīng)用的使用體驗。

uniapp延續(xù)了小程序的思路,和vue結(jié)合,屏蔽dom,提前優(yōu)化,確實很好,也做到了跨平臺,這是一款極為優(yōu)秀的跨各種小程序的解決方案,與它自家的h5+結(jié)合也是一個還算不錯的h5+ app的前端框架。但是uniapp的定位中有一個極大的問題,就是小程序與h5 app之間的距離太大了,強跨的體驗真是極差,得不償失。舉個栗子,3d渲染,多人視頻,nfc寫卡,這種小程序完全做不到,當(dāng)然uniapp也可以調(diào)h5+ runtime,但是一個復(fù)雜的移動端應(yīng)用可能會加各種各樣的東西,你完全預(yù)料不到可能出現(xiàn)什么需求,并且這些需求越來越多的情況下,小程序端與移動端分開維護是必然的結(jié)果,強行結(jié)合只能是結(jié)構(gòu)混亂,難以維護。那么如果分開維護,uniapp與前面提到的那些框架并沒有明顯優(yōu)勢。

那么接著說flutter,flutter與h5技術(shù)棧的思路完全不同,JSCore,V8再怎樣優(yōu)秀,也始終解決不了JavaScript本身語法缺陷和運行在瀏覽器的事實。

===========================

這里我之前寫flutter用dart做了一個渲染引擎,有人言辭激烈的抨擊了我的錯誤,后來我仔細看了一下資料。

官網(wǎng)上是這樣說的

Flutter is built with C, C++, Dart, and Skia (a 2D rendering engine).See this architecture diagram for abetter picture of the main components.

確實,dart只是用來組織各種控件的一個工具,這個圖形渲染是用了這個叫Skia的圖形庫

Skia is an open source 2D graphics library which provides common APIs that work across a variety of hardware and software platforms.

這個Skia,Google旗下,開源2D圖形庫,提供了多種軟硬件平臺的通用API。

確實是我的錯,沒調(diào)查清楚,但是這個方式還是令我覺得,很難受。

=================================

也就是說flutter和cocos,unity3d一樣,完全可以用來寫游戲,突破60fps,而且自己渲染,大大減少了與原生的通信次數(shù),并且使用 Platform Channels 來跟系統(tǒng)通信大大豐富了一些偏門功能的應(yīng)用,去組件庫看了下tcp直連mqtt都支持了,剛好畢設(shè)會用到,開心。

所以如果你需要跨平臺,技術(shù)選型時遇到問題

1.看需求

如果你的應(yīng)用需求足夠簡單,像小程序之類的完全可以做到,選uniapp。因為說真的,像點單這種功能,誰沒事愿意專門裝個肯打雞,coco之類在手機上,反正我去點單的時候,能用小程序我就不會再裝app了,如果有人愿意裝app,稍微改改順便出個app版看著比較好看。

如果你的需求復(fù)雜,必然要分開維護,還是和之前一樣,uniapp是一個極好的跨各種小程序的解決方案,一次編譯,微信小程序,支付寶小程序,百度小程序,多端運行。那app端你可以再選擇h5或者flutter。

如果你需要適配橫屏,建議用flutter,橫屏的交互加上material design的加持,這樣和桌面端就沒有太大區(qū)別了,目前flutter已經(jīng)可以編譯運行在Windows和linux上,雖然目前還很不完善,但是Google的野心和背書能力讓我覺得flutter的野心不止于此。未來能附贈一套桌面端,意外之喜。


2.學(xué)習(xí)成本

flutter的學(xué)習(xí)成本主要在Dart,而uniapp主要在vue。說真的,我之前做Android和JavaWeb的,Java轉(zhuǎn)Dart真的沒有壓力,有人說flutter嵌套太多,安卓xml布局嵌套不多嗎,公司現(xiàn)在維護的ERP系統(tǒng)jQuery寫的跟使一樣,各種+ " append。

而我一個傳統(tǒng)Java使用者剛開始遇到vue真的難受了好一陣子,這個this的真是vue里令我最難受的,使一樣。推薦周圍同學(xué)學(xué)uniapp,學(xué)過C++,Java的普遍反映也是vue看不懂。你們再也不是像jQuery一樣好單純好不做作的前端了。

總之前端的uniapp學(xué)習(xí)成本低,學(xué)過后端Java,C++的,flutter上手成本低。


3.社區(qū)

剛開始Google要出Fuchsia OS的時候我還嗤之以鼻,真當(dāng)程序狗們都會乖乖聽你話嗎,那win phone墳頭草都老高了。沒想到啊,你們早在蘋果罵安卓垃圾的時候就想著今天了吧。

Google在安卓界的背書能力感覺跟Spring在JavaWeb界的背書能力不逞多讓,只要Android和Fuchsia不死,F(xiàn)lutter應(yīng)該不會有太大問題,而且Flutter的社區(qū)是真的真的真的很活躍啊,github上問題的解決速度和出視頻的速度真是令我嘆為觀止。

相比之下DCloud出MUI到現(xiàn)在不慍不火就讓我不禁對uniapp有些擔(dān)心,雖然微信,支付寶在后面背書,希望一群國內(nèi)一線大廠們能給力點吧。而且我在uniapp提的問題一個多月了,無人問津

【報Bug】使用小程序組件,當(dāng)參數(shù)為函數(shù)時,傳不過去 - DCloud問答

希望你們珍惜你們的銀牌贊助者。而且出視頻的速度一言難盡,看B站居然沒有,講道理一個好的教學(xué)視頻真的很重要,干啃API在學(xué)習(xí)時真是費力不討好的事情,你學(xué)習(xí)的思路和文檔的思路是不一樣的。不過uniapp的QQ群倒是很火,不管怎樣,一個國產(chǎn)的優(yōu)秀產(chǎn)品,希望你們能有一個好的未來。


返回頂部

免費電話報價:13699511075

免費獲取報價

運營服務(wù)

微信運營 網(wǎng)站運營

咨詢熱線

13699511075

ADD/ 江西省南昌市南昌縣小藍經(jīng)濟技術(shù)開發(fā)區(qū)金沙三路1888號

EMAIL/ 865427615@qq.com

備案號:贛ICP備19013482號-1

贛公網(wǎng)安備 36010802000321號

成都市| 凉城县| 乳山市| 南宫市| 成都市| 常山县| 莆田市| 前郭尔| 勐海县| 湘潭县| 辽宁省| 贞丰县| 赣榆县| 汕头市| 富川| 海盐县| 日照市| 南汇区| 平乐县| 江孜县| 西丰县| 望江县| 河北省| 库尔勒市| 安吉县| 萨迦县| 高邮市| 祥云县| 河源市| 朝阳县| 汕尾市| 武邑县| 瑞安市| 达尔| 衡阳县| 新巴尔虎右旗| 鄂托克旗| 靖安县| 林州市| 合肥市| 怀远县|