Shopify:用 React Native 打造移动应用研发的将来
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Shopify <span style="color: black;">研发</span>原生移动应用<span style="color: black;">数年</span>之后,<span style="color: black;">咱们</span>决定完全转向 React Native 来构建所有新的移动应用。做出这个决定并非易事,下面我会做<span style="color: black;">详细</span>解释。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">无论是哪个季度,大<span style="color: black;">都数</span>消费者都是在移动设备上下单的(去年第三季度,<span style="color: black;">咱们</span>有 71%的顾客<span style="color: black;">经过</span>移动设备下单)。黑色星期五(Black Friday)和电商星期一(Cyber Monday)(两者以下合<span style="color: black;">叫作</span> BFCM)是 Shopify 平台商家一年中最繁忙的日子,这<span style="color: black;">时期</span>消费活动最为活跃。在今年的 BFCM 中,Shopify 商家在移动设备上的购买量又<span style="color: black;">增多</span>了 3%,平均占<span style="color: black;">营销</span>额的 69%。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">那样</span><span style="color: black;">为何</span>要切换到 React Native?<span style="color: black;">为何</span><span style="color: black;">此刻</span>切换?这一变化是<span style="color: black;">怎样</span>融入<span style="color: black;">咱们</span>的原生移动<span style="color: black;">研发</span>流程的?答案很<span style="color: black;">繁杂</span>,我在回答这些问题之前需要先交代<span style="color: black;">有些</span>背景<span style="color: black;">状况</span>。</p>
<h2 style="color: black; text-align: left; margin-bottom: 10px;">Shopify 在 2019 年之前的移动<span style="color: black;">研发</span><span style="color: black;">状况</span></h2>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Shopify 的工程文化之一,是押注某些<span style="color: black;">初期</span>技术来<span style="color: black;">帮忙</span><span style="color: black;">咱们</span>快速发展。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">总体而言,<span style="color: black;">咱们</span>更<span style="color: black;">爱好</span><span style="color: black;">选取</span><span style="color: black;">少许</span>技术打造工程<span style="color: black;">基本</span>。这为<span style="color: black;">咱们</span><span style="color: black;">供给</span>了<span style="color: black;">非常多</span>好处:</p><span style="color: black;">咱们</span>在<span style="color: black;">少许</span>几种深度技术中<span style="color: black;">创立</span>了非常<span style="color: black;">明显</span>的专业能力(<span style="color: black;">咱们</span>经常<span style="color: black;">作为</span>核心贡献者);每种技术<span style="color: black;">选取</span>都有其怪癖,但<span style="color: black;">咱们</span>都能深度<span style="color: black;">认识</span>这些怪癖;非<span style="color: black;">初期</span>团队成员<span style="color: black;">亦</span>能贡献、传递和<span style="color: black;">守护</span>他人编写的代码;新人上手更快。<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">与此<span style="color: black;">同期</span>,新技术层出不穷,为<span style="color: black;">咱们</span><span style="color: black;">供给</span>了<span style="color: black;">逐步</span><span style="color: black;">提高</span>生产力或能力的机会。<span style="color: black;">咱们</span>做了<span style="color: black;">非常多</span>尝试,找机会<span style="color: black;">得到</span>大幅度的改进——但到头来,<span style="color: black;">咱们</span>在核心工程中很少采用这些改进。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">当<span style="color: black;">咱们</span>采用这些<span style="color: black;">处在</span><span style="color: black;">初期</span><span style="color: black;">周期</span>的语言或框架时,<span style="color: black;">咱们</span><span style="color: black;">便是</span>在下经过计算的赌注。<span style="color: black;">咱们</span><span style="color: black;">无</span>逃避<span style="color: black;">危害</span>,而是<span style="color: black;">按照</span><span style="color: black;">自己</span>的一系列<span style="color: black;">要求</span>来精心<span style="color: black;">科研</span>、探索和<span style="color: black;">评定</span>此类<span style="color: black;">危害</span>。新技术的<span style="color: black;">危害</span><span style="color: black;">常常</span>是<span style="color: black;">隐匿</span>其中的,与此类似,许多未<span style="color: black;">研发</span>的机遇<span style="color: black;">亦</span>需要<span style="color: black;">咱们</span>去探索。<span style="color: black;">咱们</span><span style="color: black;">思虑</span>的是该<span style="color: black;">怎样</span>减轻这些<span style="color: black;">危害</span>的威胁:</p><span style="color: black;">倘若</span>某项技术<span style="color: black;">再也不</span>被其核心团队支持怎么办?<span style="color: black;">倘若</span>遇到<span style="color: black;">没法</span>修复的错误该怎么办?<span style="color: black;">倘若</span><span style="color: black;">制品</span>的发展方向与<span style="color: black;">咱们</span>的利益冲突怎么办?<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">当 Tobi(<span style="color: black;">咱们</span>的首席执行官)于 2004 年<span style="color: black;">作为</span> Ruby on Rails 的核心贡献者时,Ruby on Rails 还是一个<span style="color: black;">青年</span>且难用的框架。过去<span style="color: black;">非常多</span>年,Ruby on Rails 都被视为一种<span style="color: black;">不足</span>严肃且性能<span style="color: black;">不良</span>的语言。尽管它不是一种主流的技术<span style="color: black;">选取</span>,但<span style="color: black;">初期</span><span style="color: black;">周期</span>投下的赌注使 Shopify <span style="color: black;">持有</span>了超越竞争对手的能量。<span style="color: black;">选取</span> Ruby on Rails 后,团队就<span style="color: black;">能够</span><span style="color: black;">运用</span>比传统编程语言和框架更现代、更抽象的工具来更快地构建软件,并吸引众多<span style="color: black;">区别</span><span style="color: black;">行业</span>的人才。Paul Graham <span style="color: black;">亦</span>谈到了他决定<span style="color: black;">运用</span> Lisp 构建 Viaweb 的决策,这一决策产生了类似的效果;<span style="color: black;">另一</span>,当今 10 家最有价值的 Y Combinator 孵化企业中有 6 家都在<span style="color: black;">运用</span> Ruby on Rails (<span style="color: black;">不外</span>要再说一遍,它还是很不受欢迎)。相比之下,前十大最有价值的 Y Combinator 孵化企业中没有一家在<span style="color: black;">运用</span> Java,而 Java 被广泛认为是久经沙场的企业级语言。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">两年前 Shopify 又做出了类似的<span style="color: black;">选取</span>,决定转向 Google Cloud。<span style="color: black;">针对</span>在 2019 年美国排行第三大的电子商务零售网站<span style="color: black;">来讲</span>,这又是一项令人恐惧的提案——从<span style="color: black;">咱们</span>自己的数据中心迁移到云<span style="color: black;">已然</span>是艰难的决定,而<span style="color: black;">选取</span>一家<span style="color: black;">处在</span>早期<span style="color: black;">周期</span>的云<span style="color: black;">供给</span>商则<span style="color: black;">一样</span>危险。当时<span style="color: black;">咱们</span>看到了产业价值链中的技术发展趋势,<span style="color: black;">因此</span><span style="color: black;">起始</span>专注自己所<span style="color: black;">善于</span>的工作——<span style="color: black;">亦</span><span style="color: black;">便是</span>发扬企业家精神来改进业务,而让其他人(在<span style="color: black;">这儿</span>指的是 Google Cloud)负责<span style="color: black;">守护</span><span style="color: black;">理学</span>硬件、电力、安全性和操作系统更新等同质化的繁重劳动。</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;">React Native 是什么?</h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">2015 年,Facebook 发布并开源了 React Native,当时它<span style="color: black;">已然</span>在 FB 内部被用于移动工程了。React Native 是<span style="color: black;">运用</span> React 构建原生移动应用程序的框架。这<span style="color: black;">寓意</span>着你<span style="color: black;">能够</span><span style="color: black;">运用</span>一流的 JavaScript 库(React)来构建自己的原生移动用户界面。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在 Shopify,这个想法在当时(并且<span style="color: black;">此刻</span>仍然)面临许多质疑,<span style="color: black;">然则</span>许多人看到了它的前景。在<span style="color: black;">机构</span>的下一个 Hackday 中,全<span style="color: black;">机构</span>都抽时间来<span style="color: black;">科研</span> React Native。尽管<span style="color: black;">初期</span>团队看到了这个框架的<span style="color: black;">非常多</span>好处,但<span style="color: black;">她们</span>判断<span style="color: black;">咱们</span>在 2015 年<span style="color: black;">没法</span><span style="color: black;">运用</span> React Native 制作出足以让<span style="color: black;">咱们</span>自豪的应用来。这<span style="color: black;">重点</span>是<span style="color: black;">由于</span>性能表现<span style="color: black;">不良</span>和缺少一流的 Android 支持。而<span style="color: black;">咱们</span>当时<span style="color: black;">认识</span>到的事实是,<span style="color: black;">咱们</span>的确<span style="color: black;">爱好</span>响应式编程模型和 GraphQL。<span style="color: black;">另一</span>,<span style="color: black;">起始</span><span style="color: black;">运用</span> React Native 之后<span style="color: black;">咱们</span>为 iOS 构建并开源了一个函数式渲染器。在 2015 年,<span style="color: black;">咱们</span>将这些技术加入了自己的原生移动<span style="color: black;">研发</span>技术栈,但<span style="color: black;">无</span>将 React Native 用在完整的移动<span style="color: black;">研发</span>工作中。《环球邮报》在介绍<span style="color: black;">咱们</span>初代移动应用的深度<span style="color: black;">报告</span>中<span style="color: black;">说到</span>了<span style="color: black;">咱们</span>的愿景。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">到<span style="color: black;">日前</span>为止,Shopify 上所有移动<span style="color: black;">研发</span>的标准都是原生移动<span style="color: black;">研发</span>。<span style="color: black;">咱们</span><span style="color: black;">创立</span>了分别专注于 iOS 和 Android 的移动工具链和<span style="color: black;">基本</span>团队,以加快<span style="color: black;">咱们</span>的<span style="color: black;">研发</span>工作。尽管这些团队和产出的应用程序都取得了成功,但<span style="color: black;">亦</span>有人认为<span style="color: black;">倘若</span><span style="color: black;">咱们</span>能够做到下列事项,<span style="color: black;">那样</span>团队效率可能会<span style="color: black;">加强</span>:</p>将 JavaScript 和 Web 的力量带入移动<span style="color: black;">研发</span><span style="color: black;">行业</span>;在所有客户端应用程序中采用响应式编程模型;将<span style="color: black;">咱们</span>的 iOS 和 Android <span style="color: black;">研发</span>工作整合到一个技术栈中。<h3 style="color: black; text-align: left; margin-bottom: 10px;">React Native 的工作机制</h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">React Native <span style="color: black;">供给</span>了一种<span style="color: black;">运用</span> JavaScript 构建原生跨平台移动应用程序的<span style="color: black;">办法</span>。React Native 与 React 类似,它<span style="color: black;">准许</span><span style="color: black;">研发</span>人员在 JavaScript 中创建声明式用户界面,为此它在内部创建一个 UI 元素的层次结构树,用 React 术语<span style="color: black;">来讲</span><span style="color: black;">便是</span>创建一个虚拟 DOM。尽管 ReactJS 的输出以浏览器为<span style="color: black;">目的</span>,但 React Native <span style="color: black;">运用</span>平台原生绑定将虚拟 DOM 转换为移动原生视图,这些平台原生绑定<span style="color: black;">运用</span> JavaScript 对接应用程序<span style="color: black;">规律</span>。就<span style="color: black;">咱们</span>的<span style="color: black;">需要</span>而言,<span style="color: black;">目的</span>平台<span style="color: black;">仅有</span> Android 和 iOS,<span style="color: black;">然则</span> RN 社区已<span style="color: black;">奋斗</span>将 React Native 引入了其他平台,例如 Windows、macOS 和 Apple tvOS 等。</p>
<div style="color: black; text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/pgc-image/8c7939b902de4e82b93eff113cd5a466~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1729325411&x-signature=K%2F6hvzjdiUDNhisWvnDhPxRQSC4%3D" style="width: 50%; margin-bottom: 20px;"></div>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">ReactJS 的<span style="color: black;">目的</span>是浏览器,而 React Native 的<span style="color: black;">目的</span><span style="color: black;">能够</span>是移动 API。</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;">在什么<span style="color: black;">状况</span>下<span style="color: black;">咱们</span>不会<span style="color: black;">选取</span> React Native?</h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在某些<span style="color: black;">状况</span>下,React Native 并不是 Shopify 构建移动应用的默认选项。<span style="color: black;">例如</span>说<span style="color: black;">倘若</span><span style="color: black;">咱们</span>有以下<span style="color: black;">需要</span>:</p>在较旧的硬件(CPU <1.5GHz)上<span style="color: black;">安排</span><span style="color: black;">繁杂</span>的处理过程超高性能许多后台线程<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">提醒一句:<span style="color: black;">包含</span>许多开源 SDK 在内的底层库还会是纯原生的。需要接近硬件层时,<span style="color: black;">咱们</span>都<span style="color: black;">能够</span>创建自己的原生模块。</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">为何</span><span style="color: black;">此刻</span>转向 React Native?</h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">这三大<span style="color: black;">原因</span>决定了<span style="color: black;">此刻</span>是做出这一决策的好<span style="color: black;">机会</span>:</p><span style="color: black;">咱们</span>在 2018 年收购了 Tictail(一家移动优先的<span style="color: black;">机构</span>,完全专注于 React Native),从中<span style="color: black;">认识</span>到了 React Native 的发展<span style="color: black;">状况</span>,并在 2019 年进行了 3 项深度<span style="color: black;">制品</span>投资;Shopify 在 Web 端广泛<span style="color: black;">运用</span> React,<span style="color: black;">此刻</span>这一部分的知识就<span style="color: black;">能够</span>在移动端利用上了;<span style="color: black;">咱们</span>看到性能曲线是向上弯曲的(想想<span style="color: black;">此刻</span> Google Docs 和桌面端 Microsoft Office 中的能力对比),并且<span style="color: black;">咱们</span><span style="color: black;">能够</span>像在 Ruby、Rails、Kubernetes 和 Rich Media 中那样对 React Native 进行<span style="color: black;">长时间</span>投资。<h2 style="color: black; text-align: left; margin-bottom: 10px;">2019 年 Shopify 的移动<span style="color: black;">研发</span><span style="color: black;">状况</span></h2>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Shopify <span style="color: black;">持有</span>许多移动平台,供买卖双方<span style="color: black;">经过</span> Web 和<span style="color: black;">咱们</span>的移动应用进行交互。去年,<span style="color: black;">咱们</span>花了<span style="color: black;">有些</span>时间由三支独立的团队在三款应用上针对 React Native 进行了实验:这三款应用分别是 Arrive、Point of Sale 和 Compass。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">从这些实验中<span style="color: black;">咱们</span><span style="color: black;">认识</span>到:</p>在 React Native 中重写 Arrive 应用时,团队认为自己的生产力是<span style="color: black;">运用</span>原生<span style="color: black;">研发</span>时的两倍——即使<span style="color: black;">仅在</span>一个移动平台上对比<span style="color: black;">亦</span>是如此;在 Android 硬件的低功耗配置上测试 Point of Sale 应用时,<span style="color: black;">咱们</span>设置的 CPU 阈值比之前想象的还要低(1.5GHz 对 2GHz);<span style="color: black;">咱们</span>之前估计 iOS 和 Android 之间<span style="color: black;">大概</span> 80%的代码<span style="color: black;">能够</span>共享,结果实践中的超高水平震撼了<span style="color: black;">咱们</span>——95%(Arrive)和 99%(Compass);<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">顺便说一句,即使<span style="color: black;">咱们</span>决定<span style="color: black;">运用</span> React Native 来构建所有新应用,这并不<span style="color: black;">寓意</span>着<span style="color: black;">咱们</span>会自动<span style="color: black;">起始</span>在 React Native 中重写<span style="color: black;">哪些</span>旧应用。</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;">Arrive</h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在 2018 年底,<span style="color: black;">咱们</span>决定用 React Native 重新编写<span style="color: black;">咱们</span>最受欢迎的消费类应用之一, Arrive 。Arrive 是一款<span style="color: black;">评估</span>颇高、表现出色的应用,在 iOS 上<span style="color: black;">持有</span>数百万的下载量。它是很好的候选者,<span style="color: black;">由于</span>它之前<span style="color: black;">无</span> Android 版本。这一<span style="color: black;">奋斗</span>将<span style="color: black;">帮忙</span><span style="color: black;">咱们</span>满足所有<span style="color: black;">巴望</span><span style="color: black;">得到</span> Arrive 的 Android 用户的期待。<span style="color: black;">此刻</span>,iOS 和 Android 上的 Arrive 都是基于 React Native <span style="color: black;">研发</span>的,并且共享 95%的代码。<span style="color: black;">咱们</span>将在以后的博客<span style="color: black;">文案</span>中深入探讨 Arrive。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">到<span style="color: black;">日前</span>为止,这次重写带来了以下结果:</p>与原生 iOS 应用相比,新版本在 iOS 上的崩溃次数更少;推出了 Android 版本;由移动 + 非移动<span style="color: black;">研发</span>人员<span style="color: black;">构成</span>的团队。<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">团队还想出了一种很酷的<span style="color: black;">办法</span>来立即测试进行中的拉取请求。你只需从手机上扫描一条自动 Github 注释中的 QR 码,JavaScript 包就会更新到你的应用中,<span style="color: black;">此刻</span>你运行的<span style="color: black;">便是</span>从这个拉取请求中<span style="color: black;">得到</span>的最新代码。<span style="color: black;">咱们</span>的首席技术官 JML <span style="color: black;">近期</span>在 Twitter 上分享了这一过程。</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;">Point of Sale</h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在 2019 年初,<span style="color: black;">咱们</span>在自己的旗舰级 Point of Sale(POS)应用上展开了为期 6 周的实验,想要<span style="color: black;">晓得</span>它<span style="color: black;">是不是</span>适合用 React Native 重写。<span style="color: black;">咱们</span>学到了<span style="color: black;">非常多</span>东西,其中<span style="color: black;">包含</span><span style="color: black;">咱们</span>的零售商家期望的 POS 响应能力几乎是之前的两倍,<span style="color: black;">由于</span><span style="color: black;">运用</span>这款应用时会养成肌肉记忆,需要边操作应用边同顾客交流。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">为了给<span style="color: black;">咱们</span>的零售商<span style="color: black;">供给</span>最好的服务,并在实体零售环境中<span style="color: black;">认识</span> React Native 的能力,<span style="color: black;">咱们</span>决定在 iOS 上原生构建新版 POS,并在 Android 上<span style="color: black;">运用</span> React Native。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span><span style="color: black;">选取</span>由两支团队并行推进,<span style="color: black;">重点</span>出于以下<span style="color: black;">原由</span>:</p><span style="color: black;">咱们</span><span style="color: black;">已然</span>有了一支具备 iOS 专业知识的团队,其中有许多成员参与构建了原始 POS 应用;<span style="color: black;">咱们</span><span style="color: black;">期盼</span>能与原生 iOS 这一黄金标准对比,对 React Native 的工程速度以及应用性能进行基准测试;为了满足商家的高性能<span style="color: black;">需要</span>,<span style="color: black;">咱们</span>觉得应该在项目<span style="color: black;">起步</span>前等待 Facebook 对 React Native 做完所有架构更新(事实证明,这些更新对<span style="color: black;">咱们</span>的性能场景而言并不重要)。在两个平台上<span style="color: black;">持有</span>两支团队,降低了<span style="color: black;">咱们</span><span style="color: black;">起步</span>项目时面临的<span style="color: black;">危害</span>。<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>在 Unite 2019 上宣布了<span style="color: black;">起始</span>对 POS 做全面重构。预计原生 iOS 和 React Native Android 应用都将在 2020 年发布!</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;">Compass</h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Shopify Start 团队的任务是<span style="color: black;">帮忙</span>创业新人。在<span style="color: black;">机构</span>做出全面决策,准备在 React Native 中编写所有移动应用之前,这支团队深入<span style="color: black;">科研</span>了原生、Flutter 和 React Native 这些可能的技术选项。<span style="color: black;">她们</span>最后<span style="color: black;">选取</span>了 React Native,并在应用商店中上线了 iOS 和 Android 应用(测试版)。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Compass 的<span style="color: black;">第1</span>批版本(iOS 和 Android)只用了不到 3 个月就发布了,iOS 和 Android 版本之间共享约 99%的代码。</p>
<h2 style="color: black; text-align: left; margin-bottom: 10px;">Shopify 在 2020 年之后的移动<span style="color: black;">研发</span>规划</h2>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>在 2020 年有<span style="color: black;">非常多</span>计划。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>会重写<span style="color: black;">哪些</span>原生应用吗?不,这是需要由<span style="color: black;">每一个</span>应用团队独立做出的决定。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>会继续雇用原生<span style="color: black;">研发</span>工程师吗?是的,需要<span style="color: black;">非常多</span>!</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span><span style="color: black;">期盼</span>为 React Native 内核做出贡献,构建平台特定的组件,并继续<span style="color: black;">认识</span><span style="color: black;">每一个</span>平台的精妙之处。这需要深厚的原生专业知识。</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;">合作与开源</h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>认为构建软件是一项团队运动。<span style="color: black;">咱们</span>认同开放 Web、开放源码和开放标准。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>正在赞助 Software Mansion 和 Krzysztof Magiera(Android 版 React Native 的<span style="color: black;">一起</span>创始人),支持<span style="color: black;">她们</span>围绕 React Native 进行开源工作。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>正在与 William Candillon(Can It Be Done in React Native 的主持人)合作进行架构审查和性能改进。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>将与 Facebook 的 React Native 团队紧密合作,<span style="color: black;">科研</span>自动化、第三方库以及<span style="color: black;">经过</span> Lean Core 管理某些模块主题。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>正在与 Discord 合作,以加快 FastList for React Native (一个仅渲染视口中列表项的库)的开源进程,并针对 Android 进行优化。</p>
<h3 style="color: black; text-align: left; margin-bottom: 10px;">React Native 的<span style="color: black;">研发</span>工具链和<span style="color: black;">基本</span></h3>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">当你下注一项技术并深入<span style="color: black;">科研</span>它时,你<span style="color: black;">期盼</span>从这一<span style="color: black;">选取</span>中<span style="color: black;">得到</span>最大的效用。为了使<span style="color: black;">咱们</span>快速构建并<span style="color: black;">得到</span>最大效用,<span style="color: black;">咱们</span>设置了两种类型的团队来<span style="color: black;">帮忙</span> Shopify 的其他团队快速构建。<span style="color: black;">第1</span>个类型是<strong style="color: blue;">工具链</strong>团队,<span style="color: black;">能够</span><span style="color: black;">帮忙</span>他人进行工程设置、集成和<span style="color: black;">安排</span>。第二个类型是<strong style="color: blue;"><span style="color: black;">基本</span></strong>团队,专注于 SDK、代码重用和开源。进入 2020 年,<span style="color: black;">咱们</span><span style="color: black;">已然</span><span style="color: black;">起始</span>让这两支队伍都转变方向,专注于 React Native。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Shopify Ping 应用仅在 iOS 平台上就处理了数十万次客户对话。2020 年,<span style="color: black;">咱们</span>将在旧金山办公室<span style="color: black;">运用</span> React Native 构建它的 Android 版本,<span style="color: black;">日前</span>正在为此招聘人员)。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在 2019 年,Twitter <span style="color: black;">运用</span><span style="color: black;">叫作</span>为 React Native Web 的东西发布了<span style="color: black;">她们</span>的桌面和移动 Web 应用。虽然这项技术有点令人困惑,<span style="color: black;">不外</span>它<span style="color: black;">准许</span>你为 Web 应用<span style="color: black;">运用</span>相同的 React Native 技术栈。Facebook 为该项目聘请了首席工程师 Nicolas Gallager。在 Shopify,<span style="color: black;">咱们</span>将在 2020 年进行<span style="color: black;">有些</span> React Native Web 的实验。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">作者介绍:</strong></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Farhan Thawar 是 Shopify 的<span style="color: black;">途径</span>和移动业务副总裁。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">原文链接</strong>:</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">https://engineering.shopify.com/blogs/engineering/react-native-future-mobile-shopify</p>
页:
[1]