flutter在2019年会有怎样的表现?
Flutter的趨勢(shì)
- 在移動(dòng)端,受成本和效率的驅(qū)使,跨平臺(tái)一站式開發(fā)慢慢成為一個(gè)趨勢(shì)。從Hybird,RN,WEEX,Flutter,到各種小程序或快應(yīng)用的大量涌現(xiàn),雖然很多跨平臺(tái)方案都有各自的優(yōu)缺點(diǎn),目前還沒有完美無缺的終極方案,但這已是未來移動(dòng)端開發(fā)不可逆轉(zhuǎn)的一大方向。而Google推出并開源的移動(dòng)應(yīng)用開發(fā)框架Flutter,更是其中的明星。
- 筆者從自身在做Flutter相關(guān)的分享中,特別強(qiáng)烈的感受是,有非常非常多的Native技術(shù)棧的同學(xué)在學(xué)習(xí)和使用Flutter,有非常多的前端技術(shù)棧的同學(xué)在時(shí)刻關(guān)注Flutter的hummingbird和desktop-embedding的進(jìn)展。尤其自Flutter1.0 發(fā)布后,Flutter受到了業(yè)界更多的關(guān)注和期待。
跨平臺(tái)解決方案比較
- 目前幾個(gè)主流的跨平臺(tái)解決方案:
- 它們有各種的優(yōu)缺點(diǎn),但瀏覽器技術(shù)無疑是其中的歷史最長、標(biāo)準(zhǔn)最完善、用戶最多、生態(tài)最豐富的。RN、WEEX也可以歸類為javascript生態(tài)的一個(gè)小分支。
而Flutter走的是和前兩者截然不同的路線,它是一個(gè)新興的挑戰(zhàn)者,通過底層統(tǒng)一渲染,得到高度一致的跨端效果;通過引入dart,得到AOT的接近原生的性能,和JIT的快速開發(fā)體驗(yàn);通過上層完善的組件體系(material design & cupertino),得到高保真的UI體驗(yàn)。但它也并非盡善盡美。同時(shí)基于底層統(tǒng)一渲染的跨平臺(tái)方案有很多,在移動(dòng)端有實(shí)際應(yīng)用的如QT、cocos2d等。 - 對(duì)比Flutter和QT,最大的區(qū)別在語言和背后團(tuán)隊(duì)。
- 語言:Flutter選擇了Dart,QT是C++。Dart相比C++,對(duì)開發(fā)者來說無疑于相比騎自行車和開飛機(jī)的區(qū)別,Dart更容易編寫,除此以外,Dart還擁有AOT和JIT兩種模式、類型安全、快速內(nèi)存分配等等特點(diǎn),確實(shí)如Flutter團(tuán)隊(duì)所述,同時(shí)擁有一兩條這些優(yōu)點(diǎn)的語言不少,但是將所有這些優(yōu)點(diǎn)集于一身的,只有Dart。
- 背后團(tuán)隊(duì):Flutter的背后是Google,QT的背后是TrollTech,從社區(qū)影響力和號(hào)召力而言不可同日而語。
- 但同時(shí)也必須要認(rèn)識(shí)到的是通過底層統(tǒng)一渲染的跨平臺(tái)方案,也有它天然的劣勢(shì)。它很難復(fù)用系統(tǒng)天然提供的組件。在擺脫對(duì)操作系統(tǒng)的依賴和復(fù)用操作系統(tǒng)的能力上,要考慮如何達(dá)到了一個(gè)最佳的平衡。
Flutter的生態(tài)
如果拿Flutter生態(tài)同React和Native進(jìn)行比較的話
-
基于核心UI表達(dá)層向上,這一層會(huì)更接近前端的體系,以React生態(tài)為參照物,主要的幾部分
-
路由體系
- 一種面向以Flutter為主的應(yīng)用,它的路由以Flutter為主,Native的路由部分往往以簡(jiǎn)易橋接的形態(tài)存在。
- 一種面向混合技術(shù)棧為主的應(yīng)用,它的路由以Native為主,Flutter為輔。
-
狀態(tài)管理體系 | 應(yīng)用框架
- 基本上在React生態(tài)下有的狀態(tài)管理,Flutter也有,同時(shí)有一些是Flutter獨(dú)有的。
- 開源的代表有:flutter_redux, google的BLoc,scoped_model,及閑魚的fish-redux,它在真實(shí)的復(fù)雜場(chǎng)景下得到了非常好的驗(yàn)證。
-
UI庫體系
- 目前已有不少UI庫,包含常見的組件。
-
-
基于核心UI表達(dá)層向下,這一層會(huì)更接近Native的體系,以Native生態(tài)為參照物,主要的幾部分
-
核心的一些基礎(chǔ)中間件,如網(wǎng)絡(luò),圖片,音視頻,存儲(chǔ),埋點(diǎn),監(jiān)控等。
- 目前和Native相比還是有非常大的差距。所以也導(dǎo)致了目前大部分這些問題的解決方案,都趨向于橋接的形態(tài)。通過復(fù)用Native能力來短期補(bǔ)齊Flutter能力不足的。但它不一定是未來的最佳的方案。
-
一些重量級(jí)的基礎(chǔ)組件,如WebView,MapView等。
- 目前已經(jīng)能通過PlatformView的形式,得到能力拓展。但是它有使用的局限性和性能上的損失。
-
Flutter今年幾個(gè)重要的突破點(diǎn)
-
Code-Push
- 在當(dāng)下國內(nèi)應(yīng)用生態(tài)環(huán)境,熱修復(fù)或者熱部署能力在很多公司和團(tuán)隊(duì)做技術(shù)選型中,往往是其中非常重要的一個(gè)選項(xiàng)。如果有Google官方推出,不管是hotfix,還是dynamic-boundle都將極大的推動(dòng)Flutter在國內(nèi)的發(fā)展。
- 而基于dart語言的特性判斷,在Flutter上做code-push理論上會(huì)比目前任何Native的code-push方案有更強(qiáng)的能力。閑魚團(tuán)隊(duì)一直和Flutter團(tuán)隊(duì)就這方便保持緊密的聯(lián)系,在之前的驗(yàn)證中,目前在android端是可以支持的,但還留有一些瑕疵。
-
Humming-Bird
- 在跨平臺(tái)之外,還有一層更高級(jí)別的訴求,多應(yīng)用投放,打破應(yīng)用之間的孤島壁壘,實(shí)現(xiàn)更多的商業(yè)價(jià)值。而要完成多應(yīng)用的投放,首選的是基于瀏覽器的方案。Humming-Bird方案為這樣的設(shè)想,提供了可能。
- 同時(shí)Humming-Bird也將大大擴(kuò)張了Flutter的邊界,吸引更多的開發(fā)者和廠商的加入,同時(shí)讓面向終端的全棧解決方案成為可能。Dart語言也有可能成為javascript生態(tài)的更好的補(bǔ)充和演進(jìn)。
Flutter面向未來
? ? ?基礎(chǔ)架構(gòu)設(shè)計(jì)決定了一個(gè)軟件的發(fā)展上限,它帶來了更多的想象力。使用Flutter和Dart,既是Google為擺脫和Oracle糾纏多年的“Java 侵權(quán)案”提前下的一顆棋,也是Google為下一代操作系統(tǒng)Fusion下的一顆棋,是即Google通過chromium項(xiàng)目漸進(jìn)的統(tǒng)一瀏覽器領(lǐng)域,著眼于更多的終端,為了一個(gè)更大終端生態(tài)的大一統(tǒng)做準(zhǔn)備。這讓Flutter和Dart充滿了更高層次的可能。如果沒有這些可能,Flutter的生命無疑是會(huì)短暫的,因?yàn)樗€未能建立被廣泛被認(rèn)可的標(biāo)準(zhǔn),就像我們終端里走過的那么多的技術(shù)一樣,都是有限的解決了當(dāng)下的訴求,但隨著終端的更替,操作系統(tǒng)的演進(jìn),慢慢變成了明日黃花。而正是這些更多的可能,是Flutter持續(xù)演進(jìn)的源泉,是Flutter相比其他的跨平臺(tái)方案中最吸引人的部分。
原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的flutter在2019年会有怎样的表现?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里小程序云应用上线了,有哪些看点?
- 下一篇: 蚂蚁金服金融级容器引擎实践之路