谷歌發(fā)布的新的移動UI框架—Flutter已經(jīng)成功落地,這是一個開源的移動應(yīng)用程序SDK,具有自己的框架,小部件和工具。Google希望Flutter能夠在Android、iOS甚至是Google Fuschia等所有平臺上構(gòu)建和部署“漂亮的移動應(yīng)用”,從而使開發(fā)人員更輕松,更有效率。
什么是Flutter?
雖然Flutter還處于開發(fā)階段,但有很多功能讓人印象深刻:
1.重新優(yōu)化,移動優(yōu)先、支持文字的2D渲染引擎
2.Functional-reactive框架
3.豐富的Android和iOS小部件
4.用于單元和集成測試的API
5.Interop和插件API連接到系統(tǒng)和第三方SDK
6.用于在Windows,Linux和Mac上運行測試的Headless test運行器
7.用于創(chuàng)建,構(gòu)建,測試和編譯應(yīng)用程序的命令行工具
現(xiàn)代優(yōu)雅
到現(xiàn)在,F(xiàn)lutter的創(chuàng)建已經(jīng)經(jīng)歷了一段時間,幾年前,F(xiàn)lutter的背后想法是來自一群Google工程師的好奇心。網(wǎng)站上是這么描述的:
早在2014年,谷歌的一些工程師向后思考:現(xiàn)代的mobi-first渲染引擎是什么樣的?不用擔心后向兼容性,桌面問題或遺留的限制,于是他們開始編寫Sky,并進行了一些初步的性能測試,之后他們決定將這個實驗發(fā)展成為一個真正的項目,并將其重命名為Flutter。在2015年,Google內(nèi)部的團隊開始在Flutter上構(gòu)建應(yīng)用程序,于是flutter.io網(wǎng)站誕生了。
Flutter的指導原則很簡單。他們專注于:
控制 - 開發(fā)人員應(yīng)該訪問和控制系統(tǒng)的所有層。
性能 - 用戶應(yīng)該擁有完美的流暢,響應(yīng)迅速的應(yīng)用程序。
保真 - 每個人都應(yīng)該有精準,美觀,愉快的移動應(yīng)用體驗。
聽起來很簡單,對吧?但是他們是怎么做的呢?
React + Dart = Flutter
Flutter是React和Dart最好的混合物。Dart是一種現(xiàn)代化的靜態(tài)類型的編程語言,可以編譯成JavaScript在手機上運行。Dart是一個優(yōu)雅的全堆棧語言,所以Google以自己的語言發(fā)布移動SDK并不奇怪。
那么,F(xiàn)lutter從React那里有獲得了什么呢?Flutter的架構(gòu)很明顯的是受到了React的啟發(fā),仍然運行在“write once, run anywhere”模式中。此外,React沒有自己內(nèi)置的UI小部件庫,而Flutter在這一方面就是一個創(chuàng)新。
Flutter還做了一些完全不同的事情,它不會將JavaScript或HTML應(yīng)用程序作為原生移動應(yīng)用程序運行,也不會為Android和iOS創(chuàng)建單獨的原生應(yīng)用程序。據(jù)David Ford表示:
Flutter是從頭開始重新發(fā)明自己的UI組件庫。這些組件是使用平臺的低級圖形繪制的。因此,F(xiàn)lutter的UI組件不是html元素,也不是原生的Android / iOS小部件,他們是Flutter小部件。他們具備可插拔的外觀,所以他們可以看起來像iOS原生部件或Android原生部件。
此外,F(xiàn)lutter是不同的,它實現(xiàn)了Dart中的大部分系統(tǒng),UI的編碼方式與應(yīng)用程序的其余部分相同,保持簡單,降低了錯誤的機會。