Flutter 2(1),字节跳动高工面试
在[今天发布的](
)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 软件包:来自[Amazon](
),[Microsoft](
),[Adobe](
),[Alibaba](
),[eBay](
)和[Square 等公司](
);到重要的软件包,如[Lottie](
),[Sentry](
)和[SVG](
),以及[Flutter Favorite](
)软件包,如[sign_in_with_apple](
),[google_fonts](
),[geolocator](
)和[sqflite](
)。
今天,我们宣布推出[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 编程语言。
评论