Flutter2 正式版
2021年3月5日 Flutter2 发布正式版
通过 Flutter 2,可以使用相同的代码库为五种操作系统构建原生应用: iOS、Android、Windows、macOS 和 Linux;以及为 Chrome、Firefox、Safari 和 Edge 等浏览器打造 web 体验。Flutter 甚至可以嵌入到汽车、电视和智能家电,为环境计算提供最普适、可移植的体验。
Flutter2带来的最重大的进展就是Flutter在web平台达到了稳定版。
Flutter web可以在浏览器里运行理论上就可以在任何设备/系统中运行
Flutter的web支持基于有硬件加速的2D和3D图形以及灵活的布局和绘画API,提供了以应用程序为中心的框架,该框架充分利用了现代Web所提供的所有优势。
- 渐进式Web应用程序(PWA):将Web的访问范围与桌面应用程序的功能结合在一起。
- 单页应用程序(SPA),一次加载并与网络之间进行数据传输。
- 将现有的 Flutter 移动应用程序带到Web上,从而为两种体验启用共享代码
综上所述:
Flutter可以开发有交互的web页面而非只有静态页面
从移动应用到web应用 Mobile APP to Web
怎样才能拥有一个flutter web应用呢?
- 将Flutter SDK 切换到 master channel (如遇卡不动,请翻墙或者切换到国内镜像)
flutter channel master
flutter upgrade
- 在原有flutter项目里生成web目录。打开终端执行以下命令
flutter create .
执行成功以后我们可以在当前项目下看到web目录
之后在运行设备列表里选择chrome(web)
点击run即可将我们的项目在浏览器里运行,第一次编译时稍微长一些,因为需要编译整个项目。
Web应用依然支持热重载(hotReload)
Web应用有两种渲染模式
我们应该如何选择采用哪种模式渲染呢?
默认情况下,渲染模式被设置为自动,并针对每个平台的特性进行了优化。具体优化点请阅读官方文档
- 移动浏览器内运行的应用采用 HTML 进行渲染
- 桌面浏览器内运行的应用采用 CanvasKit 进行渲染
如何调试?是否可以设置断点?
flutter web app可以连接到 Chrome 的JS调试器,该调试器可以用来设置断点,还可以使用Chrome DevTools
如何发布呢?
执行
flutter build web
之后我们可以将产物上传的托管平台就可以访问了
flutter web 编译器和移动端不同。由于flutter采用Dart语言,所以整个flutter框架都可以编译成JavaScript
移动应用和web应用唯一的区别在于使用的基础引擎,移动端使用C++引擎,web端采用Browser(C++,JS)引擎。我们不必修改任何项目代码就可以拥有一个web应用,因为fluter框架的API是完全一样的。
下面是移动端架构图和web端架构图
Flutter mobile app to web中需要注意什么?
- 使用的库是否支持web。 可以去pub.flutter-io.cn/ 找到相关库查看是否支持web
- web应用在各种设备运行,需要去适配不同尺寸屏幕的设备。做多屏幕尺寸的布局。比如列表在移动端显示一行,在电脑屏幕可以显示多行。
- 导航
- 针对桌面/web应用添加滚动条,鼠标和键盘交互
- web应用选择合适的渲染模式