阅读 6236

[译] Airbnb 在 React Native 上下的赌注(一):概述

Airbnb 中的 React Native

在 2016 年,我们在 React Native 下了一个大赌注。两年后,我们准备与大家分享我们的经验并说明接下来的计划。

多年以后,我们仍然可以在 Airstream 预订一次会议

这是我们系列博客文章中的第一篇,其中概述了我们在 React Native 这方面的经验以及 Airbnb 移动端以后会发展成什么样子。

当 Airbnb 在 10 年前推出时,智能手机还处于萌芽阶段。自那以来,智能手机已成为驾驭日常生活的一个重要工具,尤其是现在随着越来越多的人开始周游世界。作为一个能够为数百万人提供新形式旅行的社区,拥有一个世界级的应用显得至关重要。因为移动设备通常是旅行者们远离家时的主要或唯一的通信形式。

自 2008 年我们的前三名客人入住 Rausch 街以来,移动端用户的预定量每年增加数百万。我们的应用让房东能够在行程中管理他们的房源,同时也为旅客提供灵感,用手指轻轻一点就能发现新的地方和体验。

为了跟上移动应用的加速步伐,我们已经将团队扩展到 100 多名移动工程师,以实现新的体验并改进现有的工作。

在 React Native 上下赌注

我们不断评估新技术,使我们能够改善客人和房东在使用 Airbnb 时的体验,能够响应迅速的同时,保持良好的开发者体验。在 2016 年,其中一项技术就是 React Native。那时候,我们意识到移动端对我们业务的重要性,但是却没有足够的移动端工程师来完成我们的目标。因此,我们开始探索替代方案。我们的网站主要是由 React 构建的。在 Airbnb,它一直个是非常有效和普遍受欢迎的 Web 框架。因此,我们将 React Native 视为一个让更多工程师接触移动端开发的机会,并且也可以利用它的跨平台特性来更快地发布代码。

当我们最初决定开始投入 React Native 时,也知道存在一些风险。我们需要为代码库添加一个新的、快速迭代且未经验证的平台。该平台有可能对代码库进行分割,而不是统一。我们也知道,如果要使用 React Native,就想把它做好。我们的目标是:

  1. 作为一个组织,允许我们快速迭代
  2. 保持原生的质量标准
  3. 为移动端编写一次产品代码,而不是两次
  4. 改善开发人员的体验

我们的经验

在过去的两年中,在这个实验上下了不少苦功夫。我们已经在应用中构建了一个令人难以置信的强大集成,实现了复杂的原生功能,如共享元素转换,视差和地理位置以及与我们现有的本地基础架构(如网络,实验和国际化)桥接。

我们使用 React Native 为 Airbnb 推出了一系列关键产品。React Native 使我们能够推出更多体验活动,这是 Airbnb 的一项全新业务,以及从评论到礼品卡的数十项新功能。这些功能都是在我们没有足够的工程师来完成目标的时候构建的。

不同的团队对 React Native 都有丰富的经验。React Native 有时被证明是一个极好的工具,但有时也会在技术和组织上提出挑战。在本系列中,我们详细介绍了我们的经验以及接下来要做的事情。

在第二部分,我们列举了 React Native 作为一项技术的有效性和缺陷。

在第三部分,我们列举了与构建跨平台移动团队相关的一些组织挑战。

在第四部分,我们重点介绍了我们今天与 React Native 的立场以及它在 Airbnb 中的未来。

在第五部分,我们会谈到从 React Native 中学到的最重要的知识,并利用它们使得原生表现地更好。

如果发现译文存在错误或其他需要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可获得相应奖励积分。文章开头的 本文永久链接 即为本文在 GitHub 上的 MarkDown 链接。


掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 AndroidiOS前端后端区块链产品设计人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划官方微博知乎专栏