精华内容
下载资源
问答
  • Flutter 2.0快速重建的一个站点样例 在线预览: : 更多精彩,请关注官方微信公众号:Oldbirds 安装 git clone 安装fvm工具: 运行 $ cd web-demo $ fvm install $ fvm flutter run -d Chrome
  • 这是一个基于Flutter 2.0的项目,通过Encik Khirul Nizam的在线缩放学习进行。 入门 需要了解有关以下内容的详细信息: 小部件 儿童| 孩子们 无状态 要获得Flutter入门方面的帮助,请查看我们的,其中提供了教程,...
  • 【老孟FlutterFlutter 2.0 重磅更新

    千次阅读 2021-03-04 23:17:18
    老孟导读:昨天期待已久的 Flutter 2.0 终于发布了,Web 端终于提正了,春季期间我发布的一篇文章,其中的一个预测就是 Web 正式发布,已经实现了,还有一个预测是:2021年将是 Flutter 大跃进的一年,等今年你年底...

    老孟导读:昨天期待已久的 Flutter 2.0 终于发布了,Web 端终于提正了,春季期间我发布的一篇文章,其中的一个预测就是 Web 正式发布,已经实现了,还有一个预测是:2021年将是 Flutter 大跃进的一年,等今年你年底总结的时候,让我们在来验证下这个预测是否应验

    后面几天会陆续发布 Flutter 2.0 更新更加详细的内容更新,敬请关注。

    下面就让我们看看 Flutter 2.0 都有哪些重磅更新,原文链接:https://developers.googleblog.com/2021/03/announcing-flutter-2.html

    我们针对Web,移动端和台式机构建的下一代Flutter

    今天,我们宣布Flutter 2Flutter的重大升级,使开发人员能够为任何平台创建美观,快速且可移植的应用程序。借助Flutter 2,您可以使用相同的代码库将本机应用程序发布到五个操作系统:iOS,Android,Windows,macOS和Linux。以及针对Chrome,Firefox,Safari或Edge等浏览器的Web体验。Flutter甚至可以嵌入到汽车,电视和智能家电中,为环境计算世界提供最普遍和最便携式的体验。

    我们的目标是从根本上改变开发人员对构建应用程序的看法,而不是从您要定位的平台开始,而要从您要创建的体验开始。Flutter使您可以在品牌和设计走在前列的情况下,手工创造美好的体验。Flutter速度很快,可以将源代码编译为机器代码,但是由于我们对有状态的热重装的支持,您仍然可以提高生产力,允许您在应用程序运行时进行更改并立即查看结果。Flutter是开放的,成千上万的贡献者添加了核心框架,并通过软件包生态系统对其进行了扩展。

    今天发布的Flutter 2中,我们将Flutter从移动框架扩展到了可移植框架,释放了您的应用程序,使其可以在各种不同的平台上运行,而几乎没有改变。仅Play商店就已经有超过15万个Flutter应用程序,并且每个应用程序都可以通过Flutter 2免费升级,因为它们现在可以在不重写的情况下扩展到目标台式机和Web。

    来自世界各地的客户正在使用扑,包括流行的应用程序,如微信Grab, Yandex Go, Nubank, Sonos, Fastic, Betterment and realtor.com。在Google,我们依赖Flutter,Google的一千多名工程师正在使用Dart和Flutter构建应用程序。实际上,其中许多产品已经发货,包括Stadia,Google One和Google Nest Hub。

    几个月前,Google Pay为其旗舰移动应用程序改用Flutter,他们已经在生产力和质量上取得了重大进步。通过统一代码库,该团队消除了平台之间的功能差异,并消除了超过一百万行代码。Google Pay还报告说,其工程师的效率要高得多,技术债务大大减少,统一发布流程(如跨iOS和Android的安全性审查和试验)得以实现。

    Flutter on the web

    Flutter 2中最大的公告也许是对Web的生产质量支持。

    Web的早期基础是以document为中心的。但是,Web平台已发展为包含更丰富的平台API,这些API支持具有硬件加速的2D和3D图形以及灵活的布局和绘画API的高度复杂的应用程序。Flutter的Web支持基于这些创新,提供了以应用程序为中心的框架,该框架充分利用了现代Web所提供的所有优势。

    此初始版本特别关注三种应用程序场景:

    • 渐进式Web应用程序(PWA),将Web的访问范围与桌面应用程序的功能结合在一起。
    • 单页应用程序(SPA),一次加载并与Internet服务之间进行数据传输。
    • 将现有的Flutter移动应用程序带到Web上,从而为两种体验启用共享代码。

    在过去的几个月中,在为稳定发布Web支持做准备的同时,我们在性能优化方面取得了许多进展,添加了一个新的由WebAssembly构建的由CanvasKit驱动的渲染引擎。Flutter Plasma是由社区成员Felix Blaschke构建的演示,展示了使用Dart和Flutter构建复杂的Web图形体验的简便性,这些体验也可以在桌面或移动设备上本地运行。

    我们一直在扩展Flutter,以提供最佳的Web平台。最近几个月,我们添加了文本自动填充功能,对地址栏URL和路由的控制以及PWA清单。而且由于台式机浏览器与移动浏览器一样重要,因此我们添加了交互式滚动条和键盘快捷键,增加了台式机模式下的默认内容密度,并增加了屏幕阅读器对Windows,macOS和Chrome OS上可访问性的支持。

    已经提供了使用Flutter构建的Web应用程序的一些示例。在教育工作者中,iRobot以其流行的Root教育机器人而闻名。Flutter对网络的生产支持使iRobot可以利用其现有的教育编程环境并将其移至网络,从而将其可用性扩展到Chromebook和其他浏览器是最佳选择的设备。iRobot的博客文章详细介绍了迄今为止的进展以及为何选择Flutter。

    另一个例子是Rive,Rive为设计师提供了一个强大的工具,可用于创建可发布到任何平台的自定义动画。他们的更新后的Web应用程序现已在Beta中提供,完全由Flutter构建,并且是Flutter在此环境中可以提供的所有服务的一封情书。

    您可以在我们的Medium出版物上的专用博客文章中找到有关Flutter的更多信息。

    台式机,可折叠设备和嵌入式设备上的Flutter 2

    除了传统的移动设备和Web之外,Flutter越来越多地扩展到其他设备类型,我们在今天的主题演讲中重点介绍了三个伙伴关系,这些伙伴关系证明了Flutter的便携性。

    首先,Canonical与我们合作将Flutter带入桌面,工程师们贡献了代码来支持Linux上的开发和部署。在今天的活动中,Ubuntu团队展示了由Flutter重写的新安装程序的早期演示。对于Canonical来说,至关重要的是,它们可以在各种硬件配置上提供坚如磐石而又优美的体验。展望未来,Flutter是Canonical创建的未来台式机和移动应用程序的默认选择

    其次,微软正在继续扩大对Flutter的支持。除了正在进行的合作以在Flutter中提供高质量的Windows支持外,今天微软还将发布对Flutter引擎的支持,以支持新兴的可折叠Android设备。这些设备引入了新的设计模式,其应用程序可以扩展内容或利用双屏特性提供并行体验。在Surface工程团队博客文章中,他们展示了他们的工作,并邀请其他人加入他们,共同完成适用于Surface Duo和其他设备的高质量实现。

    最后,世界上最畅销的汽车制造商丰田汽车宣布了其计划,通过构建由Flutter提供动力的信息娱乐系统,将最佳的数字体验带入车辆。使用Flutter标志着与过去开发车载软件的方式大相径庭。丰田之所以选择Flutter,是因为其高性能和经验的一致性,快速的迭代和开发人员的人机工程学以及智能手机层的触摸机制。通过使用Flutter的embedder API,Toyota可以针对车载系统的独特需求量身定制Flutter。

    我们很高兴继续与丰田和其他公司合作,将Flutter应用于汽车,电视和其他嵌入式设备,我们希望在未来几个月中分享更多示例。

    不断发展的Flutter生态系统

    现在,有超过15,000个Flutter和Dart软件包:来自AmazonMicrosoftAdobeAlibabaeBaySquare等公司;到重要的软件包,如LottieSentrySVG,以及Flutter Favorite软件包,如sign_in_with_applegoogle_fontsgeolocatorsqflite

    今天,我们宣布推出Google移动广告Flutter的测试版,这是一个可与AdMob和AdManager配合使用的新SDK,可提供多种广告格式,包括横幅广告,插页式广告,原生广告和奖励视频广告。我们一直在与几个主要客户一起试用该SDK,例如SuaMúsica(拉丁美洲最大的独立艺术家音乐平台),现在我们准备开放Google移动广告Flutter SDK以便更广泛地采用。

    我们还将宣布对Flutter插件的一些核心Firebase服务进行更新:身份验证,Cloud Firestore,Cloud Functions,Cloud Messaging,Cloud Storage和Crashlytics,包括对可靠的null安全性的支持以及对Cloud Messaging软件包的全面检查。

    Dart:Flutter背后的秘密调味料

    正如我们已经指出的,Flutter 2可移植到许多不同的平台和外形上。轻松过渡到支持Web,桌面和嵌入式的过程很大程度上要归功于Dart,它是针对多平台开发进行了优化的Google编程语言。

    Dart结合了一套独特的功能来构建应用程序:

    • 无意外的可移植性,其编译器可为移动和台式机生成高性能的Intel和ARM机器代码,并为网络提供经过严格优化的JavaScript输出。相同的Flutter框架源代码可编译到所有这些目标。
    • 在桌面和移动设备上进行有状态热重载的迭代开发,以及为现代UI编程的异步,并发模式设计的语言构造。
    • 在所有这些平台上的Google级性能,可靠的null安全性保证了运行时和开发过程中的null约束。

    没有其他语言可以结合所有这些功能。也许这就是为什么Dart是GitHub上发展最快的语言之一的原因。

    Dart 2.12现已发布,是我们自2.0版以来最大的发行版,支持null安全性。可靠的null安全性有可能消除可怕的null引用异常,从而在开发和运行时提供了保证,即如果开发人员明确选择,则类型只能包含null值。最重要的是,此功能不是一项重大更改:您可以按照自己的步调将其逐步添加到代码中,并可以使用迁移工具在准备就绪时为您提供帮助。

    今天的更新还包括FFI稳定实现,使您可以编写可与基于C的API互操作的高性能代码。用Flutter编写的新的集成开发人员和分析器工具;以及许多性能和大小上的改进,这些改进可以进一步升级代码,而无需重新编译即可。有关更多信息,请查看专用的Dart 2.12公告博客文章

    Flutter 2:现已发布

    关于Flutter 2,要说的话远远超出了我们在本文中可以涵盖的范围。实际上,合并的合并请求的原始列表是一个200页的文档!请访问Flutter 2上的独立技术博客,以获取有关许多新功能和性能改进的信息,我们认为这将使现有的Flutter开发人员满意,并立即下载。

    我们还有一个主要的新样本,它展示了刚才提到的所有内容,该样本是与位于加拿大埃德蒙顿的屡获殊荣的设计团队gskinner合作构建的。Flutter Folio是一款剪贴簿应用程序,专为您的所有设备而设计。小屏幕体验是专为捕获内容而设计的;大屏幕支持使用台式机和平板电脑专用的习惯用法进行编辑;网络体验是为共享而量身定制的。所有这些量身定制的经验都共享相同的代码库,该代码库是开源的,可供您阅读。

    如果您还没有尝试过Flutter,我们认为您会发现它对您的应用程序开发体验而言是一次重大升级。在Flutter中,我们提供了一个开放源代码工具包,用于通过单个代码库构建针对移动,台式机,Web和嵌入式设备的美观而快速的应用程序,这些应用程序既可以满足Google的苛刻需求,也可以满足我们客户的需求。

    Flutter是免费的开放源代码。我们很高兴看到使用Flutter 2构建的东西!

    交流

    老孟Flutter博客(330个控件用法+实战入门系列文章):http://laomengit.com

    添加微信或者公众号领取 《330个控件大全》和 《Flutter 实战》PDF。

    欢迎加入Flutter交流群(微信:laomengit)、关注公众号【老孟Flutter】:

    展开全文
  • 带有新架构+ Flutter 2.0的O-Learning项目 入门 该项目是Flutter应用程序的起点。 如果这是您的第一个Flutter项目,那么有一些资源可以帮助您入门: 要获得Flutter入门方面的帮助,请查看我们的,其中提供了教程,...
  • Flutter 2.0 重磅更新

    2021-03-05 15:18:48
    老孟导读:昨天期待已久的 Flutter 2.0 终于发布了,Web 端终于提正了,春季期间我发布的一篇文章,其中的一个预测就是 Web 正式发布,已经实现了,还有一个预测是:2021年将是 Flutter 大跃进的一年,等今年你年底...

    好文推荐:
    作者:老孟Flutter
    链接:https://juejin.cn/post/6935818012490465293

    老孟导读:昨天期待已久的 Flutter 2.0 终于发布了,Web 端终于提正了,春季期间我发布的一篇文章,其中的一个预测就是 Web 正式发布,已经实现了,还有一个预测是:2021年将是 Flutter 大跃进的一年,等今年你年底总结的时候,让我们在来验证下这个预测是否应验

    后面几天会陆续发布 Flutter 2.0 更新更加详细的内容更新,敬请关注。

    下面就让我们看看 Flutter 2.0 都有哪些重磅更新,原文链接:https://developers.googleblog.com/2021/03/announcing-flutter-2.html

    我们针对Web,移动端和台式机构建的下一代Flutter

    今天,我们宣布Flutter 2Flutter的重大升级,使开发人员能够为任何平台创建美观,快速且可移植的应用程序。借助Flutter 2,您可以使用相同的代码库将本机应用程序发布到五个操作系统:iOS,Android,Windows,macOS和Linux。以及针对Chrome,Firefox,Safari或Edge等浏览器的Web体验。Flutter甚至可以嵌入到汽车,电视和智能家电中,为环境计算世界提供最普遍和最便携式的体验。

    我们的目标是从根本上改变开发人员对构建应用程序的看法,而不是从您要定位的平台开始,而要从您要创建的体验开始。Flutter使您可以在品牌和设计走在前列的情况下,手工创造美好的体验。Flutter速度很快,可以将源代码编译为机器代码,但是由于我们对有状态的热重装的支持,您仍然可以提高生产力,允许您在应用程序运行时进行更改并立即查看结果。Flutter是开放的,成千上万的贡献者添加了核心框架,并通过软件包生态系统对其进行了扩展。

    今天发布的Flutter 2中,我们将Flutter从移动框架扩展到了可移植框架,释放了您的应用程序,使其可以在各种不同的平台上运行,而几乎没有改变。仅Play商店就已经有超过15万个Flutter应用程序,并且每个应用程序都可以通过Flutter 2免费升级,因为它们现在可以在不重写的情况下扩展到目标台式机和Web。

    来自世界各地的客户正在使用扑,包括流行的应用程序,如微信Grab, Yandex Go, Nubank, Sonos, Fastic, Betterment and realtor.com。在Google,我们依赖Flutter,Google的一千多名工程师正在使用Dart和Flutter构建应用程序。实际上,其中许多产品已经发货,包括Stadia,Google One和Google Nest Hub。

    几个月前,Google Pay为其旗舰移动应用程序改用Flutter,他们已经在生产力和质量上取得了重大进步。通过统一代码库,该团队消除了平台之间的功能差异,并消除了超过一百万行代码。Google Pay还报告说,其工程师的效率要高得多,技术债务大大减少,统一发布流程(如跨iOS和Android的安全性审查和试验)得以实现。

    Flutter on the web

    Flutter 2中最大的公告也许是对Web的生产质量支持。

    Web的早期基础是以document为中心的。但是,Web平台已发展为包含更丰富的平台API,这些API支持具有硬件加速的2D和3D图形以及灵活的布局和绘画API的高度复杂的应用程序。Flutter的Web支持基于这些创新,提供了以应用程序为中心的框架,该框架充分利用了现代Web所提供的所有优势。

    此初始版本特别关注三种应用程序场景:

    • 渐进式Web应用程序(PWA),将Web的访问范围与桌面应用程序的功能结合在一起。
    • 单页应用程序(SPA),一次加载并与Internet服务之间进行数据传输。
    • 将现有的Flutter移动应用程序带到Web上,从而为两种体验启用共享代码。

    在过去的几个月中,在为稳定发布Web支持做准备的同时,我们在性能优化方面取得了许多进展,添加了一个新的由WebAssembly构建的由CanvasKit驱动的渲染引擎。Flutter Plasma是由社区成员Felix Blaschke构建的演示,展示了使用Dart和Flutter构建复杂的Web图形体验的简便性,这些体验也可以在桌面或移动设备上本地运行。

    我们一直在扩展Flutter,以提供最佳的Web平台。最近几个月,我们添加了文本自动填充功能,对地址栏URL和路由的控制以及PWA清单。而且由于台式机浏览器与移动浏览器一样重要,因此我们添加了交互式滚动条和键盘快捷键,增加了台式机模式下的默认内容密度,并增加了屏幕阅读器对Windows,macOS和Chrome OS上可访问性的支持。

    已经提供了使用Flutter构建的Web应用程序的一些示例。在教育工作者中,iRobot以其流行的Root教育机器人而闻名。Flutter对网络的生产支持使iRobot可以利用其现有的教育编程环境并将其移至网络,从而将其可用性扩展到Chromebook和其他浏览器是最佳选择的设备。iRobot的博客文章详细介绍了迄今为止的进展以及为何选择Flutter。

    另一个例子是Rive,Rive为设计师提供了一个强大的工具,可用于创建可发布到任何平台的自定义动画。他们的更新后的Web应用程序现已在Beta中提供,完全由Flutter构建,并且是Flutter在此环境中可以提供的所有服务的一封情书。

    您可以在我们的Medium出版物上的专用博客文章中找到有关Flutter的更多信息。

    台式机,可折叠设备和嵌入式设备上的Flutter 2

    除了传统的移动设备和Web之外,Flutter越来越多地扩展到其他设备类型,我们在今天的主题演讲中重点介绍了三个伙伴关系,这些伙伴关系证明了Flutter的便携性。

    首先,Canonical与我们合作将Flutter带入桌面,工程师们贡献了代码来支持Linux上的开发和部署。在今天的活动中,Ubuntu团队展示了由Flutter重写的新安装程序的早期演示。对于Canonical来说,至关重要的是,它们可以在各种硬件配置上提供坚如磐石而又优美的体验。展望未来,Flutter是Canonical创建的未来台式机和移动应用程序的默认选择

    其次,微软正在继续扩大对Flutter的支持。除了正在进行的合作以在Flutter中提供高质量的Windows支持外,今天微软还将发布对Flutter引擎的支持,以支持新兴的可折叠Android设备。这些设备引入了新的设计模式,其应用程序可以扩展内容或利用双屏特性提供并行体验。在Surface工程团队博客文章中,他们展示了他们的工作,并邀请其他人加入他们,共同完成适用于Surface Duo和其他设备的高质量实现。

    image

    最后,世界上最畅销的汽车制造商丰田汽车宣布了其计划,通过构建由Flutter提供动力的信息娱乐系统,将最佳的数字体验带入车辆。使用Flutter标志着与过去开发车载软件的方式大相径庭。丰田之所以选择Flutter,是因为其高性能和经验的一致性,快速的迭代和开发人员的人机工程学以及智能手机层的触摸机制。通过使用Flutter的embedder API,Toyota可以针对车载系统的独特需求量身定制Flutter。

    我们很高兴继续与丰田和其他公司合作,将Flutter应用于汽车,电视和其他嵌入式设备,我们希望在未来几个月中分享更多示例。

    不断发展的Flutter生态系统

    现在,有超过15,000个Flutter和Dart软件包:来自AmazonMicrosoftAdobeAlibabaeBaySquare等公司;到重要的软件包,如LottieSentrySVG,以及Flutter Favorite软件包,如sign_in_with_applegoogle_fontsgeolocatorsqflite

    今天,我们宣布推出Google移动广告Flutter的测试版,这是一个可与AdMob和AdManager配合使用的新SDK,可提供多种广告格式,包括横幅广告,插页式广告,原生广告和奖励视频广告。我们一直在与几个主要客户一起试用该SDK,例如SuaMúsica(拉丁美洲最大的独立艺术家音乐平台),现在我们准备开放Google移动广告Flutter SDK以便更广泛地采用。

    我们还将宣布对Flutter插件的一些核心Firebase服务进行更新:身份验证,Cloud Firestore,Cloud Functions,Cloud Messaging,Cloud Storage和Crashlytics,包括对可靠的null安全性的支持以及对Cloud Messaging软件包的全面检查。

    Dart:Flutter背后的秘密调味料

    正如我们已经指出的,Flutter 2可移植到许多不同的平台和外形上。轻松过渡到支持Web,桌面和嵌入式的过程很大程度上要归功于Dart,它是针对多平台开发进行了优化的Google编程语言。

    Dart结合了一套独特的功能来构建应用程序:

    • 无意外的可移植性,其编译器可为移动和台式机生成高性能的Intel和ARM机器代码,并为网络提供经过严格优化的JavaScript输出。相同的Flutter框架源代码可编译到所有这些目标。
    • 在桌面和移动设备上进行有状态热重载的迭代开发,以及为现代UI编程的异步,并发模式设计的语言构造。
    • 在所有这些平台上的Google级性能,可靠的null安全性保证了运行时和开发过程中的null约束。

    没有其他语言可以结合所有这些功能。也许这就是为什么Dart是GitHub上发展最快的语言之一的原因。

    Dart 2.12现已发布,是我们自2.0版以来最大的发行版,支持null安全性。可靠的null安全性有可能消除可怕的null引用异常,从而在开发和运行时提供了保证,即如果开发人员明确选择,则类型只能包含null值。最重要的是,此功能不是一项重大更改:您可以按照自己的步调将其逐步添加到代码中,并可以使用迁移工具在准备就绪时为您提供帮助。

    今天的更新还包括FFI稳定实现,使您可以编写可与基于C的API互操作的高性能代码。用Flutter编写的新的集成开发人员和分析器工具;以及许多性能和大小上的改进,这些改进可以进一步升级代码,而无需重新编译即可。有关更多信息,请查看专用的Dart 2.12公告博客文章

    Flutter 2:现已发布

    关于Flutter 2,要说的话远远超出了我们在本文中可以涵盖的范围。实际上,合并的合并请求的原始列表是一个200页的文档!请访问Flutter 2上的独立技术博客,以获取有关许多新功能和性能改进的信息,我们认为这将使现有的Flutter开发人员满意,并立即下载。

    我们还有一个主要的新样本,它展示了刚才提到的所有内容,该样本是与位于加拿大埃德蒙顿的屡获殊荣的设计团队gskinner合作构建的。Flutter Folio是一款剪贴簿应用程序,专为您的所有设备而设计。小屏幕体验是专为捕获内容而设计的;大屏幕支持使用台式机和平板电脑专用的习惯用法进行编辑;网络体验是为共享而量身定制的。所有这些量身定制的经验都共享相同的代码库,该代码库是开源的,可供您阅读。

    如果您还没有尝试过Flutter,我们认为您会发现它对您的应用程序开发体验而言是一次重大升级。在Flutter中,我们提供了一个开放源代码工具包,用于通过单个代码库构建针对移动,台式机,Web和嵌入式设备的美观而快速的应用程序,这些应用程序既可以满足Google的苛刻需求,也可以满足我们客户的需求。

    Flutter是免费的开放源代码。我们很高兴看到使用Flutter 2构建的东西!

    大家如果还想了解更多Android 相关的更多知识点,可以点进我的GitHub项目中:https://github.com/733gh/GH-Android-Review-master自行查看,里面记录了许多的Android 知识点。最后还请大家点点赞支持下!!!

    展开全文
  • 3月4日凌晨,FlutterEngage活动以在线的方式举行。整场活动内容丰富,精彩不断,下面淘系技术专家就带您回顾下这场年度Flutter技术的盛宴。▐Flutter2.0整场活动中...

    3月4日凌晨,FlutterEngage活动以在线的方式举行。整场活动内容丰富,精彩不断,下面淘系技术专家就带您回顾下这场年度Flutter技术的盛宴。


      Flutter2.0

    整场活动中,最令人激动的就是Flutter2.0的发布了。那么Flutter2.0主要带来了哪些新的特性呢?

    一句话总结,Flutter2.0最大的变化是除了之前已经处于stable渠道的移动设备支持外,桌面和Web支持也正式宣布进入stable渠道。

    ▐  Dart2.12


    独一无二的应用构建能力集合

    可移植性

    Dart的高效编译器可以生成针对x86&ARM的机器码,以及针对Web优化过的JS。其广泛支持了各种目标: 移动设备、桌面PC、后端应用以及更多。

    高开发效率

    Dart提供的HotReload特性,支持快速的,可交互的开发体验,不论是原生设备还是Web应用均如此。Dart也提供丰富的对象用于应用开发,包括Isolate模型,async/await并发处理,以及事件驱动的开发模式。

    健壮

    Dart的健全空安全类型系统可以在编译期捕获错误,这一切高度可伸缩可信赖,并被用于支持大量的应用,如高度重要的Google Ads,Google Assistant,运行长达长达十年以上

    健全的空安全

    健全的空安全是自从Dart2.0引入健全类型系统后,Dart语言的一大改进。空安全进一步增强了类型系统,使得开发者可以去捕获空错误,这也是应用崩溃的一大常见原因。通过引入空安全机制,开发者可以在开发期捕获空错误,避免线上崩溃。

    以下是健全空安全的几大原则

    默认非空: 对于类型系统的根本性变化

    默认使用non-nullable

    增量迁移到空安全

    针对以下代码,空安全将带来显著的机器码减小:

    class Animal {
     int age = 0;
    }
    int getAge(Animal a) {
     return a.age; 
    }
    

    持续改善已有功能

    GooglePay包大小通过针对Flutter的优化大小降低了14%

    针对不同的输入,UTF8Decoder最快可以加速20x

    用于集成Dart和C的FFI

    Dart FFI使得你可以利用已有的C库代码,这样不仅提高了可移植性,也可以在性能敏感的场景下充分利用高度调优的C代码。Dart2.12中,FFI已经脱离beta阶段,被认为是stable,可线上使用。并新增了以下特性。

    • 按值传递结构体

    • 结构体嵌套

    • 自动生成FFI绑定

    Dart语言的下一步

    • 类型别名

    • 三相移位操作符

    • 通用元信息注解

    • 静态元编程

    ▐  Web

    FlutterWeb正式进入stable渠道。随着这一初始stable的发布,已有Flutter代码Web平台支持将进入一个新的阶段,换句话说,当你使用Flutter2.0创建App时,Web只是一个新增的设备目标。

    借助Web平台的诸多能力,Flutter构建了可用于富交互Web应用的基础。Flutter For Web(FFW)主要聚焦于高性能及高保真的渲染性能。除过HTML渲染后端外,FFW也新增了一个CanvasKit的渲染后端。以及诸多针对Web的特性,比如Link Widget,使得你的应用在浏览器中的运行可以真的感觉是一个Web应用。

    在这一阶段,FFW主要聚焦以下应用场景:

    Progressive Web Apps(PWA)
    Single Page apps(SPA)
    将已有Flutter移动应用扩展到Web侧

    架构设计

    整个框架使用Dart编写,总计约70w行的Flutter框架核心代码针对所有平台是一致的,不论是mobile,desktop还是现在的web.你既可以使用dartdevc或者dart2js将代码编译成javascript,进而运行在服务器上。

    鉴于Dart本身可以将整个Flutter框架编译成JS,将Flutter运行在Web上的核心问题就是将移动应用的底层C++渲染引擎替换成对应的Web平台API。Flutter并不是简单地将Widget编译成对应的HTML元素。相反,其Web引擎提供了两种渲染后端选择,HTML后端用于降低包大小,并提供广泛的兼容度。

    CanvasKit后端使用了WebAssembly和WebGL来在浏览器Canvas上渲染Skia绘图指令, 具有更高的性能和组件密度,但增加了大约2M的下载包大小。你可以通过以下命令来指定渲染后端。

    --web-renderer html

    --web-render canvaskit

    稳定的Web支持

    Showcase

    Rive

    Rive, 是一个用于创建自定义动画的工具,使用Flutter For Web来重构其代码,并已经beta可用。
    https://rive.app

    Flutter Plasma

    Flutter Plasma展示了一个运行在Safari, Firefox, Edge和Chrome上的Flutter Demo。
    https://flutterplasma.dev

    iRobot

    iRobot教育使用Flutter开发了iRobot Coding App,通过将其在Web可用,提供了随处可用的针对任何人的代码学习体验。

    https://code.irobot.com/#/

    Mobi

    Moi Mobiili, 一个现代移动虚拟网络运营商,近期使用Flutter发布了他们的Web应用。
    https://www.moi.fi

    Web的相关特性

    自定义URL策略

    新的Link Widget

    基于Canvas的文本度量和渲染

    文本交互(选择,拷贝,粘贴等)

    支持桌面表单因子

    展望

    • CanvasKit的进一步支持,比如CORS图片

    • PWA的全离线支持

    • 文本渲染以及功能

    • 插件生态系统的完善


    ▐  桌面支持

    Flutter Desktop也正式进入stable渠道,即初始发布状态。

    Canonical正在同Flutter合作以将Flutter引入桌面,工程师们正在开发代码并且将其部署到Linux上。对其而言,各种各样的硬件配置下提供稳定可靠并且优美的体验是至关重要的。再往后看,Flutter将是后续Canonical桌面以及移动应用开发的默认选择。


    * 文本编辑体验
    * 鼠标输入体验
    * Scrollbar
    * IME支持
    * 桌面额外功能支持
    * 更新的文档支持以将应用发布到特定应用商店

    ▐  折叠设备支持

    微软在持续扩大其对于Flutter的支持。除了在Flutter Engine中持续贡献高质量的Windows支持外,微软正在增加对于新的可折叠Android设备的引擎支持。这些设备引入了新的设计模型,App既可扩展其内容,也可充分利用多屏特性提供side-by-side的体验。

    https://flutter.gskinner.com

    此外,gskinner开发的Folio App,很好地诠释了Flutter在多平台上的运行。通过一套代码,不论是在小,中等还是大的屏幕上,Flutter均可处理好触摸,键盘和鼠标输入,并同平台的特性适应良好(比如Web上的链接以及桌面上的菜单)。

    ▐  嵌入式设备支持

    丰田公司,宣布了他们计划提供市场上最好的机动车上的数字体验,通过使用Flutter来构建娱乐信息系统。使用Flutter标志着同以前车载软件完全不同的开发体验。Toyota之所以使用Flutter,是因为以下的原因:

    • 高性能和AOT一致性

    • 智能手机层的触摸机制

    • 人类工程学

    • 从客户反馈中快速迭代

    ▐  工具链

    FlutterFix

    如今有超过50w的Flutter开发者,我们所面临的的设备平台也越来越多。当框架变得成熟,越来越大的时候,我们越来越需要去避免对于框架的修改,不要去破坏愈发庞大的代码库。然而,为了持续改善Flutter,我们也需要能够去对API做Breaking修改,问题来了,如何去持续改善FlutterAPI而不阻断开发者体验呢?我们提供了FlutterFix。


    Flutter Fix包含了以下特性:

    dart fix——新提供的命令行选项dart fix可用于查找哪些API已经被废弃,如何去更新这些API。

    提供可供fix的选项

    IDE插件集成从而可以通过选择完成修改

    DevTools

    • IDE插件可帮助开发者清零问题,即便是DevTools还未启动。

      通过点击按钮,即可快速找到引发问题的Widget。目前仅支持Layout Overflow异常,但DevTools团队计划去涵盖所有的常见类型异常。

    • 轻易发现高分辨率的图片,跟踪降低过度的包大小与内存使用

    • Inspector新增对于固定Layout的展示能力

    • 内存视图更快,小,易于使用

    • 日志Tab增加搜索与过滤功能

    • 在DevTools启动前即可跟踪日志

    ▐  社区与生态数据

    Flutter1.0发布至今已经两年有余,Flutter共计关闭了24541个Issue,合并了来自765个贡献者的17039个PR。目前共计有50w+的Flutter开发者,超过15w的Flutter应用。

    目前有15k的针对Flutter和Dart的Package,这其中包括了亚马逊,微软,Adobe,阿里巴巴,eBay,Square等公司,也要报关键包诸如Lottie, Sentry, SVG,以及Flutter Favorite推荐的sign_in_with_apple, google_fonts, geolocator和sqlite.

    ▐  其他

    • Add2App中的多引擎实例
      过去,额外的Flutter引擎创建会造成同第一个实例同样的内存开销。在Flutter2.0上,我们将这一内存开销减少到了每个实例180KB,降低了99%之多。由此,我们推荐在你的原生App中去使用多个Flutter引擎实例。

    • DartPad升级到支持Flutter2.0

    ▐  AskFlutter圆桌

    参与这场圆桌的成员有:Andrew Brogdon(主持人)、Eric Seidel(Flutter负责人)、Ian Hickson(Flutter技术负责人)、 Mariam Hasnany(FlutterForWeb PM)、Frank van Puffelen(开发者项目工程师)。
    以下针对一些重要的问题做了摘录:

    主持人

    什么时候FlutterWeb可以供生产环境使用?

    M

    好消息是,今天Flutter Web正式在stable渠道可用。你无需enable任何flags,即可将Web作为Flutter应用的目标设备。也就意味着,对于任何已经有Flutter Web App的开发者,你现在可以用stable渠道来构建你的应用,如果你是要新开发Flutter Web Apps,快来检出把。

    主持人

    什么是Flutter Web的理想用户场景呢?

    M

    这真的是一个好问题,随着这次标志性的发布,我们已经聚焦在构建富交互Web应用的基础。如果你已经有一个Flutter移动应用,你现在可以使用同样的代码来构建其Web版本,然后把你的用户群基础扩展到整个Web应用。不仅如此,这对于构建PWA或者SPAde应用来说也是一个额外的优势。这些应用通常使用大量的动态内容,交互UI,我们通常认为这三种是最适合的。当然为了支持文档为中心的页面我们还需要很多工作去做。比如,传统的HTML页面有很多的文本,静态的内容。所以我想现在我们的确已经很适合来开发Web应用。

    主持人

    目前在Github上有超过8200个Open Issues、Flutter似乎有些人手不足,有没有计划加以改善这种问题或者你们的优先级是什么?

    I

    是的,我们的确有这么多,正如Netlinx(提问者)问道的,我们有8000多处于Open状态的Issues, 但重要的是我们正在尽力去解决他们,比如去年我们在Github上收到了15000多Issues,我们也关闭了15000issues。我们对修复和解决bug的比例还是很高兴的。这一数字表征了我们有多少用户。越多人使用,就有越多的bug提出。我们解决issue的数字是一个贡献者多少的指标,我们很多贡献者。在Github的Flutter Hacker组里,我们有超过200人。一半以上是谷歌员工,大部分贡献者并不是。事实上,部分Flutter Team的人是来自开源项目的,他们可能是微软或者Canonical,或者是使用自己时间的志愿者。不同的人投入的时间不同,他们都给这个项目做出了共享,希望我们可以解决更多的问题,让Netlinx高兴。

    主持人

    Flutter Web什么时候会废弃URL中的#?

    M

    这是一个很好的问题。让我们从为什么它的存在开始,今天我们有时候要使用hash URL策略,这是当我们初始这个Web引擎的时候决定的。也就是说当你有Flutter具名路由的时候,我们基本上是初始化这些路由作为hash的一部分,添加到URL上。随着今天Stable的发布,我们有了新的办法来自定义URL,从URL中丢弃hash。这样你就可以按照自己的方式来构建URL,配置其余的子URL,实现deep link或者说同朋友来一起分享。社区中也有一个叫做URL Strategy的插件,它实现了我们在文档中的指南,以一种很简单的方式。

    主持人

    Flutter依然有很多Mac M1上的兼容性问题,你们是否在加以解决还是说我需要买一个旧的Intel Mac?

    E

    我想说你不需要买一个新电脑,我建议你今天再试试。Flutter2.0上有很多针对M1的优化。其实我们也是同社区同一时间知道M1新发布的这类信息的。当天我们就订购了一个M1的开发机并用它开始工作。我们将其分为了三个桶,用来运行App, 工具链以及开发工具。据我所知,前两个桶其运行都是良好的。当然随着Flutter2.0的正式发布,如果你遇到了M1或者其他的问题,我们想听到你的反馈。正如Ian所说,我们每天有很多Issues,我们想去尽快去解决他们。因此,快去试试Flutter2.0吧,我想它应该会工作良好的,而且也会持续工作很好,因为我们会做更多代码修改。

    I

    M1有意思的是它几乎是一个全新的平台,因为我们以前从来没有用ARM作为host。今天我们发布Web和Desktop,但是,实际上,Apple Silicon是苹果自己的平台,我们要去支持。虽然我们现在已经支持当前release的macOS,但是依然有大量的工作要去做。

    主持人

    Flutter Dart团队是否计划去提供针对App开发的官方指南?类似Android的Jetpack?

    I

    我要笑了,因为你把这个问题丢给我似乎你不知道这个答案一样。我们已经讨论了好几个礼拜了,是的,我们有,实际上,我想或者是今天或者是很快,我们会发一个新的模板到Flutter master分支,这个模板基本上就是这个问题的答案。如何去使用最佳实践来创建和应用,状态复原等等?不仅是这个问题的答案。编程的核心在于针对这些问题有很多的差别,不同的App有不同的需要,我们希望这样特定的模板可以真的帮助到大家,我们也希望后续可以有针对不同架构类型的模板。可能你更喜欢redux而不是我们在模板中使用的。这个今天不会随着Flutter2.0发布,但是我想会在未来几个月的stable版本中发出。

    主持人

    空安全是否会破坏已有App? 是否有一些内容需要被迁移?

    E

    这个问题是你能够去迁移。甚至有个工具可以使用。我想应该叫做dart fix,你可以在你的代码库上运行它,将会帮助你去将代码改成Null aware.

    I

    如果你关注了更早的Keynote,我们有一章是关于他如何工作的。这并不会产生破坏性,你首先要确保你的依赖都已经顺利迁移。如果你的依赖没有迁移,对你来说迁移自己的代码将很困难。这是可能的,但会变的低效。所以,如你所知,如果你有一个包还没有迁移,去让这个包的开发者完成迁移。即便不迁移,也不会有特别的破坏性。正如Keynote提到的,这是为什么我们不把这次发布叫做Dart3.它是向后兼容的。同其他语言一样,Dart空安全里,你可以决定使用哪个版本,Dart2.0或者更高。我们在Flutter Sample仓库里经历过这些,我们观察例子,看看有多少依赖。对他们进行排序,随着Flutter2.0,我们事实上已经处理完了Sample仓库。另一个我们部署空安全方式的好处是,你可以同时编译空安全和非空安全,编译器自己会使用空安全优化。他可以在编译空安全代码的时候知道类型。当到了非空安全代码边界的时候,他会添加判空逻辑。我们称之为非健全空安全。如果我没记错的话,因而你的代码可以在混合模式下执行,也是可以的。

    主持人

    Flutter是否适合3D渲染?

    E

    我来回答吧。我们是把Flutter作为2D系统构建的。其实也有很多人用它来做3D工作。我们提供的API可以用来在一个屏幕上绘制2D对象。要支持3D,人们可以自行创建2.5D或者3D对象,然后通过纹理这样的方式嵌入Flutter.有很多人就这么做。

    事实上Keynote中,我想就提到了Wallace & Gromit app。

    它里面就有2D和3D内容。将二者混在一起是可行的,但是再说一遍,Flutter是针对2D体验设计的。

    主持人

    Flutter对于桌面的支持怎么样?

    I

    是的,Flutter Desktop如今已经在stable渠道可用,尽管我们不认为它是完全stable了,我们支持macOS, Windows和Linux现在。还有什么呢?我们还没有提供你可能需要的所有必须特性,例如,我们目前还没有支持多窗口,尽管这已经在开发了。我们还有很多努力。支持基本的单窗口App是非常稳定的。我自己就写了一个数独应用,运行在Mac上,工作很棒。

    E

    是的,我想多说一些,我喜欢Flutter Desktop,并且他已经在stable渠道可用,他的开发体验很棒。你只需要打开它,Flutter自己就正常运行了,这种工作体验很棒。试试吧,给我们写反馈,我想说,对于我,Flutter Web和Desktop公共的部分很棒。

    主持人

    什么时候首次打开App动画卡顿的问题可以得到解决?

    E

    这是一个普遍的问题,特别是最近几周,我在Reddit上写了很长的帖子,我也正在写一个更长的博客。我想说的是性能一直是Flutter最基础的一个衡量,当我们五六年前讨论这个项目的时候,我们就在说先谈论性能。在我们的任务列表中,性能是排名第一的。这不仅仅是文字,我们通过各种方式去保证这一点。所有的提交都要首先通过各种各样的性能测试,包括所有平台。我们一直在追求性能优化,每天都是如此。尤其当面对首次启动的动画卡顿的问题,我们意识到这个问题已经有一段时间了,尤其是iOS上。过去的一年这个问题在某些场景下愈加恶化。当从OpenGL迁移到Metal的时候,我们不能够在去缓存Shaders,你必须使用GPU去产生这些像素。不论如何,我们已经充分意识到有这样的问题,正在努力去解决,很多人力投入其中。Ian就在攻坚这些问题。

    I

    是的,我一直在关注这些卡顿的issues,这是我现在非常关注的问题。你可以看看Github Probject188, 我内心里一直记着这个数字因为我经常打开它。那里有所有相关的问题。你能做到最好的事情就是,如同我们之前讨论的,如果你遇到应用卡顿,请提一个bug,带上复现代码,包括显示卡顿的视频,以及时间线的trace以说明你的应用在视频中具体在干什么。这是目前对于我们来说最有帮助的了,我们可以去研究特定的Case,他们并不都是因为同样的原因造成的。即便是Shaders的原因,也不一定是因为同样的Shaders。所有这些不同的bug将会被以不同的问题加以解决。

    主持人

    谷歌打算如何在内部使用Flutter Web?

    E

    我不能,你知道的,谈论其他团队的计划,我能说的是有很多团队正常尝试使用Flutter Web. Flutter Web今天刚刚来到stable渠道,我们也正在给内部团队类似的指引,知道的,我们依然在解决各种问题。所以今天并没有什么能宣布的,但是我可以期待有更多的对于Flutter Web的使用。我致力于这个工程技术,认为这是一种更好的方式来写一次代码,可以运行在各个平台上。我们已经看到很多谷歌团队接受了Flutter的这一策略,我想Flutter会继续来到更多的应用场景的。

    I

    我们已经看到内部的很多工具使用Flutter For Web.当这些工具背后没有一个大的团队的时候,他们需要一些有用且可以高效开发的工具。比如,在Flutter团队里,我们使用Flutter Web来开发一些内部工具,用于把公共的Flutter代码迁移到如GooglePay这样的内部仓库中,以及供其他团队使用。这些工具都是使用Flutter写的。

    主持人

    Dart何时支持WebAssembly?

    I

    这意味着很多问题,我们实际上已经在Flutter For Web中使用WebAssembly了。Mariam可能可以谈更多,简单来说,我们有其他两部分WebAssembly和Dart相关。一个是是否直接把Dart编译成WebAssembly,另一个是,是否可使用已经编译成WebAssembly的代码并且将其同Dart链接。对于第二问题而言,把WebAssembly连接到Dart,我想有一个包已经可以做到这一点。虽然不是最方便的方式,但是是可行的。至于将Dart编译成WebAssembly,目前还是不可行的。这需要WebAssembly去实现一些尚不成熟的特性,WebAssembly GC,多线程等等。我们对此很感兴趣,我想WebAssembly有潜力在未来几年真的成为一种统一的互操作语言。

    M

    Flutter Web目前有两个渲染后端,我们默认使用HTML。HTML+DOM+CSS后端这种方式来渲染应用,但我们也在尝试使用CanvasKit来进行渲染。今天我们已经稳定下来,你可以使用CanvasKit,它采用了WebAssembly和WebGLS来渲染App,以在浏览器中替代Skia.针对这两个不同的渲染后端,我们也有一些叫做auto的内容。他可以针对不同的环境来选择渲染器,在桌面中使用CanvasKit,在移动浏览器中使用HTML,以便充分采用两者的优点。

    主持人

    同React,Angular相比你怎么看Flutter Web?

    E

    我首先想到的是,Flutter Web,我们只是在Canvas中绘制,我们认为是直通GPU/CPU,我想这是同React和Angular很大的不同。

    I

    我总是很犹豫去把Flutter同别的技术去做对比,因为每一个都有有效的用户场景。我不想去提React说,React这里好,那里不好。这完全取决于React,我们很高兴能沟通这些其他技术并存,我们也希望整个社区作为一个整体可以写出指南说,你知道什么样的场景下Flutter很适合,什么场景下Flutter For Web很适合,什么样的场景下React很适合等等。

    主持人

    你认为我们应该使用哪个渠道?

    I

    Stage主要的区别是,stable同其他渠道的差别,我们会把fix pick到stable channel。因此你可以看到stable channel每次更新变化都很小。这一点不会发生在dev分支上。我们不会检查dev渠道,如果dev出了问题,他会被在trunk上修掉,然后我们重新会在未来几天生成一次dev.这也不会发生在主线上因为我们一直在主线开发。这里就有风险,越近的代码,越容易有我们没有捕获i的问题。当然,他们最终都会被修复,这是一个权衡。

    ▐  结论

    这是个令人振奋的发布,至此我们可以说Flutter真正做到了以应用为中心,全平台的支持。不论是面向移动,还是面向桌面,或者是Web,Flutter都做到了产品级可用。面对日趋激烈的业务竞争,其可显著降低开发成本与人员不足/不均衡的问题,提供更稳定一致的用户体验。

    但从另一个方面讲,国内市场普遍面临的Legacy System的问题,目前看从官方渠道并没有一个解决方案。尤其是对于桌面端的问题,Windows XP,Win32这样的应用场景下,以及FlutterWeb性能体验兼容度的问题,业务方还是需要一定的备选方案。其他的诸如移动设备性能,包大小,动态性,浏览器兼容度,目前原理上本身已经不是问题,只是为了性能,大小,体验考虑,还是需要做更多的深入细致的优化工作。

    ▐  结论参考资料

    What’s New in Flutter 2.0

    Announcing Dart 2.12

    Flutter web support hits the stable milestone

    Language design funnel

    Flutter design doc

    Flutter Engage Youtube

    Flutter Folio

    Announcing Flutter support for foldable devices

    ????橙子说

    Flutter2.0发布了,你有什么想法,一起到留言区交流呀~

    ✿  拓展阅读

    作者|正物

    编辑|橙子君

    出品|阿里巴巴新零售淘系技术

    展开全文
  • flutter 2.0更新内容

    2021-03-09 13:34:09
    flutter 2.0 更新内容 稳定的web端支持 网页 截止到今天,Flutter的网络支持已经从Beta过渡到稳定渠道。在此初始稳定版本中,Flutter在Web平台的支持下将代码的可重用性提高到另一个层次。因此,现在当您稳定地创建...

    flutter 2.0 更新内容

    稳定的web端支持

    网页
    截止到今天,Flutter的网络支持已经从Beta过渡到稳定渠道。在此初始稳定版本中,Flutter在Web平台的支持下将代码的可重用性提高到另一个层次。因此,现在当您稳定地创建Flutter应用程序时,Web只是该应用程序的另一个设备目标。

    在这里插入图片描述

    dart语言-空安全

    原文:
    Sound Null Safety
    Sound null safety is a significant addition to the Dart language, which further strengthens the type system by distinguishing nullable types from non-nullable types. This enables developers to prevent null error crashes, a common reason for apps to crash. By incorporating null checks into the type system, these errors can be caught during development, thus preventing crashes in production. Sound null safety is fully supported in stable as of Flutter 2, which contains Dart 2.12. For more details, see the Dart 2.12 blog post.
    The pub.dev package repository already has more than 1,000 null safe packages published, including hundreds of packages by the Dart, Flutter, Firebase, and Material teams. If you are a package author, review the migration guide and consider migrating today.

    大致的意思就是空安全,防止系统因为空指针而导致的崩溃。

    桌面稳定版即将支持

    添加了ReorderableListView 部件,长按拖动item的一种。

    平台自适应应用程序

    Flutter Folio 具体再google了解一下

    Google Mobile Ads to Beta

    fluuter 广告的sdk

    IOS风格小部件

    CupertinoSearchTextField IOS搜索栏部件
    该CupertinoFormSection,CupertinoFormRow和CupertinoTextFormFieldRow部件更容易产生与iOS的分段式视觉美学验证表单字段。
    在这里插入图片描述

    新的小部件

    此版本的Flutter附带了两个附加的新小部件,即AutocompleteCore和ScaffoldMessenger。AutocompleteCore表示将自动完成功能纳入Flutter应用程序所需的最低功能。

    final messenger = ScaffoldMessenger.of(context);
    messenger.showSnackBar(SnackBar(content: Text(‘I can fly.’)));
    

    Flutter Fix 自动修复

    这个Flutter Fix 我看了下,能1.x版本api自动转换成2.0新的api,具体命令行操作,也可以使用idea自动操作
    Even if you’re familiar with all of the many Flutter deprecations, the larger the number of changes you have to make in your code, the harder it is for you to apply all of the fixes and the easier it is to make mistakes; humans are not great at these kinds of repetitive tasks. But computers are; by executing the following command, you can see all of the fixes we know how to make across your entire project:
    $ dart fix --dry-run
    If you’d like to apply them in bulk, you can easily do so:
    $ dart fix --apply

    工具扩展 Android Studio / IntelliJ扩展

    工具扩展 VSCode

    经过两年的开发,对Dart的LSP(语言服务器协议)支持现已作为默认的方式推出,该方法是将Dart分析器集成到Flutter扩展的Visual Studio Code中的方法。LSP支持对Flutter开发进行了许多改进,包括能够在当前Dart文件中应用某种类型的所有修复程序,并使代码完成生成完整的函数调用(包括括号和必需的参数)的功能。

    生态系统更新

    Flutter的开发经验不仅包含框架和工具,还包括其他内容。它还包括适用于Flutter应用程序的各种软件包和插件。自上一次Flutter稳定版本发布以来,该领域也发生了很多事情。例如,在摄像机和video_player插件之间,已合并了将近30个PR,以大大提高两者的质量。如果您以前在使用这两种方法时遇到麻烦,则应该再看一遍;我们认为您会发现它们更加强大。
    另外,如果你是一个火力地堡的用户,我们很高兴地宣布,最流行的插件已被带到生产质量,包括空安全的支持,以及全套的参考文档和常见的使用教程使用Android,iOS,网页,和macOS。这些插件包括:

    验证
    云消防站
    云功能
    云消息传递
    云储存
    速溶药
    另外,如果您正在寻找应用程序的崩溃报告,则可能需要考虑Sentry,该公司已经发布了适用于Flutter应用程序的新SDK。
    图片发布图片发布
    Sentry崩溃报告工具现在支持Flutter
    借助Sentry的Flutter SDK,您可以实时收到在Android,iOS或本机平台上发生的错误的通知。您可以在Sentry文档中查看详细信息。
    此外,如果您还没有看到Flutter Community的“ plus”插件,则需要将其签出。他们分叉了Flutter团队最初开发的许多受欢迎的插件,并添加了null安全支持,对其他平台的支持和一整套全新的文档,以及开始修复flutter / plugins存储库中的适当问题。该插件包括以下内容:
    Android闹钟+
    Android Intent +
    电池+
    连通性+
    设备信息+
    网络信息+
    套餐信息+
    传感器+
    分享+
    此时,与Flutter兼容的软件包和插件集的数量超过15,000,这使得很难找到您应该首先考虑的软件包和插件。因此,我们会发布发布点数(静态分析得分),受欢迎程度,喜欢度,并且,对于特别高的质量,会发布那些特别标记为Flutter Favorite的包装。为了及时应对Flutter 2,我们在收藏夹列表中添加了几个新软件包:
    animation_text_kit
    bottom_navy_bar
    chopper
    font_awesome_flutter
    flutter_local_notifications
    just_audio

    重大变化

    我们对Flutter 2进行了以下重大更改,其中许多可以使用dart fix命令或所选IDE中的快速修复程序自动缓解:
    61366继续播放剪辑行为更改
    66700默认FittedBox的clipBehavior为无
    68905从Cupertino颜色分辨率API删除nullOk参数
    69808从Scaffold.of和ScaffoldMessenger.of删除nullOk,为两者创建
    68910从Router.of删除nullOk参数,并使其返回非空值
    68911添加maybeLocaleOf到本地化
    68736在Media.queryOf删除nullOK
    68917从Focus.of,FocusTraversalOrder.of和FocusTraversalGroup.of中删除nullOk参数
    68921从Shortcuts.of,Actions.find和Actions.handler中删除nullOk参数
    68925从AnimatedList.of和SliverAnimatedList.of中删除nullOk参数
    69620从BuildContex中删除不赞成使用的方法
    70726从Navigator.of中删除nullOk参数,并添加Navigator.maybeOft
    72017删除不推荐使用的CupertinoTextThemeData.brightness
    72395.从HoverEvent中删除不建议使用的[PointerEnterEvent,PointerExitEvent]。
    72532删除不建议使用的showDialog.child
    72890删除不推荐使用的Scaffold.resizeToAvoidBottomPadding
    72893删除不赞成使用的WidgetsBinding。[deferFirstFrameReport,allowFirstFrameReport]
    72901删除不推荐使用的StatefulElement.inheritFromElement
    72903删除不推荐使用的Element方法
    73604删除不建议使用的CupertinoDialog
    73745从库比蒂诺[Sliver] NavigationBar删除不赞成使用的actionForegroundColor
    73746删除不赞成使用的ButtonTheme.bar
    73747删除跨度弃用
    73748删除弃用的RenderView.scheduleInitialFrame
    73749删除不赞成使用的Layer.findAll
    75657从Localizations.localeOf删除残留的nullOk参数
    74680从Actions.invoke删除nullOk,添加Actions.maybeInvoke

    完结

    这些信息都是来自官网,我进行了一个删减。如果对你有帮忙,请帮我点赞好吗?谢谢

    展开全文
  • flutter 2.0迁移

    2021-08-10 17:32:53
    统一升级到支持空安全的最新版本(会更新yaml) dart pub upgrade --null-safety 键入提示命令 dart pub upgrade --nullsafety dio connectivity badges oktoast flutter_screenutil cached_network_image pull_to_...
  • Flutter 2.0 发布 | 针对 Web,移动端和桌面端构建的下一代 Flutter 英文原文地址:https://developers.googleblog.com/2021/03/announcing-flutter-2.html 今天,我们正式宣布 Flutter 2 重大升级, 使开发人员...
  • Flutter 使用到的语言为 Dart Dart 语言学习可以看 https://gitee.com/shizidada/dart-learn 创建项目 // --org com.moose.plus 创建包名 // moose_app 应用名称 flutter create --org com.moose.plus moos...
  • 今天,Google发布了 Flutter 2.0的正式版本,至2018年Flutter 1.0版本发布以来,在最近的3年的时间礼,Flutter进行了大量的升级以支持更多平台的开发需求。作为 Flutter 的重大升级,Flutter 2.0 增加了对桌面和 Web...
  • 找到自己的 flutter 目录 比如我的 :C:\Flutter\flutter_windows_2.2.1-stable\flutter\.pub-cache\hosted\pub.flutter-io.cn\provide-1.0.2\lib 在570 行将 final widget = context....
  • Flutter 2.0 环境搭建 for windows

    千次阅读 热门讨论 2021-03-04 21:56:30
    Flutter 2.0 环境搭建 for windows安装Flutter2.0开发环境配置与工具要求下载Flutter SDK文件包添加环境变量检查是否安装成功安装ardroid设备支持(手机等)设置android模拟器使用VSCode编辑flutter项目安装插件创建...
  • Flutter2.0按钮开发

    2021-04-09 13:34:30
    Flutter2.0中按钮的开发 import 'package:flutter/material.dart'; main(){ runApp( MyApp() ); } class MyApp extends StatelessWidget{ @override Widget build(BuildContext context) { return ...
  • 不需要引入其他的依赖插件,flutter框架自带 首先引入文件 import 'package:flutter/services.dart'; 复制文本 ClipboardData data = new ClipboardData(text:"复制的内容"); Clipboard.setData(data); 粘贴 ...
  • flutter2.0 问题小坑记录处理动态加载列表 Andriod 飘红 处理动态加载列表 Andriod 飘红 空安全问题 void main () => runApp(MyApp( items: List<String>.generate(100, (i) => "Item $i") )); ...
  • 之前Flutter1.x版本的时候体验过手机app开发,这是一个Flutter版本的玩安卓app(附源码),就在前不久Flutter2.0正式版已经发布,加入了web支持,索性体验一把。 一、创建工程 常规操作,就是使用android studio编辑器...
  • Flutter2.0 新特性 在3月4日上午9:30直播当中,Flutter团队公布开放了Flutter2.0.0 States版本。从此Flutter正式走向了2.0版本 以下为不知道怎么下载并使用2.0版本小白而生,如果您已经知道,请滑动至底部新特性! ...
  • Flutter 2.0 下混合开发浅析

    千次阅读 多人点赞 2021-03-18 18:38:49
    Flutter 2.0 发布时,其中最受大家关注之一的内容就是 Add-to-App 相关的更新,因为除了热更新之外,Flutter 最受大家诟病的就是混合开发体验不好。 为什么不好呢?因为 Flutter 的控件渲染直接脱离了原生平台,也...
  • Flutter2.0+Dart系列(一)简介及安装欢迎来到Flutter2.0系列Flutter简介新的改变安装构建第一个Flutter app 欢迎来到Flutter2.0系列 你好! 在这个系列我将和大家一起学习讨论Google今年3月份新发布的Flutter2.0...
  • Flutter2.0 项目环境、代码适配升级

    千次阅读 2021-03-15 15:43:47
    flutter doctor查看当前flutter版本不是2.0以上版本 终端cd 到flutter的目录,执行git fetch --all --tags --progress或者git fetch --all --tags --progress -f -P,发现2.0.2 执行git checkout 2.0.2 执行...
  • 3月4日凌晨,Google 发布了Flutter2.0Flutter2.0最大的变化是除了之前已经处于stable渠道的移动设备支持外,桌面和Web支持也正式宣布进入stable渠道。 现在我们动手用Flutter+Github免费搭建一个博客 一、创建...
  • 在 1.26 Flutter release 之前的版本,如果启动多个 Flutter 页面(FlutterActivity)会生成多的 Flutter Engine实例,由于 每个 Engine 非常的占用内存非常的大,很多应用迫切的希望能解决该问题。于是 Flutter ...
  • Flutter2.0插件的编写(Android版本)
  • flutter作为新一代移动UI框架,有很多native不具备的优势,比如开发时热加载,可以立刻看到UI修改效果,提升开发效率,而且同一套代码还可以在多端同时运行,确实节约开发成本,之前公司开始了TT语音的flutter迁移,...
  • Flutter 2.0 踩坑记录

    2021-04-26 18:35:43
    flutter版本:2.0.5 有时间就写,慢慢填坑 目录flutter常用命令空安全支持平台判断Adnroid打包flutter pluginiosWeb启用web支持运行打包起服务Windows启用windows支持运行打包 flutter 常用命令 flutter clean #...
  • Flutter 路由跳转 界面跳转 push 相当于是一个入栈操作 界面返回 pop 相当于是一个出栈操作 封装 Fluro 路由工具类 fluro 提供了对路由入栈和出栈,在跳转和返回界面也可以设置对应参数控制(动画、时间、入栈...
  • 本文原作者: 恋猫de小郭,原文发布于: GSYTechhttps://mp.weixin.qq.com/s/cX-PZZ1FqQm582JwVNm8Zg多余的前言Flutter 2.0 ...
  • Flutter实现百度语音转文字功能1.新建一个flutter项目,来实现View端。2.新建android端的module1.打开flutter里面的Android文件1.新建一个module3.配置百度语音转文字sdk1.下载SDK2.在asr_plugin里面配置SDK1.找到...
  • Flutter2.0 desktop桌面应用的入门开发 准备条件: 首先在一个项目中打开命令行 定位到当前项目位置 让你的项目支持桌面应用 flutter config --enable-linux-desktop flutter config --enable-macos-desktop ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,752
精华内容 1,900
关键字:

flutter2.0