Flutter調研

Flutter官網 https://flutter.io/
Flutter中文站 https://flutterchina.club/
Flutter中文資源 https://flutter-io.cn/

簡介

  • Flutter是谷歌的移動UI框架,可以快速在iOS和Android上構建高質量的原生用戶界面。
  • Flutter由Dart + C++ + Skia 開發。
  • 目前已經支持了 iOS、Android、Fuchsia。

開發環境

可以在Android Studio上安裝Flutter插件進行開發,開發使用Dart語言。

Dart 官網 https://www.dartlang.org/
Dart中文站 http://dart.goodev.org/

跨平臺方案比較

市面上的跨平臺解決方案,可以大致歸結爲:

  • 使用平臺支持的web技術:這些解決方案基本上加載了應用程序中的移動瀏覽器,並在該瀏覽器中執行所有的邏輯
  • React Native、Weex跨平臺框架
  • 微信小程序

但是都存在一些缺陷,比如

  • WebView框架有一個致命(在對體驗&性能有較高要求的情況下)的缺點,那就是WebView的渲染效率和JavaScript執行性能太差。再加上Android各個系統版本和設備廠商的定製,很難保證所在所有設備上都能提供一致的體驗。
  • 而React Native ,因爲JavaScript訪問了原生UI組件,所以它也必須經過這些“橋接器”,界面上的UI控件通常被頻繁地訪問(在動畫、轉化或者用戶用手指“滑動”屏幕上的某些東西時,每秒被訪問高達60次),因此這很可能會導致性能問題
  • 微信小程序需要依附於微信生態

Flutter則開闢了一種全新的思路,從頭到尾重寫一套跨平臺的UI框架,包括UI控件、渲染邏輯甚至開發語言。渲染引擎依靠跨平臺的Skia圖形庫來實現,依賴系統的只有圖形繪製相關的接口,可以在最大程度上保證不同平臺、不同設備的體驗一致性,邏輯處理使用支持AOT的Dart語言,執行效率也比JavaScript高得多。

優缺點

優點:

  • 響應式視圖的優點,不需要JavaScript的橋接器
  • 快速,流暢,可預測; 代碼將AOT編譯爲本機(ARM)代碼
  • 開發人員完全控制UI組件和佈局
  • 配有美觀,可定製的UI組件
  • 強大的開發者工具,驚人的熱重新加載
  • 性能更好,兼容性更好,開發起來更有樂趣

缺點:

  • 還沒有Release版本
  • 過渡原有項目比較複雜

參考文章

Flutter的原理及美團的實踐
爲什麼說Flutter是革命性的?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章