跳到主内容

52 篇标记为“公告”的帖子

查看所有标签

朝着 Hermes 成为默认引擎的目标迈进

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

我们于 2019 年宣布推出 Hermes 以来,它在社区中的采用率不断提高。Expo 团队(他们维护一个流行的 React Native 应用元框架)最近在 Hermes 成为 Expo 最受请求的功能之一后,宣布了对 Hermes 的实验性支持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
Luna Wei
Meta 软件工程师
Timothy Yung
Timothy Yung
Meta 软件工程师

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

2021 年下半年的 React Native

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

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

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

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

宣布推出 React Native 0.65

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

今天,我们发布 React Native 0.65 版本,包含新版 Hermes、可访问性改进、软件包升级等。

Hermes 0.8 有哪些新功能?

Hermes,Facebook 为 React Native 优化的开源 JavaScript 虚拟机,已升级到 0.8.1 版本。此版本的一些突出功能包括

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

请按照此处步骤在您的应用中选择启用 Hermes(如果您尚未启用),以利用这些新功能和性能提升!

可访问性修复和新增功能

去年 Facebook 承诺 GAAD 计划,以改进 React Native 中的可访问性。0.65 版分享了这项承诺的成果以及其他可访问性方面的胜利!

  • 一些显著的更改包括
  • 允许为 iOS 指定高对比度明暗值。详情请参阅文档
  • 在 Android 上添加了 getRecommendedTimeoutMillis API。这会公开用户在 Android 无障碍选项中设置的首选默认超时值,适用于可能需要额外时间查看或使用控件的用户。

