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版本
- 過渡原有項目比較複雜