❶ 让前端开发者失业的技术,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可能改变客户端开发模式及分工,并给前端人员带来学习机会。