flutter在2019年會有怎樣的表現?

Flutter的趨勢

  • 在移動端,受成本和效率的驅使,跨平臺一站式開發慢慢成爲一個趨勢。從Hybird,RN,WEEX,Flutter,到各類小程序或快應用的大量涌現,雖然不少跨平臺方案都有各自的優缺點,目前尚未天衣無縫的終極方案,但這已經是將來移動端開發不可逆轉的一大方向。而Google推出並開源的移動應用開發框架Flutter,更是其中的明星。
  • 筆者從自身在作Flutter相關的分享中,特別強烈的感覺是,有很是很是多的Native技術棧的同窗在學習和使用Flutter,有很是多的前端技術棧的同窗在時刻關注Flutter的hummingbird和desktop-embedding的進展。尤爲自Flutter1.0 發佈後,Flutter受到了業界更多的關注和期待。

跨平臺解決方案比較

  • 目前幾個主流的跨平臺解決方案:
  1. 基於瀏覽器技術的Hybird
  2. 基於橋接Native組件,如RN、WEEX
  3. 基於底層統一渲染,如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進行比較的話前端

  • 基於核心UI表達層向上,這一層會更接近前端的體系,以React生態爲參照物,主要的幾部分java

    • 路由體系android

      • 一種面向以Flutter爲主的應用,它的路由以Flutter爲主,Native的路由部分每每以簡易橋接的形態存在。
      • 一種面向混合技術棧爲主的應用,它的路由以Native爲主,Flutter爲輔。
    • 狀態管理體系 | 應用框架redux

      • 基本上在React生態下有的狀態管理,Flutter也有,同時有一些是Flutter獨有的。
      • 開源的表明有:flutter_redux, google的BLoc,scoped_model,及閒魚的fish-redux,它在真實的複雜場景下獲得了很是好的驗證。
    • UI庫體系小程序

      • 目前已有很多UI庫,包含常見的組件。
  • 基於核心UI表達層向下,這一層會更接近Native的體系,以Native生態爲參照物,主要的幾部分瀏覽器

    • 核心的一些基礎中間件,如網絡,圖片,音視頻,存儲,埋點,監控等。安全

      • 目前和Native相比仍是有很是大的差距。因此也致使了目前大部分這些問題的解決方案,都趨向於橋接的形態。經過複用Native能力來短時間補齊Flutter能力不足的。但它不必定是將來的最佳的方案。
    • 一些重量級的基礎組件,如WebView,MapView等。網絡

      • 目前已經能經過PlatformView的形式,獲得能力拓展。可是它有使用的侷限性和性能上的損失。

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相比其餘的跨平臺方案中最吸引人的部分。


原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索