Flutter簡介

Flutter特色

  1. Google 出品
  2. 使用Dart語言開發
  3. 支持跨平臺,高性能,
  4. 使用自繪渲染引擎

特色詳解

1.高性能

2.快速內存分配

Flutter框架使用函數式流,這使得它在很大程度上依賴於底層的內存分配器。所以,擁有一個可以有效地處理瑣碎任務的內存分配器將顯得十分重要,在缺少此功能的語言中,Flutter將沒法有效地工做。固然Chrome V8的JavaScript引擎在內存分配上也已經作的很好,事實上Dart開發團隊的不少成員都是來自Chrome團隊的,因此在內存分配上Dart並不能做爲超越JavaScript的優點,而對於Flutter來講,它須要這樣的特性,而Dart也正好知足而已。
前端

3.類型安全

因爲Dart是類型安全的語言,支持靜態類型檢測,因此能夠在編譯前發現一些類型的錯誤,並排除潛在問題,這一點對於前端開發者來講可能會更具備吸引力。與之不一樣的,JavaScript是一個弱類型語言,也所以前端社區出現了不少給JavaScript代碼添加靜態類型檢測的擴展語言和工具,如:微軟的TypeScript以及Facebook的Flow。相比之下,Dart自己就支持靜態類型,這是它的一個重要優點
安全

Flutter架構

flutter-framework.png

Flutter Framework

這是一個純 Dart實現的 SDK,它實現了一套基礎庫,自底向上,咱們來簡單介紹一下:架構

  • 底下兩層(Foundation和Animation、Painting、Gestures)在Google的一些視頻中被合併爲一個dart UI層,對應的是Flutter中的dart:ui包,它是Flutter引擎暴露的底層UI庫,提供動畫、手勢及繪製能力。
  • Rendering層,這一層是一個抽象的佈局層,它依賴於dart UI層,Rendering層會構建一個UI樹,當UI樹有變化時,會計算出有變化的部分,而後更新UI樹,最終將UI樹繪製到屏幕上,這個過程相似於React中的虛擬DOM。Rendering層能夠說是Flutter UI框架最核心的部分,它除了肯定每一個UI元素的位置、大小以外還要進行座標變換、繪製(調用底層dart:ui)。
  • Widgets層是Flutter提供的的一套基礎組件庫,在基礎組件庫之上,Flutter還提供了 Material 和Cupertino兩種視覺風格的組件庫。而咱們Flutter開發的大多數場景,只是和這兩層打交道

Flutter Engine

這是一個純 C++實現的 SDK,其中包括了 Skia引擎、Dart運行時、文字排版引擎等。在代碼調用 dart:ui庫時,調用最終會走到Engine層,而後實現真正的繪製邏輯。
框架

總結

Flutter做爲一款跨平臺,開源,具備良好分層的框架,在大前端愈來愈流行的趨勢下,是很值得花時間學習一下的。加油!!!函數

相關文章
相關標籤/搜索