❶ 讓前端開發者失業的技術,Flutter Web初體驗
Flutter是一種新型的「客戶端」技術,其目標是替代包含幾乎所有平台的開發,包括iOS,Android,Web,桌面等,實現一次編寫,多處運行。掌握Flutter web可能是Web前端開發者轉行的唯一機會。在Google IO 2019年度開發者大會上,Flutter web作為亮點技術受到追捧。該技術後續將支持更多嵌入式設備,是Google Fuchsia下開發應用的主要工具。Flutter採用Dart語言進行開發,其性能與JavaScript基本持平,甚至在AOT模式下高於JavaScript。Flutter內置UI界面,與Hybrid App、React Native等技術不同,它實現了統一介面的渲染引擎繪制UI,同時可以復用Java、Kotlin、Swift或OC代碼,訪問Android和iOS上的原生系統功能。
Flutter的架構由Dart框架、Material和Cupertino UI界面、通用Widgets、動畫、繪制、渲染、手勢庫等構成,引擎由C/C++編寫,核心庫包括Skia渲染引擎、Dart運行時環境和文本渲染布局引擎。底層嵌入層負責解決跨平台問題。
Flutter for Web在架構上與移動端幾乎一致,僅需重新實現引擎和嵌入層,無需變動Flutter API,即可將UI代碼從Android / iOS Flutter App移植到Web端。Dart能夠使用Dart2Js編譯器將Dart代碼編譯成JavaScript代碼。大多數原生App元素通過DOM實現,DOM實現不了的元素通過Canvas實現。
安裝Flutter Web開發環境需遵循官方要求,如Windows 7 SP1或更高版本、Java 1.8+版本及配置環境變數、安裝Android Studio、設置代理、下載Android SDK、安裝Flutter SDK和Dart與Pub。此外,還需安裝webdev和stagehand,並配置編輯器以支持Flutter和Dart插件。
創建應用時,使用VS Code或Android Studio創建新Web項目,項目結構包括HTML文件、main.dart文件、pubspec.yaml文件、analysis_options.yaml文件和dart_tool文件夾。運行flutter doctor檢測並安裝依賴項。使用webdev serve運行應用。
實戰中,實現一個具有圖文功能的頁面,包括更改主應用內容、創建Home類並使用AppBar組件、創建頁面主體內容等步驟。最終,頁面通過編譯、打包並運行webdev serve展示效果。
總結而言,Flutter web是一個預覽版,性能、易用性和布局都超出了預期。觸摸體驗良好,但與APP相比體驗稍差。Flutter web的開發體驗還有待優化,社區資源有限,兼容性問題需要解決。盡管存在挑戰,Flutter可能改變客戶端開發模式及分工,並給前端人員帶來學習機會。