Google 的野心,全平臺支持的 Flutter!

一. 序

在 Google I/O 2019 上,Dart 團隊宣佈推出新的 Flutter 穩定版本 1.5,這是 Flutter 迄今爲止最大的一次版本發佈。html

伴隨着 Flutter 1.5 的發佈,同期也宣佈發佈 Flutter for Web 的 Preview 版本,正式開啓了 Flutter 的全平臺 UI 框架之路。web

早在年初發布的 Flutter 2019 Roadmap 中,就有提到,會在今年支持移動設備以外的平臺,對 Web 的支持,算是完成了一個新的里程碑吧。面試

二. Flutter for Web

Flutter 之因此可以在移動平臺上運行,主要是依賴的 Flutter Engine,就是 Flutter 所依賴的運行環境。這就致使在移動平臺,只要你使用了 Flutter,哪怕只用混合開發的模式寫了一個頁面,這也將爲你的 App 增大大約 4MB 的體積。編程

而 Flutter for Web,徹底是一種全新的模式,它能夠將 Dart 編寫的現有 Flutter 代碼,編譯成可嵌入瀏覽器並部署到任何 Web 服務器的代碼。瀏覽器

編譯後的代碼,徹底是基於 HTML、CSS 和 JavaScript 這些標準的 Web 技術,因此它也不須要任何瀏覽器插件的支持。性能優化

早期微軟的 Silverlight 和 Adobe 的 Flash 都證實了,一切須要插件才能支持的 Web 應用,都是紙老虎,最終都會被基礎的 HTML 技術所替代。服務器

我想這也是 Flutter for Web 選擇這種支持方式的一個考量因素。架構

添加 Web 支持,涉及在標準 API 之上,實現 Flutter 的核心繪圖層,結合使用 DOM、Canvas 和 CSS,Flutter for Web 可以實如今現代瀏覽器中提供便攜的、高質量和高性能的用戶體驗。框架

Flutter for Web 很大程度上,歸功於 Chrome、Firefox 和 Safari 等現代瀏覽器的快速發展,這些瀏覽器提供了基礎的硬件加速的圖形、動畫和文本以及 JavaScript 的快速執行。svg

隨着 Flutter for Web 的發佈,Flutter 正式成爲一個全平臺的 UI 框架。

Flutter 最初的設想,也並非想做爲一個 HTML 的替代品,而是想基於 Flutter 可以快速構建出全平臺的所支持的,圖形豐富、交互流程的應用。

在 Google I/O 上,也展現了最近刷屏的 KENKEN 益智遊戲(文末有地址),該遊戲在 Android、iOS、Web、Mac 和 Chrome 上,運行的都是相同的代碼。

Flutter for Web 還只是一個 Preview 版本,還有不少不足和被限制的地方。

一些限制:

  1. Flutter_web 的插件還不完善,暫時只提供了最基礎的dart:htmldart:jsdart:svgdart:indexed_db,能夠經過他們訪問絕大多數瀏覽器的 API。
  2. 並不是全部的 Flutter 都在 Flutter_web 上實現了。
  3. Flutter_web 編譯還很慢。
  4. 在桌面瀏覽器上運行,還有一些不足,大部分是基於移動應用的操做特性,而沒有對桌面系統的操做習慣進行特殊的優化。
  5. 開發流程目前僅支持 Chrome。

更多細節,能夠直接上 Github 上查看。

三. 小結

自此 Flutter 就再也不是一個單純的移動框架,而是一個多平臺框架,經過它,能夠快速的構建應用,更快的觸達用戶。

坦率的講,Flutter 這一年的發展以及推廣效果都是驚人的,據公開的消息來看,很多一線大廠已經在一些生產項目上,嘗試使用 Flutter,雖然嘗試的大多都並非主力項目,但這背後必定也少不了 Google 的推廣,Google 自己對 Flutter 的指望也很大,短時間應該不會涼。

不過框架這個東西,有興趣看看就行了,畢竟鐵打的基礎,流水的 API,不要花太多的精力沉迷在框架中,把編程的基礎技術學好纔是正道。若是真到了公司想嘗試 Flutter 的地步,專門花一週兩週突擊一下,確定能上手。

資料分享歡迎Android工程師朋友們加入安卓開發技術進階互助:856328774免費提供安卓開發架構的資料(包括Fultter、高級UI、性能優化、架構師課程、 NDK、Kotlin、混合式開發(ReactNative+Weex)和一線互聯網公司關於Android面試的題目彙總。

合理利用本身每一分每一秒的時間來學習提高本身,不要再用"沒有時間「來掩飾本身思想上的懶惰!趁年輕,使勁拼,給將來的本身一個交代!

相關文章
相關標籤/搜索