跳到内容
返回博客

2020 年 Material UI 开发者调查:我们的发现

Marija Najdova

@mnajdova

Olivier Tassinari

@oliviertassinari

Matt Brookes

@mbrookes
+

延续去年的传统,我们在几个月前发起了一项开发者调查,共收到 1488 份回复。这是去年的两倍(734 份),因此我们感谢大家的热情参与!调查已结束,现在我们可以给出详细的结果总结。

与去年一样,本次调查再次分为三个部分:“简介”“关于您”“您的产品”

简介

在本节中,我们想了解开发者认为哪些方面做得很好,哪些方面我们应该继续保持,以及哪些领域需要改进,以使库变得更好。

1. 如果您无法再使用 Material UI,您会感觉如何?

Pie chart: 73.3% Very disappointed, 21.3% somewhat disappointed, 5.4% not disappointed.

与去年类似,超过 94% 的受访者表示,如果他们无法再使用 Material UI,他们会感到失望,这非常令人鼓舞。我们将继续努力,希望让更多人进入“非常失望”的类别!

表示不会失望的受访者人数已从 6.5% 降至 5.4%,这在技术上是 17% 的改进!🙂 我们很想更多地了解那些使用 Material UI,但会很乐意使用其他解决方案的人,因此明年可能需要进行后续问题。

2. 您向朋友或同事推荐 Material UI 的可能性有多大?

Bar chart: 0.20% - 1, 0% - 2, 0.20% - 3, 0.20% - 4, 1.02% - 5, 1.97% - 6, 8.71% - 7, 22.52% - 8, 20.88% - 9, 44.29% - 10 Pie chart: 73.3% Very disappointed, 21.3% somewhat disappointed, 5.4% not disappointed.

与去年一样,我们再次计算了净推荐值(推荐者减去批评者)。今年的得分仍然很高,为 61.54%!(由于 NPS 值介于 -100 和 +100 之间,“正”分被认为是“好”,大于 50 是“优秀”,而高于 70 则被认为是“世界一流”)。

3. 您认为谁将从 Material UI 中获益最多?

Word cloud of who would benefit most

此词云由 wordclouds.com 生成。

开发者再次成为我们宇宙的中心 🙂(当然还有“people”和“teams”!)鉴于大多数受访者的职位人口统计,这是可以理解的。在接下来的一年中,我们将努力使您的体验变得更好。

4. 您从 Material UI 中获得的主要好处是什么?

Word cloud of the main benefit of Material UI

此问题的回答非常清楚地向我们表明,我们需要继续做更多的事情。一些最常见的要点是:组件范围、易用性、文档质量以及设计。我们当然会继续努力改进所有这些方面。

5. 我们如何为您改进 Material UI?

由于这些问题的答案差异很大,我们将它们分为不同的类别,并计算了每个关注点被提及的次数。您可以看到所有内容都按降序排列

306更多组件
202更多组件 - ?
15更多组件 - 数据网格
12更多组件 - 轮播
12更多组件 - 图表
10更多组件 - lab to core
10更多组件 - 上传
9更多组件 - 图标
6更多组件 - 大日历
5更多组件 - 布局
4更多组件 - 导航栏
4更多组件 - 嵌套菜单
2更多组件 - 富文本编辑器
2更多组件 - 分割器
1更多组件 - 砌体布局
1更多组件 - 导航栏
1更多组件 - 数字键盘
1更多组件 - 入职引导
1更多组件 - 提示框
1更多组件 - 滚动监听
1更多组件 - 可切换标签页
1更多组件 - 时间线
1更多组件 - 视频播放器
1更多组件 - 虚拟化
1更多组件 - 拖放
1更多组件 - 下拉菜单
1更多组件 - 图像
189自定义
85自定义 - 更容易
22自定义 - 文档
16自定义 - 动态颜色和变体
15自定义 - 改进自定义主题
13自定义 - 提供更多主题(不仅仅是 Material Design)
11自定义 - ?
9自定义 - 无样式组件
8自定义 - 在所有组件中支持系统
8自定义 - 主题编辑器(可视化工具)
2自定义 - 主题库(来自社区)
155文档
46文档 - ?
45文档 - 更多示例
33文档 - 更多模板
16文档 - 对初学者友好
8文档 - 更小的演示
8文档 - 教程
3文档 - 组件的 API 集成
2文档 - 更好的搜索
2文档 - 西班牙语
1文档 - 中文
1文档 - 翻译
1文档 - 详细的 API
1文档 - 更容易发现组件
1文档 - 生成的 DOM
1文档 - 日语
1文档 - 更真实的示例
1文档 - 嵌套属性
1文档 - 插件
1文档 - SSR
64性能
31性能 - ?
32性能 - 打包大小
1性能 - DOM 大小
56样式
19样式 - styled components
7样式 - 文档
5样式 - 更简单
4样式 - ?
3样式 - CSS 语法
3样式 - 更好的暗/亮模式切换
3样式 - emotion
3样式 - 性能
2样式 - 与引擎无关
2样式 - CSS 模块
2样式 - 实用程序类名
1样式 - 原子编译的 CSS-in-JS
1样式 - 保留 jss
1样式 - 移除 JSS
25TypeScript
19TypeScript - ?
3TypeScript - 文档
3TypeScript - 更快的检查
21日期选择器 - 改进
19React Native
13表单
13Material Design 更新
12动画
8动画 - ?
2动画 - 文档
1动画 - 声明式 API
1动画 - SVG
11测试
4测试 - jest
3测试 - 稳定的快照
1测试 - ?
1测试 - 文档
1测试 - 样式
1测试 - testing library 集成
8更主观
8简化
7类组件
7移动端
7更少的破坏性更改
7设计师
2设计师 - 连接设计工具和代码
2设计师 - Adobe XD material
2设计师 - Figma material
1设计师 - ?
6免费与付费平衡
6树形视图 - 改进
6更少抽象的组件
5更多抽象的组件
4可访问性
1可访问性 - ?
1可访问性 - 自动 ID
1可访问性 - 全面审核
1可访问性 - 更多示例
4系统
1系统 - CSS Grid
1系统 - 文档
1系统 - 性能
1系统 - 重新设计断点
3组件一致性
3网格 - 改进

