Flutter用于桌面应用程序开发 –主要功能的技术预览& Improvements

Flutter用于桌面应用程序开发

Flutter正在将其功能扩展到桌面应用程序开发。很快,您将可以使用 Flutter应用程序开发 适用于各种台式机操作系统(包括Windows,macOS和Linux)的框架。 Flutter产品经理Tim Sneath在最近的博客文章中提到了该公司雄心勃勃的愿景,即涵盖几乎所有类型的计算设备。 Flutter已经用于各种开发项目中。无论是Google Assistant,Cloud 搜索还是Blogger,Flutter都已经为各种令人印象深刻的软件平台提供了强大的支持。

在此博客中,我们将讨论Flutter计划为桌面应用程序开发发布的所有功能。请记住,在撰写本文时,所有这些功能都处于技术预览之下。

扩展发行模式
Flutter已添加配置文件和发布模式Windows和Linux。它已支持macOS应用程序。如果您使用最新版本的Flutter,则可以使用“ Flutter构建窗口”将Flutter应用编译为Windows可执行文件。这是基于Flutter提前(AOT)编译器的。您可以使用AOT创建本机x64机器代码。即使没有Flutter,此代码也可以分发到设备。

增强的桌面级体验
桌面应用程序开发具有与移动应用程序开发不同的独特魅力。不论是简单的应用程序还是高级的渐进式Web应用程序,桌面应用程序都有多种应用程序。由于台式机应用程序通常是横向的并且可调整大小,因此针对桌面的Flutter框架旨在满足这些要求。 Flutter进行了许多更改,以提供最佳的桌面体验,包括:

•现在,默认模板包括对visualDensity属性的引用。这使您可以根据目标平台控制密度,并为桌面应用程序提供更紧凑的间距。

•更好地支持鼠标和键盘输入。这些更改包括Windows上的原始键代码,鼠标右键单击和光标更改等。

•更新的支持还使您可以查询特定的平台,例如Windows,macOS和Linux。查询将为您提供适当的结果。

•Flutter平台还添加了NavigationRail小部件,该小部件是在台式机和平板电脑上量身定制的桌面级体验。

平台集成的外部功能接口
FFI是平台集成的速度提升器。对于基于C编程语言的API,“ dart:ffi”库提供了直接集成到本机代码的直接机制。此外,Dart运行时使您可以在Dart对象支持的堆上分配内存,并调用所有动态链接的库。

灵活的插件开发模型
你们中的大多数人都必须意识到Flutter的核心很小。而且开发人员不想让核心变得笨拙。从Flutter或第三方开发人员添加插件和程序包可帮助框架与基础操作系统集成。但是,随着该框架不断扩展到Web和桌面,它需要更多来自具有Flutter专业知识的外部贡献者的插件。

为了将通用接口定义为核心插件的一部分,Flutter修改了插件的架构。这将使跨不同作者的无缝平台开发成为可能。作为该计划的一部分,Flutter现在允许您显式声明插件支持的平台。

Flutter的官方开发人员已经在使用此插件开发模型构建一些核心插件。你可以探索一些 开发模型的例子 更好地了解技术。

Windows Flutter应用开发
Flutter团队一直在尝试Windows桌面应用程序的各种体系结构方法。像其他平台一样,在Windows上,Flutter也嵌入到小型主机容器应用程序中。这依赖于Unity等游戏引擎使用的方法。此方法有助于提供入口点,与操作系统协调以及管理消息事件循环。

在将Flutter用于Windows操作系统时,您有两种方法来创建嵌入器。第一个是成熟的Win32编程模型,用于创建浮动内容的入口点。此方法提供了与Windows 7之类的平台的最大向后兼容性。它生成一个标准EXE文件。

第二种模式是现代的UWP应用开发模型。建议在Windows 10中使用此模型。UWP模型使您有机会将Flutter支持扩展到Xbox和即将推出的Windows 10X等设备。

Microsoft已决定扩展对Surface设备的支持,使其包括Android和Windows。 Flutter计划通过与Microsoft和重要的Flutter开发人员密切合作来利用这一扩展。通过这种合作,Flutter计划为Microsoft设备创建本机体验。

包起来
Flutter宣布的所有这些新功能都在技术审查中。在撰写本文时,这些开发过程中使用的API和工具并不完全稳定。一旦桌面支持稳定,具有经过反复测试的可访问性和本地化支持,Flutter将发布此主要更新。在此之前,您需要热情地从事Flutter桌面应用程序开发项目。

在Android Developer上,我们经历了Flutter的迷人旅程 Android应用程式开发 框架。作为Flutter的最早采用者之一,我们期待该框架的桌面升级版本。在社交媒体和网络上关注我们,以获取有关开发工具和模板的最新更新,从而使您的生活更轻松。

常见问题

问:什么是桌面应用程序开发?
与需要浏览器的Web应用程序不同,桌面应用程序可以在台式机或便携式计算机上独立运行。桌面应用程序的开发需要确保可以将应用程序本地安装在具有不同操作系统(包括Windows,macOS和Linux)的计算机上。

问:什么是渐进式Web应用程序?
渐进式Web应用程序是已采用某些性能标准和Web功能的网站,例如资源缓存,脱机浏览。可以在您的设备上安装PWA。

问:什么是Flutter应用程序开发?
Flutter是Google创建的开源移动应用开发工具包。它用于通过单个代码库为Android,iOS,Windows,Mac,Linux和Web开发应用程序。 Flutter使用基于标准的Web技术(例如HTML,CSS和JavaScript)支持Web应用程序开发。

问:构建Flutter应用程序需要多少费用?
开发Flutter应用程序的成本取决于几个因素。设计复杂度,开发时间,功能类型等在计算成本中起着重要作用。 Android开发人员以具有竞争力的价格提供了完美的Flutter应用程序。