Flutter是Google推出的開源移動應用開發框架。開發者能夠經過開發一套代碼同時運行在iOS和Android平臺。react
它使用Dart語言進行開發,而且最終編譯成各個平臺的Native代碼,這樣既保證了開發效率,也保證了各個平臺的運行效率。其至關於從頭至尾重寫了一套UI框架,不依賴具體平臺的組件。其全部的組件都是"Widget"。渲染引擎則依靠高效渲染庫Skia實現。react-native
下面咱們對比一下H五、React Native、Flutter這些跨平臺的解決方案。架構
常被人提起的H5技術,其實就是網頁+JavaScript。好比目前的一些流行的JS框架Vue,React,AngularJS等都是爲了構建網頁。針對移動端構建出來的網頁能夠實如今跨平臺的功能,可是其缺點也很明顯:框架
React Native(RN)發佈於2015年,也是使用JavaScript語言進行跨平臺APP的開發。與H5開發不一樣的是,它使用JS橋接技術在運行時編譯成各個平臺的Native代碼,其使用的技術Facebook的Flux技術。
其優勢是目前的生態比較成熟,目前也有不少跨平臺應用使用React Native。它也是跟Flutter對比的主要對象。
其特色是:性能
可是它也並非完美的:學習
Flutter也看到了目前的跨平臺解決方案並不完美,因此它借鑑了React Native的一些思想,作出了很大的優化。它將代碼編譯成原生代碼,而且直接在各個平臺中使用其高效渲染引擎Skia進行渲染,沒有橋接,不調用平臺相關控件。優化
這種設計思想完美解決了不一樣平臺的性能問題。ui
歸功於其設計思想,咱們能夠真正實現一套代碼,運行不一樣的平臺。在其推出以後,關注的開發者數量和相關的教程的增加速度遠超當時的React Native。設計
其特色包括:code
目前它存在的一些問題是:
雖然Flutter目前並非很是流行,可是筆者相信它是跨平臺解決方案的將來。
若是谷歌的新系統Fuchsia OS能像當今的Android這樣如日中天,甚至替代掉Android的話,Flutter的發展也會迎來它的頂峯。
本系列博客咱們就來深刻學習和探討使用Flutter。
後面的文章咱們會逐步深刻學習Flutter的功能與實戰。
個人博客中關於Flutter的全部文章能夠點擊這裏找到,歡迎關注!
若是有問題能夠留言,或者給我發郵件lloyd@examplecode.cn,期待咱們共同窗習與成長!