跳到主要内容

31 篇标注“工程”的文章

查看所有标签

React Native 0.80 - React 19.1、JS API 变更、冻结旧有架构及更多内容

·阅读 12 分钟
Jorge Cohen
Jorge Cohen
Meta 工程经理
Fabrizio Cucci
Fabrizio Cucci
Meta 软件工程师
Gabriel Donadel Dall'Agnol
Gabriel Donadel Dall'Agnol
Expo 软件工程师
Christian Falch
Christian Falch
Expo 软件工程师

今天,我们很高兴发布 React Native 0.80!

此版本将我们 React Native 中附带的 React 版本更新到最新稳定版本:19.1.0。

我们还对 JS API 进行了一系列稳定性改进:深度导入现在会触发警告,我们提供了一个新的可选严格 TypeScript API,它提供更准确、更安全的类型。

此外,React Native 的旧有架构现已正式冻结,一旦我们完全淘汰旧有架构,您将开始看到关于将停止工作的 API 的警告。

亮点

React Native 0.79 - 更快的工具和更多内容

·阅读 11 分钟
Alan Hughes
Alan Hughes
Expo 软件工程师
Shubham Gupta
Shubham Gupta
Dream11 软件工程师
Fabrizio Cucci
Fabrizio Cucci
Meta 软件工程师
Nicola Corti
Nicola Corti
Meta 软件工程师

今天,我们很高兴发布 React Native 0.79!

此版本带来了多方面的性能改进以及多项错误修复。首先,Metro 由于延迟哈希而启动更快,并且稳定支持包导出。Android 的启动时间也将因 JS 包压缩的更改等而得到改善。

亮点

React Native 0.78 - React 19 及更多内容

·阅读 11 分钟
Vojtech Novak
Vojtech Novak
Expo 软件工程师
Shubham Gupta
Shubham Gupta
Dream11 软件工程师
Fabrizio Cucci
Fabrizio Cucci
Meta 软件工程师
Riccardo Cipolleschi
Riccardo Cipolleschi
Meta 软件工程师

今天,我们很高兴发布 React Native 0.78!

此版本在 React Native 中包含了 React 19 以及其他相关功能,例如对 Android Vector drawables 的原生支持和更好的 iOS brownfield 集成。

亮点

2024 年 React Native 核心贡献者峰会回顾

·阅读 10 分钟
Michał Pierzchała
Michał Pierzchała
Callstack 技术主管
Szymon Rybczak
Szymon Rybczak
Callstack 软件工程师
Mo Javad
Mo Javad
Theodo 移动主管(英国)
Steven Moyes
Steven Moyes
Microsoft 高级产品经理

每年,React Native 社区的核心贡献者都会与 React Native 团队齐聚一堂,共同塑造这个项目的发展方向。

去年也不例外——只是有一些小小的例外。我们通常会在 React Universe Conf(前身为 React Native EU)前一天在弗罗茨瓦夫的 Callstack 总部会面。2024 年,我们吸取了过去的经验,将峰会举办了两天,以便有更多非结构化的时间在一起。

all-participants

React Native 0.77 - 新的样式特性、Android 的 16KB 页面支持、Swift 模板

·阅读 16 分钟
Vojtech Novak
Vojtech Novak
Expo 软件工程师
Mazen Chami
Mazen Chami
InfiniteRed 软件工程师
Blake Friedman
Blake Friedman
Meta 软件工程师
Rob Hogan
Rob Hogan
Meta 软件工程师

今天,我们很高兴发布 React Native 0.77!

此版本带来了多项功能:新的样式功能,如支持 display: contentsboxSizingmixBlendModeoutline 相关属性,以提供更强大的布局选项;Android 16KB 页面支持,以兼容较新的 Android 设备。我们还在通过将其迁移到 Swift 来实现社区模板的现代化,同时继续支持并维护与 Objective-C 的兼容性,以满足偏好它的开发人员的需求。