进行了通用修复,以确保 TalkBack/VoiceOver 正确播报组件上的 UI 状态,例如 disabledunselected

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

  • 值得注意的依赖版本更新和注意事项
  • package.json 中现在需要 `react-native-codegen` 版本 `0.0.7` 作为 `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 关于此事的说明

感谢!

GAAD 承诺 - 一年之后

此版本包含来自 61 位贡献者1100 多个提交。感谢所有为本次发布做出贡献和提供支持的人!您可以在此处找到完整的更新日志5 分钟阅读
Alexandra Marlette
·
Alexandra Marlette

React Native GAAD 承诺开源无障碍社区经理

Facebook 承诺 GAAD 计划,使 React Native 具有可访问性已一年,该项目超出了我们的预期。我们很高兴地宣布,该项目将在 2021 年持续进行,并希望向大家更新我们迄今为止的进展。去年对 React Native 中的可访问性差距进行了彻底分析后,我们开始了弥补这些差距的工作。

  • 从项目于 2021 年 3 月在 GitHub 上启动至今,我们最初有 90 个未解决的差距分析问题

  • 社区已关闭 11 个问题。

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

  • 9 个拉取请求已合并。

1 个拉取请求已合并到 React Native 文档中。

GAAD 承诺 - 三月无障碍问题更新

我们要感谢 React Native 社区在过去一年中为实现更易于访问的 React Native 所做的重大贡献。每位贡献者的努力都为改善 React Native 可访问性做出了贡献。 ·
Alexandra Marlette
·
Alexandra Marlette

4 分钟阅读

自我们向 GitHub 社区发布经过彻底审查的差距分析和改进 React Native 可访问性问题列表以来,已经过去了四周。在 React Native 社区的帮助下,我们在改进可访问性方面已经取得了巨大进展。社区成员一直在帮助贡献者,审查测试,并引起对以前可访问性问题的关注。自 3 月 8 日以来,社区已经关闭了六个问题,其中包含四个拉取请求,另有七个拉取请求正在等待审查。

在这项工作继续进行的同时,Facebook 的 React Native 和可访问性团队正在评估在此倡议之前提交的可访问性缺陷和问题,以确定它们是否已被我们当前的差距分析涵盖,或者是否有其他问题需要纳入项目中。一个新问题已经发现并已纳入项目,另外四个直接映射到现有问题,还有两个预计将通过解决现有问题来关闭,这些现有问题解决了其问题的根本原因。

宣布推出 React Native 0.64,支持 iOS 上的 Hermes

感谢所有参与的社区成员。你们确实在使 React Native 对所有人更具可访问性方面取得了显著进展! ·
Mike Grabowski
·
Mike Grabowski

Callstack 首席技术官兼联合创始人

今天,我们发布 React Native 0.64 版本,支持 iOS 上的 Hermes。

在 iOS 上选择启用 Hermes

Hermes 是一个开源 JavaScript 引擎,专为运行 React Native 而优化。它通过减少内存使用、缩小下载大小和缩短应用可用或“交互时间 (TTI)”来提高性能。

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

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

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

默认启用内联 require

内联 require 是 Metro 的一个配置选项,通过延迟 JavaScript 模块的执行直到它们被使用,而不是在启动时执行,从而缩短启动时间。

此功能已存在并被推荐多年,作为文档“性能”部分中列出的选择启用配置选项。我们现在为新应用默认启用此选项,以帮助人们拥有快速的 React Native 应用,无需额外配置。

内联 require 是 Babel 的一个转换,它将模块导入转换为内联。

import {MyFunction} from 'my-module';

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

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

例如,内联 require 将此模块导入调用从文件顶部转换到其被使用的地方。

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

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

之前

之后

有关内联 require 的更多信息,请参见性能文档

使用 Chrome 查看 Hermes 追踪

过去一年,Facebook 赞助了 Major League Hacking 奖学金,支持对 React Native 的贡献。Jessie NguyenSaphal Patro 添加了在 Chrome DevTools 的“性能”选项卡中可视化使用 Hermes 的应用执行情况的功能。

更多信息,请查阅新文档页面

支持代理的 Hermes

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

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

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

GAAD 承诺 - 改善 React Native 可访问性

鸣谢感谢数百位贡献者,他们的帮助使得 0.64 版本得以实现!0.64 更新日志包含了此版本中的所有更改。
Alexandra Marlette
·
Alexandra Marlette

·

2 分钟阅读

大家好,React Native 社区:

2020 年 5 月,Facebook 是第一家签署 GAAD 承诺的公司,通过此举,他们致力于将可访问性作为 React Native 开源项目的核心部分。自 5 月以来,Facebook 一直在认真审查和记录 React Native 中的可访问性差距。迄今为止,差距分析已发现 90 个问题,所有这些问题都已转化为 GitHub 问题

总体而言,我们发现 React Native API 为可访问性提供了强大的支持。然而,我们也发现许多核心组件尚未完全利用平台可访问性 API,并且缺少对某些平台特定功能的支持。

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

为了表彰贡献者的努力,当可访问性问题关闭并附带拉取请求时,贡献者将获得社区经理在 Twitter 上的鸣谢。其拉取请求被代码库接受的贡献者将在我们 React Native 博客的每月问题更新中被突出显示。

React Native 文档更新

与所有可能提供帮助的人分享这项倡议! ·
Rachel Nabors
TwitterFacebook 上关注 React Native GAAD 承诺开源可访问性社区经理,以获取最新进展。
·

Rachel Nabors

  • Facebook 文档工程师
  • 去年,我们进行了用户访谈并发出了一项调查,以了解更多关于人们如何以及何时使用 React Native 文档的信息。凭借从 24 次访谈和 3000 多个调查回复中收集到的数据和指导,我们得以改进 React Native 的文档,今天我们很高兴分享这一进展。
  • 新的入门指南 我们发布了新的入门文档,向没有移动开发背景的人解释什么是原生组件。我们还包含了React 的复习/介绍,以帮助初次接触 React 的人!
  • 新的测试指南 我们与 Vojtech Novak 合作创建了一个新的图解测试指南,向应用开发者介绍了不同类型的测试策略以及它们在 React Native 工作流程中的运作方式。
  • 新的安全指南 我们与 Kadi Kraman 合作创建了一个新的图解安全指南,解释了 React Native 世界中安全的基础知识,并提出了同类最佳解决方案。
  • 更多插图 我们添加了精美的新插图,包括新的 PressableReact Native 组件介绍文档。
  • https://reactnative.net.cn 5 年后,我们终于迁入了我们自己的域名!reactnative.dev 更容易在浏览器地址栏中自动完成,也比我们之前的 github.io 地址更容易输入!
  • 网站设计和架构改进 我们更新了设计和网站架构,以更好地呈现和分类我们的指南,并使 API 参考中的内容更易读。尤其要赞扬 Bartosz Kaszubowski,他的对细节的关注和协作使许多这些改变得以快速实现!

更新了核心组件和 API 文档 我们开展了一次文档更新行动,以更新参考文档!感谢这些及其他参与者,我们得以在 0.62 发布前及时完全更新文档,并为所有文档添加 Snack 示例:Marta DabrowkaAbraham NnajiAhmed Talaat El-HagerMohamed Abdel Nasser AbdouDanilo BrittoMitul SavaniKaio DuartePablo EspinosaJesse KatsumataI Gede Agastya Darma LaksanaSebastião Bruno Kiafuka FernandoMiguel BolivarDani AkashLuiz Celso de Faria AlvesBartosz Kaszubowski。凭借他们的贡献,这些是迄今为止最好、最新的 React Native 文档!