谷歌发布Flutter Alpha:支持Windows

$ flutter channel dev

$ flutter upgrade

$ flutter config --enable-windows-desktop

复制代码

第一条命令将Flutter设置为使用实验质量的“ dev”通道(而不是默认的“ stable”通道)。这样,您就可以使用仍在Alpha中的平台支持,例如Windows。第二条命令下拉该通道上的最新位。第三个命令可在您的PC上进行Windows应用开发。

设置好之后,每次使用Android StudioVisual Studio Code的扩展支持,或者从命令行创建新的Flutter应用程序时,它都会创建一个Windows子文件夹。

如果您感到好奇,请在Windows上运行默认应用程序,如下所示:

最后,一旦创建了应用程序,构建该应用程序将创建一个发布模式的本机EXE文件以及必要的支持DLL。到那时,如果您想尝试在任何Windows 10计算机上运行新的Windows应用程序,即使没有安装Flutter的计算机,也可以按照以下步骤压缩必要的文件并运行。

Windows插件

=========

即使我们刚刚发布Alpha版,Flutter社区也已经在为Windows插件进行开发。这里有一些:

使用这些插件的好处是它们中的大多数还支持其他Flutter平台,这使您可以将应用定位到Android,iOS,Web等以及Windows。此外,虽然pub.dev(Dart和Flutter的软件包管理器)上约有三分之一的可用软件包是具有特定于平台的代码的插件,但大多数不是。例如,许多最高质量和最常用的软件包是Flutter Favorite程序的一部分,并且大多数都在Windows上运行。如果要查看在Windows上运行的软件包的完整列表,可以在pub.dev上运行此查询

与Windows互操作

===========

如果您想为Windows构建自己的插件,则可以。进入开发人员通道并为计算机启用Windows后,可以使用以下命令开始:

$ flutter create --template plugin --platforms Windows hello_plugin

复制代码

届时,您将能够在插件项目中将Flutter代码添加到lib子文件夹中,并将Windows代码添加到windows子文件夹中。您将使用Platform Channels在两个堆栈之间进行通信,这实际上是Dart和C ++代码之间传递的消息。有关此示例的精心制作,请参见url_launcher实现

但是,平台通道并不是与Windows互操作的唯一选择。如果愿意,可以使用Dart FFI(外部功能接口)加载库并调用C样式的API,例如Win32 API。与使用平台通道的url_launcher不同,path_provider插件是使用FFI实现的,如您在GitHub repo中所见。FFI无需在Dart和C ++之间来回切换,而是允许您编写代码以直接导入所需的API。例如,以下是用于调用MessageBox API的代码:

typedef MessageBoxNative = Int32 Function(

IntPtr hWnd,

Pointer lpText,

Pointer lpCaption,

Int32 uType

);

typedef MessageBoxDart = int Function(

int hWnd,

Pointer lpText,

Pointer lpCaption,

int uType

);

final user32 = DynamicLibrary.open(‘user32.dll’);

final win32MessageBox =

user32.lookupFunction<MessageBoxNative, MessageBoxDart>(‘MessageBoxW’);

void showMessageBox(String message, String caption) =>

win32MessageBox(

0, // No owner window

Utf16.toUtf16(message), // Message

Utf16.toUtf16(caption), // Window title

0 // OK button only

);

// call just like any other Dart function

showMessageBox(‘Test Message’, ‘Window Caption’);

view rawmbox.dart hosted with ❤ by GitHub

复制代码

此代码不会产生在平台通道之类的两个线程之间进行转换的开销。FFI包括对许多不同种类的API的支持,包括Win32,WinRT和COM。但是,在运行并包装整个基于C的Windows API之前,请检查win32插件,该插件已经可以很好地做到这一点。实际上,path_provider插件本身是使用win32插件实现的。有关win32插件如何开发以及如何工作的详细信息,请查看博客文章Dart FFI的Windows乐趣

Windows资源Flutter

================

无论您在Flutter for Windows之旅中的任何地方,都应确保阅读flutter.dev上的桌面文档,其中包括最新详细信息。另外,您将需要熟悉 Flutter代码实验室,以编写Windows,macOS和Windows桌面目标应用程序,其中包括用于真实场景的代码,例如使用OAuth进行身份验证,访问GitHub API和使用GraphQL。或者,对于在Windows上运行的Flutter桌面代码的另一个很好的例子,请查看照片搜索示例

它使用标准的Windows文件打开对话框,树视图小部件,拆分器小部件,并将结果与真实世界的REST API集成在一起。

对于其他有用的面向桌面的小部件,我们建议使用菜单栏插件NavigationRail小部件DataTable小部件。您可能还对InteractiveViewer小部件感兴趣,该小部件具有完整的桌面支持,可通过鼠标手势来平移和缩放子小部件。

可以探索的另一组有用的小部件是SyncFusion中的那些,它们已经在Windows开发社区中广为人知。它们提供了广泛的企业质量小部件,用于创建图表,仪表,数据网格等。

这些小部件具有社区和企业许可证,因此您可以找到最适合您的项目的工具。

适用于Windows的Flutter

==================

除了Windows(通常是Flutter桌面)的软件包和插件外,Flutter开发人员还一直在开发针对Windows的出色应用,例如Invoice Ninja的实验性构建:

Invoice Ninja是一家依靠Flutter带来收入的发票公司。他们的目标是今天生产中的Android和iOS,并具有基于Web的演示供您尝试,但也期待提供桌面版本。

“在过去的Ninja中,我们一直在努力仅支持Web和移动设备,一次只能维护三个单独的代码库。借助Flutter,以及最近的Flutter Desktop,我们已经能够使用单个代码库为每个主要平台构建应用程序。我们不仅可以从根本上获得应用程序的免费桌面版本,而且还拥有所有应用程序中最好的性能!”

—Invoice Ninja 联合创始人Hillel Coren

如果您对实现可在移动和台式机上运行的现实世界中可产生收入的Flutter应用感兴趣,则可在GitHub上找到源代码

Aartos是另一家制造出色产品的公司,其中包括带有Flutter编写的具有多平台客户端的实时无人机检测系统。这是在移动客户端旁边运行的Windows客户端的早期版本:

视频地址:youtu.be/mGvPCT7Vc2Y

这两个针对iOS和Windows的版本共享完全相同的代码库。

如果您是经验丰富的Flutter开发人员,并且发现自己在Flutter的不同版本之间进行切换;例如,一个版本用于交付生产型移动应用程序,另一个版本用于测试Windows alpha,那么您可能会喜欢Flutter版本管理器,该版本管理器现在带有Windows GUI,您可以下载该版本

视频地址:youtu.be/_WA71wSt2ww

该工具是开源的,因此您可以亲自了解Leo如何使其看起来如此出色。

最后我想说

为什么很多程序员做不了架构师?
1、良好健康的职业规划很重要,但大多数人都忽略了
2、学习的习惯很重要,持之以恒才是正解。
3、编程思维没能提升一个台阶,局限在了编码,业务,没考虑过选型、扩展
4、身边没有好的架构师引导、培养。所处的圈子对程序员的成长影响巨大。

金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-125ssr4r-1715396775676)]

里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值