對於 Flutter 你 瞭解 多少?
Flutter是谷歌的移動UI框架,可以快速在iOS和Android上構建高質量的原生使用者介面。 Flutter可以與現有的程式碼一起工作。在全世界,Flutter正在被越來越多的開發者和組織使用,並且Flutter是完全免費、開源的。
距離 Google 在 2018 世界移動大會上釋出 Flutter 的 Beta 版本,Flutter 是 Google 用以幫助開發者在 Android 和 iOS 兩個平臺,同時開發高質量原生應用的全新移動 UI 框架。
初識Flutter
Flutter的目標是使同一套程式碼同時執行在Android和iOS系統上,並且擁有媲美原生應用的效能,Flutter甚至提供了兩套控制元件來適配Android和iOS(滾動效果、字型和控制元件圖示等等),為了讓App在細節處看起來更像原生應用。
在Flutter誕生之前,已經有許多跨平臺UI框架的方案,比如基於WebView的Cordova、AppCan等,還有使用HTML+JavaScript渲染成原生控制元件的React Native、Weex等。
基於WebView的框架優點很明顯,它們幾乎可以完全繼承現代Web開發的所有成果(豐富得多的控制元件庫、滿足各種需求的頁面框架、完全的動態化、自動化測試工具等等),當然也包括Web開發人員,不需要太多的學習和遷移成本就可以開發一個App。同時WebView框架也有一個致命(在對體驗&效能有較高要求的情況下)的缺點,那就是WebView的渲染效率和JavaScript執行效能太差。再加上Android各個系統版本和裝置廠商的定製,很難保證所在所有裝置上都能提供一致的體驗。
為了解決WebView效能差的問題,以React Native為代表的一類框架將最終渲染工作交還給了系統,雖然同樣使用類HTML+JS的UI構建邏輯,但是最終會生成對應的自定義原生控制元件,以充分利用原生控制元件相對於WebView的較高的繪製效率。與此同時這種策略也將框架本身和App開發者綁在了系統的控制元件系統上,不僅框架本身需要處理大量平臺相關的邏輯,隨著系統版本變化和API的變化,開發者可能也需要處理不同平臺的差異,甚至有些特性只能在部分平臺上實現,這樣框架的跨平臺特性就會大打折扣。
Flutter則開闢了一種全新的思路,從頭到尾重寫一套跨平臺的UI框架,包括UI控制元件、渲染邏輯甚至開發語言。渲染引擎依靠跨平臺的Skia圖形庫來實現,依賴系統的只有圖形繪製相關的介面,可以在最大程度上保證不同平臺、不同裝置的體驗一致性,邏輯處理使用支援AOT的Dart語言,執行效率也比JavaScript高得多。
Flutter同時支援Windows、Linux和macOS作業系統作為開發環境,並且在Android Studio和VS Code兩個IDE上都提供了全功能的支援。Flutter所使用的Dart語言同時支援AOT和JIT執行方式,JIT模式下還有一個備受歡迎的開發利器“熱重新整理”(Hot Reload),即在Android Studio中編輯Dart程式碼後,只需要點選儲存或者“Hot Reload”按鈕,就可以立即更新到正在執行的裝置上,不需要重新編譯App,甚至不需要重啟App,立即就可以看到更新後的樣式。
在Flutter中,所有功能都可以通過組合多個Widget來實現,包括對齊方式、按行排列、按列排列、網格排列甚至事件處理等等。Flutter控制元件主要分為兩大類,StatelessWidget和StatefulWidget,StatelessWidget用來展示靜態的文字或者圖片,如果控制元件需要根據外部資料或者使用者操作來改變的話,就需要使用StatefulWidget。State的概念也是來源於Facebook的流行Web框架 React ,React風格的框架中使用控制元件樹和各自的狀態來構建介面,當某個控制元件的狀態發生變化時由框架負責對比前後狀態差異並且採取最小代價來更新渲染結果。
下面小編給你提供flutter全套電子書:加群 4112676 驗證 :flutter資料領取,即可免費獲得。

群 4112676 驗證 :flutter資料領取,即可免費獲得。