React Native 0.75 - 支持布局中的百分比值、新架构稳定化、模板和初始化更新及更多内容

·阅读 16 分钟
Gabriel Donadel Dall'Agnol
Gabriel Donadel Dall'Agnol
Expo 软件工程师
Siddharth Kulkarni
Siddharth Kulkarni
Coinbase 软件工程师
Thibault Malbranche
Thibault Malbranche
Brigad 移动主管工程师
Blake Friedman
Blake Friedman
Meta 软件工程师
Riccardo Cipolleschi
Riccardo Cipolleschi
Meta 软件工程师
Nicola Corti
Nicola Corti
Meta 软件工程师

React Native 0.71-RC0 Android 故障事后分析

·阅读 8 分钟
Nicola Corti
Nicola Corti
Meta 软件工程师
Lorenzo Sciandra
Lorenzo Sciandra
Microsoft 高级软件工程师

现在 0.71 版本已可用,我们想分享一些关于在 2022 年 11 月 4 日发布 React Native 和 Expo Android 构建的第一个 0.71 候选版本时,导致所有 React Native 版本的 Android 构建中断的事件的关键信息。

帮助处理此事件的贡献者最近参加了一次事后会议,详细讨论了发生的事情、我们从中吸取了什么教训,以及我们将采取哪些行动来避免未来发生类似的故障。

为 iOS 15 和 Android 12 准备你的应用

·阅读 4 分钟
Samuel Susla
Samuel Susla
Meta 软件工程师

大家好!

随着今年晚些时候新的移动操作系统版本发布,我们建议提前准备您的 React Native 应用,以避免在版本普遍可用时出现回归。

介绍新的 iOS WebViews

·阅读 3 分钟
Facebook 软件工程师

很长一段时间以来,Apple 一直不鼓励使用 UIWebViews,而是推荐使用 WKWebView。在未来几个月将发布的 iOS 12 中,UIWebViews 将被正式弃用。React Native 的 iOS WebView 实现严重依赖 UIWebView 类。因此,鉴于这些发展,我们为 WebView React Native 组件构建了一个新的原生 iOS 后端,它使用 WKWebView。

这些更改的最后部分已在此提交中落地,并将随 0.57 版本发布。

要选择此新实现,请使用 useWebKit 属性

<WebView
useWebKit={true}
source={{url: 'https://www.google.com'}}
/>

改进

UIWebView 没有合法的方式来促进 WebView 中运行的 JavaScript 与 React Native 之间的通信。当从 WebView 发送消息时,我们依赖一个技巧将它们传递给 React Native。简而言之,我们将消息数据编码到一个具有特殊方案的 URL 中,然后将 WebView 导航到该 URL。在原生端,我们拦截并取消了此导航,从 URL 中解析了数据,最后调用了 React Native。此实现容易出错且不安全。我很高兴地宣布,我们已利用 WKWebView 的功能完全取代了它。

WKWebView 相对于 UIWebView 的其他优势包括更快的 JavaScript 执行和多进程架构。请参阅 2014 年 WWDC 以获取更多详细信息。

注意事项

如果您的组件使用了以下属性,则在切换到 WKWebView 时可能会遇到问题。目前,我们建议您避免使用这些属性

不一致的行为

automaticallyAdjustContentInsetscontentInsets提交

当您向 WKWebView 添加 contentInsets 时,它不会改变 WKWebView 的视口。视口大小与框架大小保持不变。而 UIWebView 的视口大小会实际改变(如果内容内边距为正,则会变小)。

backgroundColor提交

使用新的 iOS WebView 实现,如果您使用此属性,您的背景颜色可能会闪烁显示。此外,WKWebView 渲染透明背景的方式与 UIWebview 不同。请查看提交说明以获取更多详细信息。

不支持

scalesPageToFit提交

WKWebView 不支持 scalesPageToFit 属性,因此我们无法在 WebView React Native 组件中实现此功能。