跳到主内容

贡献给 Flutter

了解如何为 Flutter 项目及其周边生态系统做出贡献。

Dash and her friends excited for your contribution

如果您想为 Flutter 项目及其周边生态系统做出贡献,我们非常欢迎您的帮助!

Flutter 是一个开源项目,它的蓬勃发展离不开社区的贡献。无论您是修复 Bug、提议新功能、改进文档,还是在社区中帮助他人,您的努力都非常宝贵且令人感激。

本页面概述了您可以如何参与,内容并不详尽。如果您在贡献过程中需要帮助,或希望获得更多入门建议,可以考虑在 Flutter 贡献者 Discord 上寻求帮助。

使用 Flutter 进行开发

#

即使只是使用 Flutter 并提供反馈,也是一种有价值的贡献!

提供反馈

#

分享您的反馈和使用体验有助于 Flutter 团队理解并优先处理开发者的需求与痛点。

您可以通过多种渠道提供有价值的反馈,包括:

  • 为现有问题点赞 (Upvoting)

    如果您遇到了已经被报告的问题,请考虑点赞,以帮助 Flutter 团队了解其重要性。

    请避免仅发送空的点赞、+1 或类似评论。如果您有额外信息,例如复现步骤或补充的版本信息,请务必在评论中提供这些详情。

  • 报告新 Bug

    如果您在使用 Flutter 时遇到了尚未被报告的 Bug,请新建一个 issue 并提供复现信息。

  • 请求功能

    如果您认为 Flutter 应该添加或实现某项功能,但尚未有人提议,请新建一个 issue,提供所有相关信息以及您的使用场景。

  • 参与调查

    Flutter 团队偶尔会进行开发者调查和研究。为了帮助理解痛点并改进 Flutter 开发者体验,请考虑尽可能详细地提供反馈。

    若要注册参与未来的 UX 研究,请访问 flutter.dev/research-signup

  • 讨论提案

    对 Flutter 的重大变更通常会通过设计文档进行讨论。请考虑阅读并为您相关的内容或应用提供反馈。

    要查找当前的设计文档和提案,请查看 GitHub 问题数据库中带有 design doc 标签的 issue

  • 审查 Pull Request

    如果您熟悉 Flutter 的某个特定领域,或者某个特定问题的解决方案对您很重要,请考虑审查打开的 Pull Request,在您的应用中进行测试,并提供任何相关的反馈。

尝试 beta 通道

#

为了确保 Flutter 的稳定性并改进即将推出的功能,请在发布版本进入稳定通道前帮助进行测试。

请考虑在 beta 通道测试版本,既可用于日常开发,也可用于测试与您应用的兼容性。

如果您有任何反馈或遇到性能退化问题,请务必向 Flutter 团队报告

若要开始,请立即切换beta 通道,并处理任何必要的迁移

贡献代码

#

直接改进 Flutter 代码库及相关工具。

Flutter 框架

#

在内置组件中发现了 Bug、对新组件有想法、热衷于添加测试,或者只是对 Flutter 的内部原理感兴趣?请考虑为 Flutter 框架本身做出贡献,为每个人改进 Flutter 的核心。

要了解如何为 Flutter 框架做出贡献,请查阅 Flutter 贡献指南

Flutter 引擎

#

对实现 Flutter 底层的原语和平台集成感兴趣,或者擅长图形编程?请考虑为 Flutter 引擎做出贡献,使 Flutter 变得更加轻便、高效且强大。

要了解如何为 Flutter 引擎做出贡献,请查阅 Flutter 贡献指南 以及如何 搭建引擎开发环境

Flutter 软件包

#

为 Flutter 团队维护的第一方软件包做出贡献。第一方软件包为应用提供了核心功能,并封装了各种平台特定的功能。

要了解如何为第一方软件包做出贡献,请查阅 Flutter 贡献指南 以及针对软件包的 贡献指南

DevTools

#

Dart 和 Flutter DevTools 做贡献是一个很好的入门选择,因为它的设置门槛相对较低。增强和修复这些工具可以极大地改善 Flutter 开发者的体验,甚至有助于您开发自己的应用。

若要开始,请查阅 DevTools CONTRIBUTING.md 指南

网站基础设施

#

修复 Bug、改进无障碍访问性或为 Dart 和 Flutter 网站添加功能。

如果您熟悉 Web 开发或网站生成,为 Dart 和 Flutter 网站做出贡献是提升 Flutter 开发者学习体验的绝佳途径。

根据您的兴趣,您可以选择为以下项目做出贡献:

Dart SDK

#

为 Dart 语言及其周边工具做出贡献,优化这门构建了 Flutter 卓越开发者体验基础的客户端编程语言。

