作者 / Tim Sneath, Product Manager for Flutter and Dart, Google
众所周知,在开发 Flutter 时,我们希望通过单一代码库支持 Flutter 在各类设备 (包括 iOS、Android、Windows、Linux、macOS 和 Web) 上的应用,并实现原生编译和游戏级别的视觉效果。Flutter 也已经在 Google 内部广泛用于 Assistant、Stadia、Cloud Search 以及 Blogger 等项目。在 Google 之外,字节跳动、Grab、Nubank 以及 MGM Resorts 等公司也都已采用 Flutter,并通过 Flutter 提升了生产力和灵活性。
很多人都想了解 Flutter 在桌面操作系统 (包括 Windows、macOS 和 Linux) 上的进展: 据调查和 GitHub 数据显示,Flutter 的桌面支持一直是最受期待的新功能之一。未来数周内,我们将为大家带来更多这方面的进展;同时,我们认为有必要先展示来自各个产品功能团队的成果 (这些成果最终会整合进完整的项目中),并搜集大家的反馈。虽然桌面支持目前已推出技术预览版本,但我们仍然有大量工作需要完成。
发布模式
继 macOS 之后,我们还为 Flutter 增加了 Windows 和 Linux 系统的 Profile Mode (性能模式) 和 Release Mode (发布模式) 。例如,如果您运行的是最新版 Flutter,现在可以使用 flutter build windows 命令,将 Flutter 应用编译为 Windows 可执行文件。此操作使用我们在生产环境中的 AOT 编译器来创建原生 x64 机器代码,而这些代码可分发至那些未安装 Flutter 的设备上。
Windows 发布模式
https://github.com/flutter/flutter/issues/38477
Linux 发布模式
https://github.com/flutter/flutter/issues/38478
AOT 编辑器
https://en.wikipedia.org/wiki/Ahead-of-time_compilation
桌面级体验
无论您要构建的是独立可执行文件还是 Web 应用,桌面级体验都有其独特的属性: 桌面窗口通常采用横屏模式并可以调整大小、输入通常由物理键盘和鼠标完成,而不是通过屏幕键盘和触摸操作,同时,控件也是基于不同的屏幕内容密度进行的优化。
在框架层面,我们对 Flutter 进行了多项变更以支持桌面级体验。
在最新版本 Flutter 中创建新项目时,您会看到默认模板包含了对 visualDensity 属性的引用,该属性允许控件根据目标平台调整其密度,从而在桌面平台上实现更紧凑的间距。其中一个例子就是 TextField: 它可根据指定的密度提供紧凑 (compact)、舒适 (comfortable)、标准 (standard) 三种间距。
我们优化了对鼠标和键盘输入的支持,其中包括 Windows 上的原始键代码、鼠标右键操作、光标更改和滚轮支持。
您现在可以 (通过 Platform 类)