Flutter的趨勢
- 在移動端,受成本和效率的驅使,跨平臺一站式開發慢慢成爲一個趨勢。從Hybird,RN,WEEX,Flutter,到各類小程序或快應用的大量涌現,雖然不少跨平臺方案都有各自的優缺點,目前尚未天衣無縫的終極方案,但這已經是將來移動端開發不可逆轉的一大方向。而Google推出並開源的移動應用開發框架Flutter,更是其中的明星。
- 筆者從自身在作Flutter相關的分享中,特別強烈的感覺是,有很是很是多的Native技術棧的同窗在學習和使用Flutter,有很是多的前端技術棧的同窗在時刻關注Flutter的hummingbird和desktop-embedding的進展。尤爲自Flutter1.0 發佈後,Flutter受到了業界更多的關注和期待。
跨平臺解決方案比較
- 基於瀏覽器技術的Hybird
- 基於橋接Native組件,如RN、WEEX
- 基於底層統一渲染,如Flutter
- 它們有各類的優缺點,但瀏覽器技術無疑是其中的歷史最長、標準最完善、用戶最多、生態最豐富的。RN、WEEX也能夠歸類爲javascript生態的一個小分支。
而Flutter走的是和前二者大相徑庭的路線,它是一個新興的挑戰者,經過底層統一渲染,獲得高度一致的跨端效果;經過引入dart,獲得AOT的接近原生的性能,和JIT的快速開發體驗;經過上層完善的組件體系(material design & cupertino),獲得高保真的UI體驗。但它也並不是盡善盡美。同時基於底層統一渲染的跨平臺方案有不少,在移動端有實際應用的如QT、cocos2d等。javascript
- 對比Flutter和QT,最大的區別在語言和背後團隊。
- 語言:Flutter選擇了Dart,QT是C++。Dart相比C++,對開發者來講無疑於相比騎自行車和開飛機的區別,Dart更容易編寫,除此之外,Dart還擁有AOT和JIT兩種模式、類型安全、快速內存分配等等特色,確實如Flutter團隊所述,同時擁有一兩條這些優勢的語言很多,可是將全部這些優勢集於一身的,只有Dart。
- 背後團隊:Flutter的背後是Google,QT的背後是TrollTech,從社區影響力和號召力而言不可同日而語。
- 但同時也必需要認識到的是經過底層統一渲染的跨平臺方案,也有它自然的劣勢。它很難複用系統自然提供的組件。在擺脫對操做系統的依賴和複用操做系統的能力上,要考慮如何達到了一個最佳的平衡。
Flutter的生態
若是拿Flutter生態同React和Native進行比較的話前端
Flutter今年幾個重要的突破點
-
Code-Push架構
- 在當下國內應用生態環境,熱修復或者熱部署能力在不少公司和團隊作技術選型中,每每是其中很是重要的一個選項。若是有Google官方推出,不論是hotfix,仍是dynamic-boundle都將極大的推進Flutter在國內的發展。
- 而基於dart語言的特性判斷,在Flutter上作code-push理論上會比目前任何Native的code-push方案有更強的能力。閒魚團隊一直和Flutter團隊就這方便保持緊密的聯繫,在以前的驗證中,目前在android端是能夠支持的,但還留有一些瑕疵。
-
Humming-Bird
- 在跨平臺以外,還有一層更高級別的訴求,多應用投放,打破應用之間的孤島壁壘,實現更多的商業價值。而要完成多應用的投放,首選的是基於瀏覽器的方案。Humming-Bird方案爲這樣的設想,提供了可能。
- 同時Humming-Bird也將大大擴張了Flutter的邊界,吸引更多的開發者和廠商的加入,同時讓面向終端的全棧解決方案成爲可能。Dart語言也有可能成爲javascript生態的更好的補充和演進。
Flutter面向將來
基礎架構設計決定了一個軟件的發展上限,它帶來了更多的想象力。使用Flutter和Dart,既是Google爲擺脫和Oracle糾纏多年的「Java 侵權案」提早下的一顆棋,也是Google爲下一代操做系統Fusion下的一顆棋,是即Google經過chromium項目漸進的統一瀏覽器領域,着眼於更多的終端,爲了一個更大終端生態的大一統作準備。這讓Flutter和Dart充滿了更高層次的可能。若是沒有這些可能,Flutter的生命無疑是會短暫的,由於它還未能創建被普遍被承認的標準,就像咱們終端裏走過的那麼多的技術同樣,都是有限的解決了當下的訴求,但隨着終端的更替,操做系統的演進,慢慢變成了明日黃花。而正是這些更多的可能,是Flutter持續演進的源泉,是Flutter相比其餘的跨平臺方案中最吸引人的部分。
原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。