Dart 的贡献工作流略有不同,如果您感兴趣,请务必查看其 贡献指南构建指南

代码示例

#

改进或添加展示 Flutter 功能的示例,帮助那些倾向于通过示例学习的开发者。

您可以随时分享自己的示例或模板,也可以为 Flutter 官方维护的示例做出贡献:

编写文档

#

为 Flutter 文档做贡献,无论以何种形式,都是您能为 Flutter 提供的最具影响力的帮助方式之一。

Flutter API 文档

#

许多 Flutter 开发者都非常依赖 API 文档,无论是在线查阅还是在代码编辑器中查看。

无论您是有意编写新文档、更新现有内容、添加相关的代码片段,还是创建图表等视觉内容,您的贡献都将受到每一位 Flutter 开发者的赞赏。

若要开始,请查阅 Flutter SDK 贡献指南,特别是关于 API 文档 的章节。

文档网站

#

考虑为本网站做出贡献,引导开发者学习和探索 Flutter。

要了解如何为 Flutter 文档网站做出贡献,请查阅该网站的 贡献文档

您也可以为 Dart 网站 做出贡献,改进构建了 Flutter 基础的客户端编程语言的文档。要了解如何贡献,请查阅 dart-lang/site-www 贡献文档

分类处理问题

#

通过分类处理传入的 Bug 报告和功能请求来帮助 Flutter 团队。

Flutter 的问题数据库 中有许多可以提供帮助的方式,包括但不限于:

  • 确定问题的有效性
  • 确保问题的可执行性
  • 记录受影响的版本
  • 添加复现步骤
  • 识别重复或已解决的问题
  • 解决或重定向支持请求

若要开始帮助处理问题,请阅读关于 如何在问题数据库中提供帮助 的说明,并了解 Flutter 处理 问题分类 (Issue triage)问题规范 (Issue hygiene) 的方法。

加强软件包生态系统

#

帮助成长并支持 pub.dev 上现有的 Dart 和 Flutter 软件包集合。

为您所使用的软件包做出贡献

#

为了回馈您依赖的软件包并可能帮助您自己的应用,请找到您依赖的软件包并为它们做出贡献。

要为某个软件包做出贡献,请导航至其在 pub.dev 网站 上的页面,并找到侧边栏中链接的仓库。

在贡献前,请务必遵守每个软件包的贡献指南,与维护者讨论您的贡献,并牢记 Flutter 的 行为准则 (Code of conduct)

开源您应用中的可复用功能

#

如果您在应用中构建了一个很酷的通用组件或实用工具,请考虑将其提取为软件包并发布到 pub.dev。

若要开始,请了解 创建 Dart 软件包开发 Flutter 软件包。准备好将软件包发布到 pub.dev 网站 后,请遵循 发布软件包 的指南和最佳实践。

#

创建或参与封装原生 SDK 或 Web API 的软件包。

在创建新软件包之前,请先尝试在 pub.dev 网站 上寻找是否有您可以直接使用或为其做出贡献的现有封装。

根据 SDK 和平台的不同,您可能需要 编写平台特定代码、使用 JS 互操作、使用 package:http 封装 REST API,或者用 Dart 重新实现所需功能。

如果您计划创建新软件包,请了解 创建 Dart 软件包开发 Flutter 软件包。准备好发布后,请遵循 发布软件包 的指南和最佳实践。

支持社区

#

帮助其他开发者学习 Flutter,并在他们构建应用时取得成功。

帮助其他开发者

#

分享您的 Flutter 知识和专业经验,帮助其他 Flutter 开发者取得成功。

这可以采取多种形式,从在您的公司启动 Flutter 帮助频道,到在公共论坛回答问题。

Flutter 开发者寻求帮助的一些常见地点包括:

举办活动

#

与志同道合的 Flutter 爱好者联系,组织本地、全国性甚至虚拟活动。活动形式不限,可以是学习小组、简单的聚会,也可以是研讨会或黑客马拉松。

如需灵感和支持,请查看现有的 Flutter 活动,了解更多关于 Flutter 社区 的信息,并探索 Flutter Meetup 网络

发布关于 Flutter 的内容

#

与更广大的 Flutter 社区分享您的见解和项目。

分享 Flutter 相关内容并与开发者社区联系的方式有无数种。一些常见的渠道包括:

  • 博客文章
  • 视频教程
  • 短文分享
  • 论坛帖子
  • GitHub 讨论
  • 链接聚合平台

发布或分享您热衷的任何内容,如果您不确定发什么,可以考虑发布开发者经常询问的主题。

如果您发布的平台支持打标签,请考虑添加 #Flutter#FlutterDev 标签,以帮助其他开发者找到您的内容。