与去年的比较

与去年相比,有几个明显的差异。有些可以用我们的工作来解释,另一些可以用生态系统的发展来解释。每个项目都以 2020 年相对于 2019 年的痛点倍增因子作为前缀。

痛点减少

  • x0:滑块。没有请求。需求基本上已得到满足,特别是随着范围功能的引入。
  • x0.1:严格模式。我们今年修复了很多严格模式兼容性问题。但是,由于 Create React App 已将此模式设为默认模式,因此我们收到了更多相关请求。
  • x0.1:自动完成。我们添加了一个新组件,并解决了自那时以来打开的大量问题。这将从 lab 移动到 v5 中的 core。
  • x0.2:更少的破坏性更改。在 v4 下仅发布小版本一年多,这有很大帮助。但是,我们仍然需要小心 CSS 更改。
  • x0.3:可访问性。我们已经能够利用 a11y 专家在 GitHub 上提出的问题,这些专家通常来自大规模使用 Material UI 的大型公司,以便今年对其进行大量改进。
  • x0.4:Material Design。我们今年在这方面做得不多,至少没有尽我们所能。也许减少是因为关心的人少了?似乎我们开始与构建自定义设计系统的开发者产生更多共鸣。
  • x0.4:TypeScript。将所有演示持续迁移到 TypeScript 以及将所有属性迁移到 IntelliSense 正在取得成效。
  • x0.5:日期选择器。我们今年为它做了很多工作。我们可能仍然需要范围功能,并将其移动到主存储库中(文档迁移等),以保持一致性。
  • x0.7:性能。我们今年没有做太多,所以也许开发者正在通过虚拟化、更新修剪等更有效地利用 React?

增长痛点

  • ∞:表单是一个新项目。似乎我们至少应该与 react-hook-form、formik 和 react-final-form 更紧密地合作。
  • ∞:图表是一个新项目。Material Design 甚至有一个专门介绍日期可视化的页面。
  • x5:自定义主题。
  • x5:更简单的自定义。我们今年通过引入全局类名并降低某些选择器的 CSS 特异性来提高了可定制性。但是,似乎我们现在正在吸引新的受众。我们需要做得更好。
  • x1.5:动画。
  • x1.2:React Native。我们仍然没有相关计划。市场太小,无法通过我们的模式使其可持续发展。
  • x1.1:更多组件。我们提供的越多,开发者要求的就越多!我们将尝试通过企业版来帮助解决这个问题,这既是因为我们发现这是可以维持高级组件开发的最佳模式,也是因为它允许我们再投资于开源组件。第一个抢先体验版将于今年推出。

6. 您选择 UI 库时的主要标准是什么?

Bar chart: 21.99% The design, look & feel, 21.64% Documentation quality, 16.38% Customizability, 8.42% TypeScript integration, 6.89% Comprehensiveness, 5.35% Enterprise ready, 4.68% Bundle size, 4.92% Popularity, 4.45% Accessibility, 2.62% Documentation quality, 1.88% Offered support & help, 0.12% Performance, 0.67% Other.

答案数量限制为 3 个。

关于您

7. 您是如何听说 Material UI 的?

Bar chart: 50.65% Search, 26.18% Word of mouth, 10.76% Social, 5.10% Blog, 7.31% Other.

8. 以下哪项最能描述您目前的职位?

Bar chart: 52.18% Full-stack developer, 27.11% Frontend developer, 11.65% Entrepreneur (I do it all), 3.47% Beginner learning web development, 1.23% Backend Developer, 1.16% UX Designer, 0.34% Student, 0.20% CTO, 2.66% Other.

这是预料之中的 :)

9. 您的组织规模有多大?

Bar chart: 12.30% Hobby / side project, 13.40% Self-employed, 35.60% 2-5 people, 16.10% 6-10, 10.30% 11-20, 5.10% 21-50, 2.50% 51-100, 4.60% 100+

