正式成為全平臺的UI框架——Flutter 1.5

引言

我最近一直都聽說Flutter多麼的神奇,所以決定嘗試一下這個新東西,首先我們就得了解下什麼是Flutter,對於我來說,Flutter是一個全新的東西,有很多細節都不知曉,而且在Google I/O 2019上,谷歌發佈了Flutter For Web的第一個技術預覽版,這也意味著Flutter的全平臺之路已經正式開啟,可以說對Web的支持也是Flutter的一個重要里程碑。

Flutter簡單介紹

很長一段時間,Flutter團隊的使命是為iOS和Android開發移動應用程序的最佳框架。他們認為移動開發已經成熟,但是仍需要改進,因為今天的開發人員不得不選擇在兩個平臺上構建相同的應用程序兩次,或者在使用跨平臺框架時做出妥協。Flutter正式基於這樣的考慮,打造了能夠在不同的平臺上使用單個代碼庫提供美觀,快速,量身定製的體驗。Flutter的使命是打造全平臺支持的最佳框架,以提供最美妙的開發體驗。

適用於所有屏幕的便攜式UI框架

正式成為全平臺的UI框架——Flutter 1.5

Flutter以單一的代碼庫為各個平臺提供美觀和量身定製的體驗,由於Flutter For Web的第一個技術預覽版的發佈,特別是對於創業型公司,如果能有一套代碼庫就能完成所有平臺的開發無疑是降低了開發的複雜度和開發成本。

Flutter For Web

Flutter 能夠在移動平臺運行時依賴了Flutter Engine,但是Flutter for web不同,它很大程度上需要歸功於像Chrome、FireFox、Safari等網絡瀏覽器的快速發展,這些瀏覽器普遍提供了硬件圖形加速,動畫和文本以及JavaScript快速運行環境,因此Flutter for web是一種全新的模式,它可以將現有的Flutter代碼編譯成可嵌入到瀏覽器和任何Web服務器的代碼,這些代碼完全是基於現代HTML、CSS、Javascript標準的Web技術,也不需要任何的瀏覽器插件支持,這意味著不像Flash之類的需要插件支持的Web應用,最終都會被原生的所替代,這也是Flutter考慮到的一個點,但由於還在開發階段,Flutter還存在許多不足和限制:

  • 目前開發流程支支持Chrome
  • 目前Flutter for web更像是移動端的Flutter,對桌面端的優化還不夠好
  • 編譯速度還比較慢
正式成為全平臺的UI框架——Flutter 1.5

在早期的開發階段,Flutter設想了很多有價值的場景,例如:

  • 使用Flutter構建的連接的漸進式Web應用程序。對Flutter的Web支持使現有的基於移動的應用程序可以打包為PWA,以覆蓋更廣泛的設備,或為現有應用程序提供配套的Web體驗。
  • 嵌入式互動內容。Flutter為創建豐富的,以數據為中心的組件提供了一個強大的環境,可以輕鬆地在現有網頁中託管。無論是數據可視化,還是嵌入式圖表等,Flutter都可以為嵌入式Web內容提供高效的開發方式。
  • 在Flutter移動應用中嵌入動態內容。在現有移動應用程序內提供動態內容更新的既定方法是使用Web視圖控件,其可以動態地加載和顯示信息。Flutter支持現在提供統一的Web和移動內容環境,可以在線部署內容或嵌入應用程序而無需重寫代碼。

關於平臺(非Web)

Flutter是一個非常新的,但是一個很有前途的平臺,已經吸引了某些大公司的注意力。它與開發Web應用程序相比具有簡單性,並且與原生應用程序相比具有速度。

通過使用以下幾種技術實現Flutter的高性能和高效率:

  • 與許多其他流行的移動平臺不同,Flutter 不以任何方式使用JavaScript。Dart是編程語言。它編譯為二進制代碼,這就是它運行Objective-C,Swift,Java或Kotlin的原生性能的原因。
  • Flutter 不使用本機UI組件。起初聽起來可能很尷尬。但是,因為組件是在Flutter本身中實現的,所以視圖和代碼之間沒有通信層。因此,遊戲的智能手機圖形速度最快。所以按鈕,文本,媒體元素,背景都是由Flutter的圖形引擎繪製的。順便說一句,應該提到Flutter“Hello,World”應用程序包非常小:iOS≈2.5Mb,Android≈4Mb。
  • Flutter 使用一種聲明方法,受React Web框架的啟發,基於小部件(在Web世界中命名為“組件”)構建其UI。為了從窗口小部件中獲得更多,它們僅在必要時呈現,通常是在它們的狀態發生變化時(就像Virtual DOM為我們所做的那樣)。
  • 除了上述所有內容之外,該框架還集成了熱重新加載,這對於Web來說是典型的,但在本機平臺上仍然缺失。這允許Flutter框架自動重建窗口小部件樹,使您可以快速查看更改的效果。

關於Dart

Dart是一種編程語言,需要用它來開發Flutter中的應用程序。如果你有使用過Java或JavaScript的經驗,那麼學習它並不難。它是一種適用於萬維網的開放源代碼編程語言,由Google主導開發,於2011年10月公開。它的開發團隊由Google Chrome瀏覽器V8引擎團隊的領導者拉爾斯·巴克主持,目標在於成為下一代結構化Web開發語言。類似JavaScript,Dart也是一種面嚮對象語言,但是它採用基於類編程。它只允許單一繼承,語法風格接近C語言。

總結一下

Flutter的出現打破了傳統的開發模式,雖然我們知道現在的技術框架是層出不窮,也因此感覺自己學不動了,其實我們應該放寬了自己的思維,新事物的出現必然是為了解決或改進當前環境下仍然存在的問題或缺點。因此,我覺得Flutter依然值得嘗試,現階段不一定需要學習的多麼細,我們可以瞭解一下它的模式,它的思想,以至於將來假如需要用到它,也將得心應手!

正式成為全平臺的UI框架——Flutter 1.5


分享到:


相關文章: