Google推出智能代码完成的Dart 2.5 支持iOS 13的Flutter 1.9和macOS Catalina支持

谷歌今天发布了Dart 2.5和Flutter 1.9。Dart 2.5为调用C代码和智能代码完成提供了更强大的支持,它利用机器学习帮助开发人员完成代码或识别他们应该使用的API。Flutter 1.9允许开发人员使用相同的代码库构建移动,桌面和Web应用程序。新版本还支持iOS 13和macOS Catalina,并包含用于切换按钮和过滤器的新材质小部件。

Dart是Google开发的一种编程语言,用于构建移动,桌面,后端和Web应用程序。2011年10月推出的面向对象,类定义的垃圾收集语言使用C语言语法,可以选择性地转换为JavaScript。

lutter于2017年5月首次在Google的I / O开发者大会上宣布,并于2018年12月达到1.0版。想要与Facebook的React Native等框架竞争,该库旨在将原生移动的性能和平台集成与快速开发相结合和便携式UI工具包的多平台范围。Flutter应用程序是使用Google的Dart编程语言构建的。

飞镖2.5

具有讽刺意味的是,Dart 2.5稳定发布的亮点是两个技术预览。第一个是dart:ffi外部函数接口,用于直接从Dart调用C代码。第二个是由机器学习驱动的代码完成。

调用C代码

直接从Dart调用C的支持目前仅限于使用本机扩展深入集成到Dart VM 。Google的目标是提供一种新的机制,该机制具有“出色的性能,易于接近,并且可以在许多受支持的Dart平台和编译器上运行。” Dart-C interop支持两种主要方案

在主机操作系统上调用基于C的系统API。

调用基于C的库,可以是单个操作系统,也可以是跨平台。

dart:ffi库今天正在预览中发布。在Flutter主通道或Dart dev通道上尝试。请注意,Google仍然存在一些限制,并希望在最终版本发布之前进行重大更改。

智能代码完成

随着API的增长,类型化编程语言中可能的完成列表变得太长,无法按字母顺序浏览。与微软一样,谷歌正在探索利用机器学习来帮助开发人员在打字时完成代码完成。

该团队使用TensorFlow Lite通过分析大量的GitHub开源Dart代码来训练基于给定上下文的可能成员事件的模型。然后,此模型用于预测开发人员正在键入的可能的下一个符号(GitHub repo)。

在新的预览可直接作为达特分析器的一部分。这意味着所有支持Dart的编辑器都可以使用代码完成体验,包括Android Studio,IntelliJ和Visual Studio Code。预览此功能时,您将需要使用Flutter dev通道或Dart dev通道。

常量表达式等等

最后,Dart 2.5支持更多定义常量表达式的方法,包括使用强制转换的能力以及Dart 2.3中提供的新控制流和集合扩展功能。虽然Dart长期以来一直支持创建const变量和值,但直到现在,常量表达式仍然有限。

至于下一个Dart版本,Google正在研究扩展方法,默认情况下强制引用不可为空,以及改进的并发支持。由于最近的所有语言变化,Google还投资于现有代码的丰富迁移工具。

颤动1.9

Flutter 1.9增加了对macOS Catalina和iOS 13的支持,改进了工具,新的Material小部件和新的Dart语言功能。总体而言,谷歌指出Flutter 1.9是其最大的更新,“来自100多个贡献者的超过1,500个PR。”

Flutter 1.9还增加了对24种语言的支持:南非荷兰语,阿尔巴尼亚语,阿姆哈拉语,阿萨姆语,阿塞拜疆语,巴斯克语,白俄罗斯语,孟加拉语,缅甸语,古吉拉特语,冰岛语,格鲁吉亚语,卡纳达语,吉尔吉斯语,老挝语,马其顿语,马拉雅拉姆语,尼泊尔语,奥里亚语,旁遮普语,僧伽罗语,泰卢固语,乌兹别克语和祖鲁语。

扑动网络

谷歌在其I / O 2019开发者大会上于5月发布了Flutter网络的第一次技术预览。现在,该公司已将Flutter Web存储库合并到主要的Flutter存储库中。这意味着开发人员可以使用相同的代码库为移动,桌面和Web编写代码。

因此,现在不推荐使用flutter_web存储库。如果您拥有主要或开发者频道的最新Flutter版本,则可以通过运行使用最新的Flutter实验版本来定位Web flutter run -d chrome。

运行Flutter for Web的Visual Studio代码

当您创建项目时,Flutter现在通过最小的web / index.html文件创建一个Web运行器,该文件引导您的Web编译的Flutter代码。该文件允许您使用Flutter CLI工具或IDE插件在Web上编辑和运行Flutter应用程序。然而,谷歌警告说,Flutter对网络输出的支持仍处于早期阶段。

macOS Catalina,iOS 13和Material

Apple目前正在发布各种操作系统的最新版本,包括iOS 13和macOS Catalina。Google确保Flutter与Xcode 11协同工作,在整个工具链中采用新的Xcode构建系统和64位支持,并简化了平台依赖性。Flutter 1.9还包括iOS 13可拖动工具栏的实现,包括长按和右拖,并支持振动反馈。iOS黑暗模式的工作已经开始,但还没有完成。

在最新的开发版本中,您现在可以启用对Bitcode的实验性支持,Bitcode是Apple独立于平台的编译程序的中间表示。以Bitcode的形式提交您的应用程序允许Apple在未来重新提交时优化您的二进制文件。这也意味着有一天Flutter可能会支持像watchOS和tvOS这样需要Bitcode提交应用程序的平台。

栏目推荐