似乎我们在中小型组织中一直很受欢迎,因此我们将继续致力于组件的易用性,同时允许设计师对其进行样式设置以匹配其组织的品牌。

10. 您使用 JavaScript 开发有多长时间了

Bar chart: 3.60% I'm just getting started!, 7.40% 6 months +, 20.80% 1 year +, 27.80% 3 years +, 24.30% 5 years +, 9.80% 10 years +, 4.10% 15 years +, 2.30% 20 years +

我们可以在这里看到开发者经验的正常分布,其中大多数人具有中等水平的经验(在 1 到 5 年之间)。

11. 您使用 React 开发有多长时间了?

Bar chart: 10.70% I'm just getting started!, 15.60% 6 months +, 24.60% 1 year +, 21.40% 2 years +, 23.10% 3 years +, 4.60% Bleeding edge baby! 5 years +

12. 您使用 Material UI 开发有多长时间了?

Bar chart: 20.50% I'm just getting started!, 24.90% 6 months +, 28% 1 year +, 17.40% 2 years +, 7.50% 3 years +, 1.70% I'm a pioneer! 4 years +

13. 在使用 Material UI 之前,您主要使用什么?

Bar chart: 47.08% Bootstrap, 16.04% Custom system, 13.68% Started with Material UI, 6.67% Angular Material, 4.44% Semantic-UI, 3.19% Ant Design, 8.89% Other

与去年类似,似乎大多数受访者之前都使用 Bootstrap。我们还可以看到,自定义解决方案以及其他一些框架已被 Material UI 取代。

14. 您已经构建了多少个基于 Material UI 的项目?

Bar chart: 11.50% 0 (I'm just getting started), 23% 1, 54.80% 2-5, 7.80% 6-10, 2.90% 10+

您的产品

15. 您正在构建什么?

Bar chart: 23.43% Enterprise application, 20.31% Dashboard admin app, 7.40% A design system, 7.40% A set of UI components, 7.37% playing with tech, 7.34% A prototype, 6.40% Landing page, 5.41% e-commerce site, 4.80% CMS, 3.59% Portfolio or resume, 1.88% Blog, 4.69% Other

企业和仪表板位居榜首,是的,我们知道对于你们中的许多人来说,您正在构建的系统是内部系统,但是如果您有任何想作为展示的一部分分享的内容,请通过打开 PR 告知我们。对于那些构建 UI 组件的人,我们也很乐意在相关项目部分向您致意。

16. 您正在使用哪种“交付机制”?

Bar chart: 68.37% Single page app (Create React App, etc), 18.24% Server-side rendered website (Next.js, Gatsby, etc), 6.22% Desktop app (Electron, etc), 4.65% Native mobile app (Cordova, etc), 0.10% React Native, 2.40% Other

17. 您为谁构建它?

Pie chart: 55.17% For my company
22.86% For a client, 16.94% Side project, 5.03% More than one of these.

18. 如果有,您正在使用哪个 JavaScript 框架?

Pie chart: 57.34% Create React App, 16.40% Custom webpack, 12.35% Next.js, 5.40% Gatsby, 8.51% Other.

19. 您正在使用哪种样式系统?

Pie chart: 53.84% Material UI styles (JSS), 20.41% Styled components, 13.01% Good plain CSS, 8.31% CSS Modules, 1.96% Emotion, 0.59% scss, 0.59% sass, 0.09% less, 1.19% Other

响应似乎与去年调查的响应相似,因此我们将推动更好地支持 styled components。

20. 您的组织是否曾经为 UI 组件付费?

Pie chart: 89.90% No, 10.10% Yes

21. 您正在使用哪种类型系统?

Bar chart: 54.08% None
30.87% TypeScript 3.8, 7.31% TypeScript 3.7, 1.90% Flow, 1.55% TypeScript 3.6, 0.98% TypeScript 3.5, 3.31% Other

几乎一半的社区正在使用 TypeScript。明年,它甚至可能比 JavaScript 更受欢迎。

结论

这些数据对我们的团队来说是非常宝贵的。再次感谢您的参与!我们希望解决与用户产生最大共鸣的问题。很明显我们应该

  1. 在组件上提供更多灵活性,无样式组件(纯 Hook?)。
  2. 使自定义更容易,并使用 Material UI 实现自定义主题。也许提供一个主题构建器。
  3. 提供第二个主题,更新当前组件以更好地匹配 Material Design,提供更简单的组件和功能(例如 dropzone、轮播),并提供更好的 DX(其他 UI 库中有一些很好的想法可以应用于 Material UI v5)。
  4. 改进组件的付费高级版本(例如复杂数据网格、日期范围选择器、树形视图拖放、虚拟化等)。

我们将在未来几天更新我们的路线图。我们将在明年进行类似的调查,以跟踪我们的进展。

如果您想继续影响我们的路线图,请在 GitHub 上为您最感兴趣的问题点赞 👍。

How to upvote on GitHub

通过点赞帮助我们确定优先级。