在发布的 Flutter 2 中,我们将 Flutter 从移动框架扩展为可移植框架,让您的应用基本可以不加变动地在多种平台上运行。仅 Google Play 商店就已有超过 15 万款 Flutter 应用,而现在应用可以在无需重写的情况下部署到桌面设备和 web 平台,可以说每款应用都通过 Flutter 2 得到 "免费升级"。
-
flutter.dev https://flutter.dev/
世界各地的用户都在使用 Flutter,包括 WeChat、Grab、Yandex Go、Nubank、Sonos、Fastic、Betterment 和 realtor.com 等热门应用。Flutter 在 Google 也是备受依赖的重要工具,我们有一千多名工程师正在使用 Dart 和 Flutter 构建应用。许多产品已经发布,包括 Stadia、Google One 和 Google Nest Hub。
-
WeChat https://apps.apple.com/us/app/wechat/id414478124 -
Grab https://play.google.com/store/apps/details?id=com.grabtaxi.passenger
-
Yandex Go https://play.google.com/store/apps/details?id=ru.yandex.taxi -
Nubank https://play.google.com/store/apps/details?id=com.nu.production
-
Sonos https://apps.apple.com/us/app/sonos/id1488977981 -
Fastic https://apps.apple.com/us/app/fastic-fasting-app/id1459260306
-
Betterment https://play.google.com/store/apps/details?id=com.betterment -
realtor.com https://apps.apple.com/US/app/id336698281?mt=8
几个月前,Google Pay 改用 Flutter 打造其旗舰移动应用,在生产力和质量上取得重大进步。通过统一代码库,团队消除了平台之间的功能差异,精简了超过 50 万行代码。Google Pay 还表示,其工程师效率大幅提高,技术债务显著减少,并在 iOS 和 Android 系统上统一了安全审查和实验等发布流程。
Flutter web 支持
Web 的早期基础以文档为中心。但 web 平台经过发展,所包含的平台 API 也越发丰富,已实现高度复杂的应用,支持硬件加速 2D 和 3D 图形以及灵活的布局和绘画 API。Flutter 的 web 支持建立在这些创新的基础上,提供了一个以应用为中心的框架,能充分展现现代 web 的所有优势。
-
HTML https://tools.ietf.org/html/rfc1866
-
渐进式 web 应用 (Progressive web apps, PWA),兼具 web 的高覆盖面与桌面应用的强大功能。
-
单页应用 (Single page apps, SPA),只需加载一次即可与互联网服务互传数据。
-
将现有 Flutter 移动应用带到 web,使两种体验共享代码。
在过去几个月准备发布稳定版 web 支持的过程中,性能优化方面也取得了许多进展,增加了由 WebAssembly 构建的由 CanvasKit 驱动的新渲染引擎。Flutter Plasma 是由社区成员 Felix Blaschke 构建的演示,展示了使用 Dart 和 Flutter 构建复杂 web 图形体验的便利性,而且这些体验也可以在桌面或移动设备上原生运行。
-
WebAssembly https://webassembly.org/ -
CanvasKit https://skia.org/user/modules/canvaskit
-
Flutter Plasma https://flutterplasma.dev -
Felix Blaschke https://felixblaschke.medium.com/
我们不断扩展 Flutter,力求为大家提供 web 平台最棒的功能。最近几个月,我们增加了文本自动填充、地址栏 URL 和路由控制以及 PWA 清单。由于桌面浏览器与移动浏览器同样重要,我们添加了交互式滚动条和键盘快捷键,提升了桌面模式下的默认内容密度,并为 Windows、macOS 和 Chrome OS 增加了屏幕阅读器无障碍功能支持。
目前已经出现了一批使用 Flutter 构建的 web 应用示例。在教育工作者中,iRobot 以其广受欢迎的 Root 教育机器人而闻名。Flutter 在 web 平台对生产环境的支持,使 iRobot 能够将现有的教育编程环境搬到 web 上,从而覆盖到了 Chromebook 以及其他以浏览器为主要体验的设备。iRobot 的博文详尽阐述了选择 Flutter 的理由以及使用情况。
-
iRobot https://www.irobot.com/ -
Root 教育机器人 https://www.irobot.com/Root
-
教育编程环境 https://edu.irobot.com/what-we-offer/irobot-coding -
博文: 为所有人打造编程体验 https://edu.irobot.com/the-latest/building-a-coding-experience-for-all
另一个例子是 Rive,他们为设计师打造的强大工具可以将创建的自定义动画发布到任意平台。其新版 web 应用完全由 Flutter 构建,现已进入 Beta 阶段,这也是 web 平台最能展现 Flutter 特色的体验之一。
-
Rive https://rive.app/
您可以从 Flutter web 发布文章中了解更多信息。
-
Flutter web 支持抵达稳定版里程碑 https://medium.com/flutter/web-post-d6b84e83b425
桌面、可折叠和嵌入式设备上的 Flutter 2
第二位合作伙伴 Microsoft 正在继续扩大对 Flutter 的支持。除了持续与我们合作为 Flutter 提供高质量的 Windows 支持外,Microsoft 还发布了对 Flutter 引擎的贡献: 支持新兴的可折叠 Android 设备。这些设备带来了新的设计模式,应用可以扩展内容,或者利用双屏特性提供窗口并排体验。Surface 工程团队在一篇博文中展示了其工作成果,并邀请大家加入他们的行列,共同完成适用于 Surface Duo 和其他设备的高质量解决方案。
-
增加 UWP 支持 https://github.com/flutter/flutter/issues/14967#issuecomment-787678757 -
Surface Duo 播客: Flutter 和可折叠设备 https://devblogs.microsoft.com/surface-duo/flutter-dual-screen-foldable/
持续发展的 Flutter 生态系统
-
Amazon https://pub.flutter-io.cn/publishers/aws-amplify.com/packages -
Microsoft https://pub.flutter-io.cn/publishers/microsoft.com/packages -
Adobe https://pub.flutter-io.cn/publishers/adobe.com/packages -
Alibaba https://pub.flutter-io.cn/publishers/community.opensource.alibaba.com/packages -
eBay https://pub.flutter-io.cn/publishers/ebay.com/packages -
Square https://pub.flutter-io.cn/packages/square_in_app_payments -
Lottie https://pub.flutter-io.cn/packages/lottie -
Sentry https://pub.flutter-io.cn/packages/sentry_flutter -
SVG https://pub.flutter-io.cn/packages/flutter_svg -
sign_in_with_apple https://pub.flutter-io.cn/packages/sign_in_with_apple -
google_fonts https://pub.flutter-io.cn/packages/google_fonts -
geolocator https://pub.flutter-io.cn/packages/geolocator -
sqflite https://pub.flutter-io.cn/packages/sqflite -
Flutter Favorite 项目 https://flutter.cn/docs/development/packages-and-plugins/favorites
我们也为 Flutter 带来了 Google Mobile Ads Beta 版,这款全新 SDK 通过 AdMob 和 AdManager 提供多种广告格式,包括横幅式、插页式、原生和激励视频广告。我们之前已经邀请了一些主要客户 (比如拉丁美洲最大的独立艺术家音乐平台 Sua Música) 先行体验此 SDK,现在计划开放 Google Mobile Ads 供更多的 Flutter 开发者采用。
-
Google Mobile Ads SDK Flutter 插件 https://pub.dev/packages/google_mobile_ads -
Sua Música https://www.suamusica.com.br/
我们还更新了几项核心 Firebase 服务的 Flutter 插件: Authentication、Cloud Firestore、Cloud Functions、Cloud Messaging、Cloud Storage 和 Crashlytics,包括对健全空安全的支持以及对 Cloud Messaging package 的全面改版。
-
FlutterFire https://firebase.flutter.dev/
Dart: Flutter 背后的秘诀
如前所述,Flutter 2 可以移植到许多不同的平台和设备上。之所以能轻松过渡到支持 web、桌面和嵌入式设备,这在很大程度上要归功于 Dart,它是 Google 为多平台开发优化的编程语言。
-
Dart https://dart.cn
Dart 为构建应用提供了一套独特的功能:
-
无意外的可移植性,编译器可为移动和桌面设备生成高性能的 Intel 和 ARM 机器代码,并为 web 输出严密优化过的 JavaScript。相同的 Flutter 框架源代码可编译到所有这些目标平台。
-
在桌面和移动设备上进行有状态热重载的迭代开发,以及为现代界面编程的异步、并发模式设计的语言结构。
-
全平台一致的 Google 级性能,健全空安全保证了运行时以及开发时的空约束。
没有其他语言可以同时提供这些功能,也许这就解释了为什么 Dart 能成为 GitHub 上发展最快的语言之一。
-
GitHut 2.0 https://madnight.github.io/githut/#/pull_requests/2020/4
我们同期发布的 Dart 2.12 是自 2.0 以来最重大的版本更新,支持健全的空安全。健全的空安全能扫除令人头疼的空引用异常,除非开发者明确允许,否则类型在开发时和运行时不可能包含空值。最重要的是,此功能并非重要改动 (breaking change): 您可以按照自己的节奏将空安全逐步添加到代码中,我们也准备好了迁移工具,您可以在准备好之后使用它完成迁移。
这一版本的更新还包括: FFI 的稳定版本,让您可以编写出高性能的代码与基于 C 语言的 API 进行互操作;使用 Flutter 编写的新的集成开发者和性能剖析器工具;以及许多性能改进和尺寸优化,只需重新编译即可让代码得到长足的改进。如需了解详细信息,请查看 Dart 2.12 发布文章。
-
使用 dart:ffi 进行 C 语言互操作 https://dart.cn/guides/libraries/c-interop -
开发者工具 https://flutter.cn/docs/development/tools/devtools/overview -
Dart 2.12 正式发布 https://medium.com/dartlang/announcing-dart-2-12-499a6e689c87
即刻体验 Flutter 2
在介绍 Flutter 2 时,本文由于篇幅限制难免挂一漏万。事实上,被合并的 PR (pull request) 清单就有足足 200 页!请阅读 Flutter 2 技术博文,里面介绍了更多新功能和性能改进,我们认为会让 Flutter 开发者感到满意,也请大家立即下载 Flutter 2 开始体验。
-
Flutter 2.0 更新内容一览 https://medium.com/@csells_18027/fe8e95ecc65
我们还为大家准备了一款全新的示例应用,Flutter Folio,由我们与加拿大埃德蒙顿的获奖设计团队 gskinner 合作完成,这个示例展示了我们刚刚提到的一切内容。Flutter Folio 是一款能在您所有的设备上运行的剪贴簿应用。在小屏幕上体验时会强调展示内容;而在大屏幕上体验时则支持以桌面和平板电脑的习惯用法进行内容编辑;web 体验则着重强调分享。这些定制化的体验都共享相同的开源代码库,可供您自由浏览。
-
Flutter Folio https://flutterfolio.com -
gskinner https://gskinner.com/
如果您尚未尝试过 Flutter,我们相信它将为您的应用开发体验带来巨大的提升。Flutter,一个开源工具包,让您通过单一代码库为移动、桌面、web 和嵌入式设备打造美观、快速的应用,让您即便是在面对 Google 和广大用户的苛刻需求时也能游刃有余。
而且 Flutter 是免费和开源的。您会使用 Flutter 2 构建怎样精彩的应用呢?我们拭目以待!
推荐阅读
文章评论