91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flutter介紹 - Flutter,H5,React Native之間的對比

發布時間:2020-06-24 15:45:06 來源:網絡 閱讀:1002 作者:羅伊德666 欄目:開發技術

Flutter介紹

Flutter是Google推出的開源移動應用開發框架。開發者可以通過開發一套代碼同時運行在iOS和Android平臺。

它使用Dart語言進行開發,并且最終編譯成各個平臺的Native代碼,這樣既保證了開發效率,也保證了各個平臺的運行效率。其相當于從頭到尾重寫了一套UI框架,不依賴具體平臺的組件。其所有的組件都是"Widget"。渲染引擎則依靠高效渲染庫Skia實現。

下面我們對比一下H5、React Native、Flutter這些跨平臺的解決方案。

移動端的跨平臺技術

H5技術

常被人提起的H5技術,其實就是網頁+JavaScript。比如目前的一些流行的JS框架Vue,React,AngularJS等都是為了構建網頁。針對移動端構建出來的網頁可以實現在跨平臺的功能,但是其缺點也很明顯:

  • 渲染效率低下,用戶體驗差。很多H5在iOS平臺表現尚可,但是在Android上特別是一些低端機上的表現確實讓人不敢恭維。
  • 網頁調用設備硬件相關API比較困難,而且支持的功能較少,實現此類需求是H5的短板。

React Native

React Native(RN)發布于2015年,也是使用JavaScript語言進行跨平臺APP的開發。與H5開發不同的是,它使用JS橋接技術在運行時編譯成各個平臺的Native代碼,其使用的技術Facebook的Flux技術。
其優點是目前的生態比較成熟,目前也有很多跨平臺應用使用React Native。它也是跟Flutter對比的主要對象。
其特點是:

  • 使用JavaScript語言,由于JS被廣泛地使用,所以RN也很容易被接受。
  • RN依賴JS的運行時環境,也就是JS橋接技術。其使用Facebook的Flux架構。
  • RN僅提供了UI渲染和設備訪問的API,很多功能必須依賴第三方庫來實現對本地組件的使用。
  • 生態目前比較完善,使用的公司也比較多,特別是對JS比較熟悉的同學容易上手。
  • 支持熱部署,開發過程中可以節約很多時間。

但是它也并不是完美的:

  • 它的渲染方式還是調用各個平臺的原生控件,有時需要針對不同的平臺做不同的優化。
  • 其性能相對于H5有很大的提高,但是并沒有完美解決,白屏,丟幀問題依然存在。

Flutter

Flutter也看到了目前的跨平臺解決方案并不完美,所以它借鑒了React Native的一些思想,做出了很大的優化。它將代碼編譯成原生代碼,并且直接在各個平臺中使用其高效渲染引擎Skia進行渲染,沒有橋接,不調用平臺相關控件。

這種設計思想完美解決了不同平臺的性能問題。

歸功于其設計思想,我們可以真正實現一套代碼,運行不同的平臺。在其推出之后,關注的開發者數量和相關的教程的增長速度遠超當時的React Native。

其特點包括:

  • 使用Google自主開發的Dart語言。Dart語言是一個強類型的語言,很好地支持面向對象,并且易于學習和使用。
  • 使用谷歌自己的Skia渲染引擎,Android自帶Skia引擎,iOS平臺上Flutter也會把Skia引擎打包到APP中,實現高效渲染。
  • 目前有非常豐富的視圖組件,可以點擊這里查看其組件目錄,包括Android上常用的材料設計(Material Design)的UI風格,和iOS風格(Cupertino)。由于其渲染不依賴各平臺相關組件,所以運行在不同平臺上的效果是一致的。
  • 同樣支持熱部署,開發時可以像網頁開發一樣實時看到效果。

目前它存在的一些問題是:

  • 國內學習資源目前并不豐富,使用Flutter的公司也比較少。
  • 相關的生態還沒有React Native那樣豐富,但是其發展速度大大超過了React Native。

總結

雖然Flutter目前并不是非常流行,但是筆者相信它是跨平臺解決方案的未來。
如果谷歌的新系統Fuchsia OS能像當今的Android這樣如日中天,甚至替代掉Android的話,Flutter的發展也會迎來它的頂峰。

本系列博客我們就來深入學習和探討使用Flutter。

后面的文章我們會逐步深入學習Flutter的功能與實戰。
我的博客中關于Flutter的所有文章可以點擊這里找到,歡迎關注!

如果有問題可以留言,或者給我發郵件lloyd@examplecode.cn,期待我們共同學習與成長!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张掖市| 大名县| 偃师市| 七台河市| 台中市| 益阳市| 庆城县| 都江堰市| 柯坪县| 新宾| 富民县| 诏安县| 登封市| 精河县| 吉木乃县| 华亭县| 绍兴市| 榆社县| 毕节市| 永新县| 广河县| 巨鹿县| 西峡县| 北票市| 遂川县| 巫山县| 商洛市| 布尔津县| 鸡东县| 蒲城县| 尉犁县| 旬邑县| 乌鲁木齐县| 利辛县| 永泰县| 牙克石市| 临沭县| 鄂伦春自治旗| 嘉善县| 肃北| 河源市|