Flutter 和 Dart 包生态系统仍然是开发人员从单一代码库为任何屏幕构建漂亮、高性能应用程序的关键驱动因素。2023年,该生态系统从1月份的3.8万个包增长到12月底的4.8万个包,增长了26%。
截至 2024 年 1 月,Pub.dev 每月活跃用户超过 700,000 人。Flutter 团队仍然热衷于并致力于支持这种增长,并使开发人员能够使用 Flutter 和 Dart 构建并为 Flutter 和 Dart 做出贡献。在本更新中,我们将查看最新的 Flutter 收藏夹、包生态系统虚拟峰会的结果,并分享一些值得注意的更新和需要了解的事情。
新的 Flutter Favorites
Flutter Favorites 项目识别并帮助开发人员发现在应用程序中使用的最高质量的包。我们很高兴地宣布七个新的 Flutter Favorite 包,它们展示了卓越的质量、流行度和社区参与度,使它们成为 Flutter 开发人员的宝贵工具。让我们深入了解一下:
- flame:Flutter 的高性能 2D 游戏引擎,其直观的 API 和丰富的功能使其成为创建视觉效果惊人且引人入胜的游戏的理想选择。查看此代码库,尝试用 flame 构建游戏。
- flutter_animate:这个强大的动画库可以让你的 UI 更加生动,它简化了复杂的动画,并让所有 Flutter 开发者都能使用它。它的声明式语法和丰富的文档使创建流畅且富有表现力的动画变得轻而易举。
- riverpod:一个优雅的包,提供强大而直观的方法来管理应用程序状态。其流线型的 API、性能、可扩展性和可测试性使其成为现代 Flutter 应用程序的引人注目的选择。
- video_player:对于希望在 Flutter 应用中集成视频播放的人来说非常重要,它提供了一个显示视频内容的窗口小部件,支持多种格式和源,包括网络资源和基于文件的视频,这使得它成为构建富媒体 Flutter 应用的通用工具。
- macos_ui:对于针对 macOS 的开发者,这个包允许创建具有在该平台上感觉良好的设计的应用程序。它提供了大量根据 macOS 设计语言设计的窗口小部件和组件,确保您的 Flutter 应用程序不仅在 macOS 上运行良好,而且看起来和感觉像原生应用程序一样。
- fpdart:这个包支持在 Dart 中进行函数式编程,对于实现业务逻辑非常有用,例如,函数式编程范式(如不变性、纯函数和高阶函数)以及 fpdart 对 Dart 类型系统的使用,有助于构建更可维护和可预测的代码。
- flutter_rust_bridge:对于希望在应用中充分利用 Rust 和 Flutter 的开发者来说,flutter_rust_bridge 提供了两者之间的无缝桥梁,它使原生 Rust 代码能够与 Flutter 无缝交互,从而在 Flutter 应用中释放 Rust 的性能和内存安全性潜力。
终止"Happy Paths"计划
我们决定终止 Happy Paths 项目,以便更专注于 Flutter Favorites。Happy Paths 推荐的愿景是帮助你做出明智的决定,找到并使用包来为应用程序添加功能。我们有幸拥有 Flutter Gems 等社区倡议,这些资源可以帮助你导航分类良好的包选项。随着我们专注于 Flutter Favorites 项目,我们将继续根据 Flutter 和 Dart 社区的输入和反馈来改进它。
包生态系统虚拟峰会
2023 年 8 月底,我们举办了首次 Flutter 和 Dart 软件包生态系统虚拟峰会,超过 50 名非 Google 员工和 pub.dev 的 Google 贡献者参加了会议。我们从一个相对较小的受邀者名单开始,以适应非会议式的形式,并从第一次活动中学习,然后再弄清楚它将来会是什么样子。目标是将贡献者聚集在一起进行非会议式的讨论,以在社区中进行规划、教育、学习和分享。我们举行了三场讨论会议,每场讨论的主题都是由注册与会者在峰会前几周投票选出的。
三个讨论主题是
- 构建高质量的包 - 最佳实践和挑战
- 长期维护包 - 可持续模型
- Flutter 和 Dart DevTools 扩展。
活动后调查的受访者为我们提供了富有洞察力的反馈,我们将把这些反馈纳入未来的活动规划中。谢谢你!总体而言,我们认为首次峰会取得了成功。展望未来,我们热衷于与社区合作举办类似的独立活动,或者在更一般的活动中举办专注于 Flutter 和 Dart 生态系统的会议。
对Pigeon包的更新
Pigeon 包是一个代码生成工具,可以简化 Flutter 应用程序和特定于平台的代码之间的通信设置。这使得 Pigeon 在 1) 直接在 Flutter 应用程序和平台原生 API 之间编写自定义集成时(例如在添加到应用程序场景中)以及 2) 在编写 Flutter 插件以为平台提供 Dart API 界面时非常有用。本机 API。它由 Flutter 团队维护,今年以来该团队对该软件包进行了以下显着改进:
- 增加了对Swift、Kotlin和C语言的支持(C语言支持Windows)。
- 现在强制执行空安全。
- 扩展了对基本数据类型的支持,例如,
enums
被添加为支持的类型。 - 添加了可空参数。
- 在主机和 Flutter API 上添加了错误处理。
- 改进了工具的人体工程学,使其更容易和更直观地使用。例如,我们添加了对默认参数和命名参数的支持。
在1月份的v5.0.0和12月份的v15.0.2之间,有比我们在这里列出的更多的开发,所以请在更改日志中查看所有更改!
DartPad中的软件包
DartPad 支持一组固定的软件包,您可以通过单击屏幕右下角的信息图标来查看这些软件包。 Google 的 Flutter 和 Dart 团队持续审查包请求并确定其优先级。如果您希望将某个包添加到 DartPad,请将您的大拇指添加到现有的包建议(如果有),或者根据您的建议打开一个新 issue。
对pub.dev规范主题的建议
2023 年,我们推出了软件包作者在 pubspec 文件中使用 1-5 个自由文本主题标记其软件包的功能。目标是通过添加某种形式的包分类来改善潜在用户对包的发现。我们已经看到该功能得到了良好的采用,许多软件包都被标记了。我们正在探索一项通过合并实际上相同的主题(例如,小部件和小部件)来改进该功能的提案。我们邀请社区分享反馈或为此规范化主题问题贡献 PR。
现在就是这样!要与令人惊叹的包作者社区互动,请查看 #package-authors Discord 频道(您首先需要加入 Flutter Discord 服务器)。