跳到主要内容

53 篇带有“announcement”标签的文章

查看所有标签

Hermes 迈向默认引擎

·14 分钟阅读
Xuan Huang
黄轩
Meta 软件工程师

2019 年我们发布 Hermes 以来,它在社区中的采用率不断提高。维护 React Native 应用流行元框架的 Expo 团队最近宣布了对 Hermes 的实验性支持,这是Expo 最受关注的功能之一。流行的移动数据库 Realm 团队最近也为其 Hermes 版本发布了Alpha 支持。在这篇文章中,我们想重点介绍过去两年我们取得的一些最激动人心的进展,以推动 Hermes 成为 React Native 最佳的 JavaScript 引擎。展望未来,我们相信通过这些改进以及更多即将到来的改进,我们可以使 Hermes 成为跨所有平台的 React Native 默认 JavaScript 引擎。

React Native 的多平台愿景

·阅读时长 9 分钟
Christine Abernathy
Christine Abernathy
Meta 开发者倡导者
Eli White
Eli White
Meta 软件工程师
Luna Wei
魏璐娜
Meta 软件工程师
Timothy Yung
Timothy Yung
Meta 软件工程师

React Native 在提升移动开发标准方面取得了巨大成功,无论是在 Facebook 内部还是在行业其他地方。随着我们以新的方式与计算机互动,以及新设备的不断发明,我们希望 React Native 能够为每个人服务。尽管 React Native 最初是为了构建移动应用而创建的,但我们相信,专注于多平台并根据每个平台的优势和限制进行开发具有共生效应。当我们将这项技术扩展到桌面和虚拟现实时,我们已经看到了巨大的好处,我们很高兴能分享这对 React Native 的未来意味着什么。

2021 年下半年 React Native

·6 分钟阅读
Luna Wei
魏璐娜
Meta 软件工程师

过去一年,我们的世界发生了巨大的变化,React Native 也不例外。我们迎来了团队新成员(我们很高兴最终能与他们面对面交流!),我们的项目日趋成熟,新的机遇也随之而来。我们很高兴在这篇文章以及未来的其他文章中与大家分享这一切!

在 Facebook,我们的团队以半年为周期工作。每个半年度,我们都会审查我们的战略,制定计划,并在内部共享。今天,我们想与你们,我们的社区,分享我们的下半年计划。

2021 年下半年对于 React Native 来说是一个激动人心的半年。我们的重点领域包括培养社区、开始向开源推广新架构以及推动技术向前发展。

发布 React Native 0.65

·3 分钟阅读
Luna Wei
魏璐娜
Meta 软件工程师

今天我们发布了 React Native 0.65 版本,其中包含新版 Hermes、辅助功能改进、包升级等。

Hermes 0.8 有什么新功能?

Hermes,Facebook 针对 React Native 优化的开源 JavaScript 虚拟机,已升级到 0.8.1 版本。此版本的一些亮点功能包括:

您可以在此处找到完整的 Hermes 更新日志

如果您尚未启用 Hermes,请在此处按照步骤操作,将您的应用选择使用 Hermes,以利用这些新功能和优势!

辅助功能修复和新增功能

去年,Facebook做出了 GAAD 承诺,以提高 React Native 的可访问性。0.65 版本分享了这项承诺的结果和其他可访问性方面的改进!一些值得注意的更改包括:

  • 允许为 iOS 指定高对比度的亮色和暗色值。有关更多详细信息,请参阅文档
  • 在 Android 上添加了getRecommendedTimeoutMillis API。这会公开用户在 Android 的辅助功能选项中设置的首选默认超时值,适用于可能需要额外时间查看或操作控件的用户等。
  • 常规修复,以确保 TalkBack/VoiceOver 正确播报组件上的 UI 状态,例如 disabledunselected

您可以在此处关注或贡献我们尚未解决的可访问性问题!

值得注意的依赖版本更新和注意事项

  • 现在需要将 react-native-codegen 版本 0.0.7 作为 package.json 中的 devDependency
  • JCenter 已停止服务并变为只读。我们已将 JCenter 作为 Maven 仓库移除,并更新了依赖项以使用 MavenCentral 和 Jitpack。
  • OkHttp 已从 v3 升级到 v4.9.1。有关更改的更多详细信息,请参阅升级到 OkHttp 4
  • 升级到 Flipper 0.93 以支持 Xcode 12.5。有关详细信息,请参阅Flipper 更新日志
  • 支持 Android Gradle 插件 7
  • Apple Silicon 需要链接器解决方法。有关此问题的@mikehardy 的说明

