回覆列表
  • 1 # 雲架構

    Github查了一下,Flutter 93K,React-native 87K,關注度都很高;Flutter是Dart語言,而React-native是Javascript語言,近期專案開發,可以選擇自己擅長的技術棧,從長遠來看,Flutter是未來的趨勢!

  • 2 # 給你講講IT歷史

    當然是flutter,谷歌有個系統都是以flutter為表現層的,而且已經做到Android,ios,web和macos這幾個平臺來,如果不遠的未來完成windows和linux的部署,未來不可限量。從技術上說,flutter採用的是重新自己開發了一個繪圖引擎,然後所有介面都在這個繪圖引擎上繪製,所以更容易達到效能上的最優化和跨平臺的效果統一。rn大約可以理解為一個跨平臺呼叫元件,設計了一個統一介面,然後內部呼叫平臺自己的gui去完成內容繪製,不能不說設計巧妙,能力強大,事實上也確實經過這幾年發展已經非常完善了。但是和flutter系統級別的設計和架構來看,還是略遜一籌。一個比較有代表性的點就是在動畫表現上,flutter確實有先天優勢。

  • 3 # 未禿頭的程式設計師

    ①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(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的發展也會迎來它的頂峰。

  • 中秋節和大豐收的關聯?
  • 加版賓士gls450豪華包是大柏林嗎?