Flutter:Google工程師開發的針對iOS和Android的高性能跨平臺框架
Google工程師開發了一款針對iOS和Android的高性能跨平臺框架——Flutter。它主要使用Dart語言編寫,使用自有的渲染引擎來繪制控件,性能上專注于低延遲輸入和高幀率,旨在幫助開發者開發高新能的跨平臺2D移動應用。
需要特別指出的是,在2013年,Google曾發布了一個手勢識別的項目也叫Flutter,這兩個項目并無任何關聯。
Flutter是開源項目,但目前還不是Google官方項目。在 GitHub Page 頁面可以看到,它還處于非常早期的階段,目前僅支持iOS和Android平臺。另外,許多核心功能例如輔助功能、文本輸入、本地化等等還處于缺失的狀態中。
在 Flutter.io 中可以看到這么一段介紹:“Flutter和其它跨平臺移動應用開發框架非常不同,因為Flutter不使用WebView,也不使用設備中的OEM控件。取而代之的是,Flutter使用自己的高性能渲染引擎來繪制控件。”
Flutter的早期項目代號為Sky,這個項目包括一個支持文字的移動2D渲染引擎;一個functional-reactive框架;一組符合Material Design的控件、庫和工具;一個Atom編輯器插件。當然,開發者仍然可以自定義控件。
Flutter由C、C++和Dart語言編寫,也包含了Skia 2D渲染引擎和Blink的文本渲染系統。在GitHub中可以看到,開發人員在最近才由Python切換到了Dart。Dart語言是Google的 JavaScript競爭對手,它被選來作為編寫Flutter是因為它支持簡單的腳本、擴展到全功能的應用和有一定的語言熟悉感。
對于Android平臺來說,C/C++代碼由Android NDK(Native Development Kit)編譯,這個框架和應用代碼主要運行在Dart 虛擬機中,此虛擬機將會在設備中生成JIT編譯優化的本地代碼;在iOS平臺中,C/C++代碼由LLVM編譯,Dart代碼將由AOT編譯成為本地代 碼。應用將使用一個本地指令集。Flutter將不會有Web版本,目前也沒有支持的可用的依賴注入框架。