谢谢!

此版本包含了来自 **61 位贡献者**的 **1100 多个 commit**。感谢每一位为此版本做出贡献和支持的人!您可以在此处找到完整的更新日志

GAAD 承诺 - 一年后

·阅读时长5分钟
Alexandra Marlette
亚历山德拉·马莱特
React Native 的 GAAD 承诺开源无障碍社区经理

距离 Facebook 承诺致力于让 React Native 变得无障碍(Accessibility)已过去一年,而该项目取得了超出我们预期的进展。我们很高兴地宣布,该项目将持续到 2021 年,并想向大家更新我们迄今为止的进展。去年对 React Native 的无障碍差距进行了彻底分析后,我们便开始着手弥补这些差距。

我们从 90 个悬而未决的差距分析问题开始,从 2021 年 3 月项目在 GitHub 上启动到现在

  • 社区关闭了 11 个问题。

  • React Native 团队评估并关闭了 19 个问题。

  • 合并了 9 个拉取请求。

  • 一个拉取请求合并到 React Native 文档中。

我们希望表彰并感谢 React Native 社区在过去一年中为使 React Native 更具无障碍性所做的重大进展。每位贡献者的努力都对改进 React Native 的无障碍性做出了贡献。

GAAD 承诺 - 3 月辅助功能问题更新

·阅读时间:4 分钟
Alexandra Marlette
亚历山德拉·马莱特
React Native 的 GAAD 承诺开源无障碍社区经理

我们向 GitHub 社区发布了一份经过彻底审查的差距分析和问题列表,旨在改善 React Native 的无障碍功能,至今已有四周。在 React Native 社区的帮助下,我们已经在改善无障碍功能方面取得了巨大进展。社区成员一直在帮助贡献者,审查测试,并提请注意以前的无障碍功能问题。自 3 月 8 日以来,社区已通过四个拉取请求关闭了六个问题,另有七个拉取请求正在审查中。

在这些工作持续进行的同时,Facebook 的 React Native 和无障碍功能团队正在评估在此项倡议之前提交的无障碍功能错误和问题,以确定它们是否已包含在我们当前的差距分析中,或者是否存在需要纳入项目的其他问题。目前已发现一个新问题并将其纳入项目,另外四个问题直接映射到现有问题,还有两个问题预计将通过解决现有问题的根本原因而关闭。

感谢所有参与的社区成员。你们真正推动了 React Native 更具可访问性的进程!

发布 React Native 0.64,支持 iOS 上的 Hermes

·阅读时间:4 分钟
Mike Grabowski
Mike Grabowski
CTO 兼 Callstack 联合创始人

今天我们发布 React Native 0.64,它附带了对 iOS 上 Hermes 的支持。

Hermes 在 iOS 上可选启用

Hermes 是一个为运行 React Native 优化的开源 JavaScript 引擎。它通过减少内存占用、减小下载体积以及缩短应用可交互时间(TTI)来提升性能。

随着本次发布,我们很高兴地宣布,你现在也可以在 iOS 上使用 Hermes 进行构建。要在 iOS 上启用 Hermes,请在你的 Podfile 中将 hermes_enabled 设置为 true,然后运行 pod install

use_react_native!(
:path => config[:reactNativePath],
# to enable hermes on iOS, change `false` to `true` and then install pods
:hermes_enabled => true
)

请记住,iOS 上的 Hermes 支持仍处于早期阶段。我们在进行进一步基准测试时将其保留为可选启用。我们鼓励您在自己的应用程序上试用它,并告诉我们它的效果如何!

内联 require 默认启用

内联要求是 Metro 的一个配置选项,它通过延迟 JavaScript 模块的执行直到它们被使用(而不是在启动时)来改善启动时间。

这项功能已经存在并被推荐了几年,作为一种可选的配置选项,列在我们的 文档的性能部分。我们现在将此选项默认启用,以帮助人们轻松获得快速的 React Native 应用,而无需额外的配置。

内联要求是一种 Babel 转换,它将模块导入转换为内联。例如,内联要求将模块导入调用从文件顶部转换到它被使用的地方。

之前

import {MyFunction} from 'my-module';

const MyComponent = props => {
const result = MyFunction();

return <Text>{result}</Text>;
};

之后

const MyComponent = props => {
const result = require('my-module').MyFunction();

return <Text>{result}</Text>;
};

更多关于内联引入(Inline Requires)的信息,请参阅 性能文档

使用 Chrome 查看 Hermes 跟踪

在过去的一年中,Facebook 赞助了 Major League Hacking fellowship,以支持对 React Native 的贡献。Jessie NguyenSaphal Patro 添加了使用 Chrome DevTools 中的 Performance 标签来可视化使用 Hermes 的应用程序执行的能力。

有关更多信息,请查看 新文档页面

支持 Proxy 的 Hermes

我们已在 Hermes 中添加了 Proxy 支持,从而实现了与 react-native-firebase 和 mobx 等流行社区项目的兼容性。如果您一直在使用这些包,现在可以迁移到 Hermes 项目。

我们计划在未来的版本中使 Hermes 成为 Android 的默认 JavaScript 引擎,因此我们正在努力解决人们在使用 Hermes 时遇到的剩余问题。如果您有任何阻碍您的应用采用 Hermes 的问题,请在 Hermes GitHub 仓库 中提交 issue。

React 17

React 17 不包含面向开发者的功能或重大的破坏性更改。对于 React Native 应用,主要的变化是 新的 JSX 转换,使文件不再需要导入 React 即可使用 JSX。

有关 React 17 的更多信息,请访问 React 博客

主要依赖版本变更

  • 放弃了 Android API 级别 16-20。Facebook 应用程序始终放弃对使用量足够低的 Android 版本的支持。由于 Facebook 应用程序不再支持这些版本,并且是 React Native 的主要测试平台,因此 React Native 也放弃了支持。
  • 需要 Xcode 12 和 CocoaPods 1.10
  • Node 最低支持版本从 10 提升到 Node 12
  • Flipper 版本提升至 0.75.1

致谢

感谢数百位贡献者使 0.64 版本成为可能!0.64 版本更新日志 包含了此版本中的所有更改。

GAAD 承诺 - 改进 React Native 辅助功能

·阅读时长2分钟
Alexandra Marlette
亚历山德拉·马莱特
React Native 的 GAAD 承诺开源无障碍社区经理

各位 React Native 社区成员,

2020 年 5 月,Facebook 成为首家做出 GAAD 承诺的公司,他们承诺将可访问性作为 React Native 开源项目的一个核心部分。自 5 月以来,Facebook 一直在仔细审查和记录 React Native 中的可访问性差距。到目前为止,差距分析已经发现了 90 个问题,所有这些问题都已被翻译成 GitHub issue

总的来说,我们发现 React Native API 为辅助功能提供了强大的支持。然而,我们也发现许多核心组件尚未充分利用平台辅助功能 API,并且缺少对某些特定平台功能的支持。

贡献者的热情和多样性一直在 React Native 的发展中发挥着关键作用,这些无障碍功能方面的差距为现有和新的贡献者提供了绝佳的机会。如果您对为 React Native 做出贡献感兴趣,我们鼓励您加入我们,共同使 React Native 更易于访问。

为表彰贡献者的努力,当一个无障碍功能问题被关闭并附带拉取请求时,贡献者将收到我们社区经理在 Twitter 上的鸣谢。其拉取请求被接受到代码库中的贡献者将在 React Native 博客的每月问题更新中受到表彰。

请加入我们,共同使 React Native 对所有人更具辅助功能。

您可以如何提供帮助:

  • 新贡献者应该阅读 贡献指南,并在 React Native GitHub 中浏览 46 个 适合初学者的 issue 列表。

  • 有兴趣处理需要更多工作的贡献者,请访问 改进 React Native 可访问性项目页面,查看需要他们 React Native 知识的 GitHub 问题。

  • 对更新 React Native 文档以反映正在解决的可访问性差距感兴趣的技术作者,请访问 React Native 文档

  • 与任何可能提供帮助的人分享这项倡议!

  • TwitterFacebook 上关注 GAAD Pledge 开源可访问性社区经理(React Native)以了解最新进展。