你的位置:ag百家乐九游会 > ag平台真人百家乐 > AG百家乐有什么窍门 Airbnb死磕React Native惨败,微软却玩出花!Office、Outlook全线接入,Copilot成最大赢家

AG百家乐有什么窍门 Airbnb死磕React Native惨败,微软却玩出花!Office、Outlook全线接入,Copilot成最大赢家

发布日期:2025-01-03 04:26 点击次数:192

作家 | Lorenzo Sciandra

译者 | 刘雅梦

讨论 | Tina

尽管微软领有自家的跨平台框架,但它成为了 React Native 的最大用户之一。

在 QCon London 上,微软高档软件工程师 Lorenzo Sciandra,同期亦然 React Native 的贵重者,向咱们解释了微软为何选拔这种跨平台开发要领,尽管微软已有.NET MAUI 和 C++ 跨平台决策。

微软将 React Native 应用于一系列产物,包括 Microsoft Office、Outlook、Teams、Xbox、Skype 和 Xbox 上的 Microsoft Store。并不是所有这些应用要领王人全王人使用 React Native 进行开发,因为他们平方采取了一种被 Sciandra 称为“棕地开发”的本领,即使用 React Native 在现存的代码库中添加新功能。这亦然微软八成快速将 Copilot 集成到所有原生应用要领中的原因之一。

以下是 Sciandra 的演讲原文:

张开剩余96%

适合性更正:微软如何哄骗

React Native 获取政策上风

挑选一项本领就像通达一盒巧克力,你恒久不知谈会遭受什么。

不论是启动一个样貌、打造一款产物、开发一款应用要领,照旧遐想一种全新体验,咱们王人需要作念出本领选拔。随机候,这些决策是基于那时掌合手的信息。关联词,可能过了六个月,这个决策就被推翻,甚而带来出东谈主意象的贫苦。

今天,我想分享的是,在往时六年多里,微软如何顺利地使用 React Native。为此,我将从两个角度切入:既会探讨一些本领上的原因,也会波及非本领层面的考量。但愿这些内容能为你提供一些启发,成为你下一次决策会议的有劲参考。

适合性

让咱们先来谈谈适合性。先谈下“为什么 React Native 在某些情况下是特殊想的”的本领原因。

上图简直即是咱们需要了解的对于 React Native 的所有内容。它基本上是一种在原生平台上制作应用要领的要领,通过通讯层,使用 Java 来完成禁闭的责任,基本上包括了所有那些你需要让应用要领对用户有用的责任。

快速强调一下这少许,当咱们刚开动讨论 React Native 时,React Native 的一个重要上风是,屏幕上渲染的所有内容,即使你编写的代码是 Java,最终也会是全王人原生的代码。

在上头的场景下,咱们有一个相配简便的 React Native 应用要领,但 VS Code 调试器中的节点向咱们展示了它的 UINavigationController 和 UIViewController 的。它最终王人是原生的,天然,这是 React native 的一个重要特质。

上图可能更能直不雅地展示 React Native 应用的里面结构。看起来有点复杂,但稍后你会明显为什么需要这样多的模块。基本上,咱们确乎有原生 UI 和原生模块,同期也有 Java React Native UI 代码、Java 模块和业务逻辑。当你猜度 React Native 应用要领时,你平方要处理的即是这些。

在一个普通的、圭臬的、原始的 React Native 样貌中,这即是所谓的 greenfield(绿地)要领。这意味着你如故使用 React Native 重新开动构建你的应用要领了。咱们的开发东谈主员只需运行或使用 Java,然后编写代码,终局用户就不错与他们眼中的正常原生应用要领进行交互了。

React Native 开箱即用,适用于 iOS 和 Android,因此只需一个代码库,你的用户群就能翻一番。

要是你以前从未使用过 React Native,况且只对出动宇宙感兴味,那么我需要向你解释它的责任道理。它以前的责任方式是,通讯层有一个 Java 端,还有一个苹果、安卓端,用于与 iOS 和安卓 UI 以及原生模块通讯。这些东西最终会出现时用户的应用要领中。

要是你曾在出动畛域责任过,那么现时你可能如故知谈不错带来权臣的上风了。事实上,React Native 在加速产物上市时刻方面作念得相配好,不单是是在这个基本场景中,咱们稍后会谈到。

事实上,这即是事情开动变得道理的所在。莫得什么能梗阻咱们将 Java 膨胀到更多的原生平台,而这正值即是咱们所作念的。

在微软,咱们为 macOS 和 Windows 开发了 React Native,因为天然,咱们是一家以桌面为主的公司。咱们看到了使用基于 Java 的惩办决策来开发应用要领的后劲,咱们决定对其进行膨胀并我方使用它。咱们并不是唯独一个押注 React Native 来扫尾这种适合性的东谈主。事实上,React Native 不错缓助的平台相配多。现时有两大推能源,一个是围绕 visionOS 的,另一个是由亚马逊和英国筹商公司 Theodo 缓助的电视平台。这如故为 React Native 引入了一定进程的适合性,使其不仅局限于单一平台,这少许相配道理。

现时,让咱们为这种适合性再加多一个维度。我想强调的是,最终,用户仍然会在他们的原生操作系统上与原生应用要领进行交互。

当用户使用一个普通的应用要领,比如 Swift 或 Kotlin 应用要领时,他们所作念的只是与使用 100% 原生 UI 和原生模块构建的 100% 原生应用要领进行交互。

这两个方块与我之前展示的相配相似。这推行上即是 React Native 畛域中所谓的 brownfield(棕地)应用要领。这意味着,当你有一个事前存在的原生应用要领并注入 React Native 时,你不错添加通讯层,并开动在 React Native 中编写一些功能和体验。这意味着你不错在原生应用要领中添加 React native 中的某些部分。咱们甚而不错更进一步。这个图现时太复杂了,是以让咱们把它简化少许。

现时,让咱们进入一个更接近微软的场景,咱们有多个应用要领。假定咱们有一个应用要领,咱们称之为 Outlook。咱们再拿一个应用,咱们称之为 Office。要是这两个场景王人如故存在桥接层,况且咱们想用 Java 编写一些代码在咱们的原生应用要领中重用,那么咱们只需编写一次,然后将其部署在不同的主机应用要领上即可。

事实上,这恰是咱们在微软频繁作念的事情。

基本上,咱们有许多纷乱的单体存储库,即使只是出动代码并让一个主机应用(比如 Outlook、Office)来使用在另一个单体存储库中构建的体验,也需要付出一定的起劲。因此,在 React Native 畛域,咱们为我方开发了一些器用,这些器用如故开源。

进一步来说,正如我之前展示的那样,brownfield 的场景与终局用户使用普通应用要领的情况相配相似,但对咱们而言,咱们添加了一个通讯层。咱们添加了一些 Java 代码,而这些代码并不是免费的。天然,咱们引入了一些支拨。举例,咱们可能会加多打包的大小。这可能会导致启动变慢,或者某些交互可能会变慢。React Native 推行上适合性很强,你不错作念的事情之一即是用自界说的东西替换通讯层。推行上,在咱们的一个开源仓库中,咱们确乎有一个名为 react-native-host 的扫尾。在某些情况下,这种方式可能看起来有点奇怪,但它能有用惩办问题。

我为什么需要它呢?让我给你展示一个略微复杂一些的例子。假定你有一个相配大的应用要领,里面有许多页面,你如故用 React Native 构建了其中的两三个页面。

也许其中一个有五个页面那么深。另一个需要两个页面那么深。还有一个则需要十个页面。这是一个简直没东谈主会看到的页面。要是你不知谈用户什么时候会使用它,或者不了解每个体验,那么你基本上唯有一个通讯层。你需要在一开动时就竖立它,然后但愿在某个时候它会变得有用。要是你有一个自界说的通讯层,你不错根据特定需求来颐养这个通讯层的行动,举例,只在你到达特定体验之前的倒数第 n 个页面上才竖立它。你不错根据每种特定需求进行来进行增减。

这甚而不是我的最终形态。当我前边向你展示业务逻辑是理会的时候,那是特殊为之。因为当你编写一些与做事器交互的代码时,举例当你有一个大型企业应用要领,你需要为不同的做事与许多后端交互时,这少许更为迫切,然后一个新功能就出现了。

基本上,该业务逻辑简直是圭臬的 Java、Type 代码。要是咱们想快速为 Web 构建一些东西,咱们有为 Web 应用要领构建的 Java 代码,况且咱们想快速将其引入咱们的原生平台中,但咱们只构建了业务逻辑,要是咱们这样作念会若何样?推行上,咱们在微软发现,有一种使用 React Native 的特殊模式,基本上不错称之为 headless。这允许你的应用要领团队全王人原生地构建 UI。他们不错径直与后端团队为 Web 应用要领提供的 Java 代码进行交互,而无需为你的应用要领重新开动重写。

在微软,看起来更像是这样。咱们有一个 brownfield 场景。咱们有自界说通讯层。Headless 是 React Native 更道理的用例之一,它不错加速上市时刻,尤其是当你领有一系列跨不同平台的应用要领时。

微软的 React Native

应用要领——政策原因

此外,我还展示了许多使用 React Native 的不同要领。此时你可能会想,它看起来到底是什么样的?微软的 React Native 应用要领是什么样子的?天然,谜底取决于场景。咱们确乎有许多应用要领使用 React Native。咱们有 Office、Outlook 团队,咱们王人以 brownfield 的方式使用 React Native。咱们还有有 Xbox 和 Skype,它们以 greenfield 方式使用。

不仅如斯,咱们确乎蕴蓄了许多训戒。举例,上图被称为筹商东谈主卡或及时扮装卡,它是一段不错在所有这些平台上运行的代码。

在某种进程上,咱们在微软王人有访佛的 React Native 应用要领,是圭臬的 greenfield 要领。

这两种场景要复杂得多,彼此通讯,分享代码,有些场景比其他场景需要更多的定制。有些比另一些需要更多地使用 React Native。

React Native 的伟大之处在于,这两种场景王人是有用的 React Native 案例,这确乎开辟了一个充满可能性的宇宙。咱们王人知谈,本领自身并不是赢得指导层疼爱的重要身分。比如,我如故让它快了 10 毫秒,快了 100 毫秒。重要在于政策原因和经济效益。他们更护理的是如何通过本领更正来创造贸易价值,如何勤俭时刻和资源。

谈到政策,我想从 2022 年发生的事情开动讲起。那时,不同团队的开发东谈主员走进咱们办公室,问咱们为什么选拔使用 React Native 而非其他本领?令东谈主骇怪的是,讲话相配娴雅。莫得东谈主彼此申斥。这对我来说是一个很好的要领,不错找到一堆 很好的政策道理(GSR)。

第一个推行上是可雇佣性。也许你们中那些些更纯属 Java 畛域的东谈主可能如故看到了这少许。麦肯锡《2023 年本领趋势权衡》中有一句相配道理的援用,他们相配清楚地指出,缺少东谈主才是制约增长的首要问题,天然,这里的东谈主才是能确切为你责任的东谈主。

当谈到 React Native 时,它是基于 Java 的,并它在职何你能找到的做事器上王人是不变的,Java 位居榜首,是最大的开发东谈主员库。它确乎为最大的开发者群体通达了大门。因为它是 Java,是以这也意味着它推行上不错更快地从不同的样貌中吸纳东谈主才。

第二个很好的政策原因是无邪性。我如故提到过,brownfield 是使用 React Native 的一种相配道理的方式。它确切伟大的所在在于它不局限于单一的范围。与其他一些出动惩办决策比拟,你不错让它尽可能多或尽可能少地成为你的应用要领的一部分,尤其是跨平台惩办决策。这推行上条款你扬弃一切,重新开动,竖立一个新的堆栈。React Native 确乎允许你试水,只需引入少许点,望望它是否有用,况且在如何将其引入代码库以及它能作念些许方面真实很无邪。

第三个是它的活跃性,天然,我指的是它算作一个开源样貌相配活跃。我不想过多讨论本领细节或 React Native 的责任道理,因为要是到了这个地步,我基本上会说,“忘掉这些,因为下个月可能会有变化”。

这是因为有一个名为“新架构”(New Architecture)的样貌,它推行上是 React Native 的从新遐想。多年来,Meta 的团队与咱们以过甚他公司合作,发现 React Native 的现存架构存在一些相配严重的瓶颈。Meta 花了大量时刻和元气心灵,为 React Native 开发了一个新的架构,旨在惩办所有这些瓶颈问题。

这是一个新进程,基本上,咱们正在从一个单一的瓶颈转向一个完整的接口,从而允许 Java 和原生之间有更多的浸透性。我不知谈你是若何想的,但 React Native 是在 2015 年推出的,是以差未几有 9 年了。九年往时了,有些许开源样貌仍然相配活跃呢?他们正在作念迫切的责任,旨在匡助每个东谈主,而不会像 Angular 2 那样具有破碎性。

此外, 还有一些更道理的政策原因,比如跨行业的协同效应,这对微软的范围来说可能愈加迫切。

在我展示的应用案例中,还有一些大型科技公司也在进行访佛的探索,比如 Meta 和亚马逊。当咱们需要为样貌争取资源时,咱们不错强调与这些公司的合作,标明咱们正在奴婢行业趋势。这种“借力打力”的策略,时时能更容易获取高层经管层的认同。记取,与行业巨头合作,不仅能扩大影响力,还能促进本领交流,扫尾互利共赢。

天然还有第五点,亦然最迫切的一个。也可能是微不及谈的原因。对于许多不同的样貌,咱们王人是这样说的,“它是开源的。默许情况下它更好”。

让我详细谈谈为什么,出于政策原因,开源推行上八成带来更大的平正。

第一个原因可能是指导层最感兴味的。本年 1 月,哈佛商学院发表了一篇道理的论文,试图估算开源的价值。他们得出的一个重要发现是,要是咱们所有的公司王人罢手使用开源,不得不在里面重新开动重写,那么资本将加多 3.5 倍。最初,使用开源是件功德,因为它不错为你勤俭资金。

第二个原因是因为它是咱们能掌控所用本领。Fork 按钮即是最佳的评释。有了它,咱们不仅不错贵重样貌,还能解放地根据需求进行定制,就像开发 React Native macOS 一样。开源让咱们领有代码的逝世权。要是样貌遭受问题,或者咱们想别辟门户,王人不错随时修改代码,而不受制于原作家。这幸免了被他东谈主牵着走的被迫场面。

第三个原因推行上是 React Native 领有一个纷乱的社区。它是 Java 生态系统的一部分,咱们如故提到过了,Java 生态系统是最大的开发东谈主员库。

看到咱们领有如斯纷乱的数字并不奇怪。举例,我试图找出一个更好的数字来理会这个社区的范围,现时它在 npm 上每周下载量约 200 万次,这是一个尽头大的数字。

React Native 目次网站是一个专门为 React Native 制作的所有库的东谈主工列表。设想一下,由于你使用的是 React Native,你不错拜谒近 1400 个库。除此除外,你还不错添加所有纯 Java 库。它们不需要特定于 React Native,只须它们的 Java 能正常责任即可。成为这个大社区的一员真实意味着有大量的器用和资源。你不应该低估这件事。

天然,具体到 React Native,由于它基于 React,因此带来了相配道理的跨公司协同效应。我的酷好是,要是我的团队和组织投资于 React Native,而咱们的姐妹团队和组织则在 Web 上责任,他们也在投资于 React,那么咱们就领有了一个共同点。这使得咱们公司八成围绕这项本领进行更平方的投资,并集会元气心灵在该本领上。

举例,在微软,咱们有 Fluent UI 库。基本上,AG百家乐怎么玩才能赢Fluent UI 是咱们的遐想系统。流通的 UI GitHub 仓库是用 Web 扫尾的,它使用的是 React。事实上,不同的团队不错在某种进程上走到一齐,React 是咱们心爱的本领,咱们投资它,这确乎有助于与指导层进行对话,从政策酷好上讲,这口角常有劲的。

然后从本领上讲,我还想补充少许。它不错使用 Web 代码。

我前边提到的一件事是,咱们需要 Java React Native UI 代码和 Java 模块来扫尾逝世原生平台的 React Native 应用要领。独特是特定于 Java React 的原生 UI,这随契机有点小问题,许多团队王人不想处理这个问题。比如,我如故有了我方的 Web React 代码,为什么它不成正常责任?这推行上是咱们微软和 Meta 一直在想考的问题。咱们如故讨论了一段时刻了。

咱们的想法是,基本上,咱们想让 React Native 八成使用径直的 React 代码,而且,咱们不错使用 WebAPI 来逝世原生模块。天然,这仍处于实验阶段。Meta 提供了严格的 react-strict-dom 存储库。咱们有 WebAPI 责任。咱们正在积极开展这项责任。咱们真实合计这将是 React Native 畛域的下一个大事件。

权衡采选

天然,也有权衡。要是我只是来这里,在演讲扫尾时说的终末一句话是“一切王人很好意思满。相逢。”你可能不会深信我。算作工程师,咱们深知莫得银弹。React Native 天然优秀,但仍然存在一些本领上的采选。让咱们来谈谈 React Native 带来的几个紧要权衡。

第一个,它相配活跃。这意味着它仍在陆续存在和被投资开发。因为它在发展中,咱们需要不休跟上。当你需要从一个版块升级到另一个版块时,频繁会遭受巨大的相反,需要作念大量的修改。这是咱们多年来与 Meta 积极合作的重心。我一直是发布团队的一员。

此外咱们还制作了一些器用。前边我提到了阿谁名为 React Native Test App 的器用,这对升级过程有很大匡助。

另一个权衡是,我确乎提到过你不错将它与现存思态集成,这相配酷,而且它相配坚强。许多适合性王人来自于此。这亦然 Meta 在 Facebook 主应用要领“商场”选项卡中使用它的主要方式,确切地说是与 brownfield 模式中的现存进程集成。

波及到现存思态时,你会加多支拨。加多支拨的主要方式基本上有两种。一个是引入这个通讯层。你正在为你的应用要领添加放心感。你在给启动过程加多了一些时刻。

天然,由于你正在添加 Java,咱们王人知谈 Java 包可能相配纷乱,是以这是你需要辩论的另一个方面。你会想,我要把它加进去吗?我能接受这个权衡吗?为了匡助你惩办这个问题,咱们如故提到了自界说层。这是一种方式。天然,这可能需要一些里面颐养和工程。还有新的架构。这部分问题正在得到惩办。对于 Java 包,在我前边提到的单体存储库中,咱们确乎有一个器用,它推行上是一个摇树机,它对此有很大匡助。事情需要权衡,但惩办主义正在进行中。

波及到与现存思态的集成时,推行上存在一个更大的问题,独特是当你需要辩论一个相配大的场景时。或者你在一家大公司,你试图劝服许多东谈主将 React Native 集成到你的样貌中,因为归根结底,你所作念的即是冲突均衡。要是你在 React Native 畛域,要是你别传过 React Native,我能给你举的最大的例子可能来自 Airbnb 恶名昭著的 Sunsetting React Native 博客著述系列 (Airbnb 文书拔除使用 React Native:https://medium.com/airbnb-engineering/sunsetting-react-native-1868ba28e30a)。基本上,Airbnb 在 React Native 上插足了大量的资金。在 2018 年的某个时候,它们莫得顺利,死掉了。

问题在于,对许多东谈主来说,React Native 如故死了。那是 2018 年,2024 年我还在这里,是以我是活生生的根据,评释那不是真实。要是你真实去了读这篇博客著述,我合计其中一个主要的得益即是冲突了均衡。你不成只是去找 iOS 工程师、Kotlin 工程师,然后把 Java 强加给他们,然后就心舒坦足了。在将 React Native 之类的东西集成到现存的惩办决策时,你要辩论达成了多大的一致,需要指导层给以多大的缓助,你真实需要注重如何处理它们。

总 结

React Native 的无邪性令东谈主印象深入。它的架构可高度定制,适合多样平台和建树。你不错根据样貌需求,无邪增减功能。基于 Java 的特质,使得代码和器用分享变得十分方便,举例 ESLint 和 Prettier。这对于纯属 Java 的开发者来说无疑是个福音。

从政策角度看,Java 生态的纷乱为 React Native 提供了丰富的东谈主才储备。其无邪的遐想允许咱们迟缓引入,无需一蹴而就。你不错从一个小模块开动,迟缓扩大应用范围。

React Native 算作开源样貌,领有活跃的社区和陆续的贵重。这为开发者提供了强有劲的缓助,尤其在大型团队或跨公司勾引时。

天然,任何本领王人有其两面性。React Native 也需要咱们付出额外的学习资本,并防备保持本领栈的均衡。要是引入不妥,可能会导致样貌复杂度加多。

追想来说:React Native 的无邪性是其一大上风,但同期也要严慎权衡。在作念出决策时,应连合样貌推行情况,详细辩论本领、团队和业务等多方面身分。

答 疑

与会者 1:你说 React Native 的上风之一是它很活跃。它与父级 React 样貌有什么关系?因为这似乎是一个自我反省的任务,我合计它如故近两年莫得发布任何版块了。React Native 与有些堕入逆境的 React 样貌之间又有什么关系?

Sciandra:我合计有一件事需要澄清,在 Meta,就组织结构而言,React 和 React Native 由澌灭个组织贵重。所有这个词组织被称为 React Org。从这个酷好上说,React Native 是该样貌的迫切构成部分。你可能知谈,在 Meta 里面,有一个纷乱的单体代码库,其中所有内容王人是共存的。天然,我来自微软,我不错谈谈 Meta 是如何责任的,但我不成太深入。

从本领上讲,React 还谢世。我很细目 React 19 很快就会发布(编者注:已于 2024 年 12 月发布)。

React 在某种进程上是一个小得多的样貌。在某种进程上,它只是一个 Web 库。比拟之下,React Native 需要更多地关注其周围发生的事情,包括 Android 和 iOS 的。从这个酷好上说,我不会把不同的发布节拍视为一个迫切的信号。这恰是这两个样貌的内容。它们是精练相连的。在一个样貌上责任的东谈主们与在另一个样貌下责任的东谈主们相配接近。这是来自 Oculus 体验团队的一位成员发表的演讲里提到的,这亦然 React、React Native 大量连合使用的另一个平台。在某种进程上,只须两个样貌中的一个有火花,你就不错假定两者王人有火花,因为基本上王人是澌灭群东谈主在作念这两个样貌。

与会者 1:两年前,当我研究 React Native 对桌面的缓助时,有一个 React Native 的分支仓库,要是你想构建一个也能在桌面上运行的出动应用要领,你必须推行构建两个不同的应用要领。因为有官方的出动版 React,还有微软的桌面版 React,这和你们的竞争敌手不同。你现时是否仍然需要推行构建两个不同的应用要领呢?

Sciandra:不是的。存储库仍然是分开的。有 React Native Facebook/React Native 代码库,即 iOS 和 Android。有微软的 React Native macOS 和 React Native Windows。这是三个孤苦的代码库。我想也许你指的是开发东谈主员在构建应用要领时的体验,或者推行的代码库。我合计,在这个时刻点上,进程是生成一个 React Native 应用要领,然后运行一个额外的呐喊来添加额外的文献夹。你生成 React Native 样貌,然后你进入文献夹,在其中运行 React Native Windows,或者访佛的东西,这就添加了 Windows 扫尾,是以你需要的所有原生代码王人在 Windows 文献夹中。据我所知,差未几即是这样。我不使用 Flutter,但基本上,我的相识是,在那处你会有一个代码库,里面唯有并列存在的单独文献夹。

与会者 1:与使用 React native 比拟,使用原生代码、使用 Android 和 Java 或 Kotlin 等对性能有何影响?你根底莫得谈到性能。

Sciandra:要是我有一个全王人基于 Kotlin 的 Android 应用要领,与 React Native 比拟,它的性能如何?咱们在微软的所有场景中看到的是,性能莫得权臣的相反。即使有一些小的支拨,最终,当波及到最终的用户体验时,交互性的相反亦然最小的。天然,咱们不会尝试在相配复杂、盘算推算量很大的情况下使用 React Native。咱们不会尝试在 visionOS 或其他开拓中渲染 3D 对象。合适的用例更像我前边展示的行动扮装卡。对于这些场景,性能简直是交流的,独特是当波及到用户时。一些小的基准测试可能会有所不同,但是对于终局用户来说,响应的毫秒数王人是几百毫秒,比如 200、220 毫秒之类的。

与会者 3:举例,你展示了你的一些样貌,其中 10% 是 React Native,90% 是原生。这是因为其中唯有 10% 不错用 React Native 制作,而其余的盘算推算量太大了吗?

Sciandra:只是因为它是一个已有的代码库。要是咱们如故构建了 Outlook,咱们只是想添加进来,当你点击头像时,会出现一个新的东西,它会向你理会一些细节。咱们不会丢弃之前构建的所有内容。它就在那处,咱们只是把这个新部分加进去。咱们不是原生构建它,而是从咱们如故为其他平台构建的代码库中提真金不怕火它,然后把它放进去。

这取决于功能和团队。相同,我提到的一些事情就像这些非本领原因。就咱们的范围而言,大多数决策王人不是本领性的,更多的是褒贬哪个团队有权作念某些事情。它简直老是归结为这些类型,即哪个指导层快乐在哪个团队中作念什么,并在此基础上反馈在代码库中最终包含哪些代码。莫得一个总体盘算推算来让每个应用要领王人使用 React Native 构建。

在微软,咱们并莫得把它用于咱们作念过的所有应用要领。咱们在不同的层面上使用了它,但这在很猛进程上取决于咱们是否如故有了这些代码。要是咱们使用 React Native,这是否意味着咱们不错更快地将该功能推向商场?

举例,Copilot 即是一个很好的例子。 咱们八成如斯马上地在所有原生应用要领中使用 Copilot 的原因之一是,咱们有 Web 扫尾,况且通过我前边提到的一些事情,不错使这个过程变得更快,因为咱们有 Web 代码,就不错尽快将其贯串起来,并将其提供给咱们的用户。

与会者 2:既然你来自微软,你如安在.NET MAUI(一个新的多平台,不错使用它构建多个应用要领)和 React Native 之间作念出选拔?

Sciandra:举例,React Native 和.NET MAUI 之间的一个重要区分是,.NET MAUI 更适应 C++ 开发东谈主员。

这在很猛进程上取决于这项责任需要在什么代码库上完成,团队领有哪些专科学问?举例,要是咱们如故用 Java 为 Web 构建了及时扮装卡,那就太好意思满了。要是咱们想快速完成,咱们需要一些 Java,因此 React Native 更特殊想。

我举一个表面上的例子,假定 Office Word 在 C++ 中创建了一个特殊功能,咱们想把它放到 Excel、PowerPoint 甚而 Outlook 中,那么在这些情况下,也许像.NET MAUI 这样的东西会更特殊想,或者径直使用 C++ 分享代码。

这要看情况。这在很猛进程上是功能优先。咱们正试图以尽可能快的方式为客户提供价值。咱们合计,原生应用的体验需要与原生平台兼容。这即是为什么咱们尝试使用 React Native 而不是 WebView 的原因。

与会者 4:咱们在出动应用要领中使用了许多 WebView,咱们使用 React Web 来填充这些 WebView。看到 React Native 的平方使用真实很道理。咱们之前如故用 React Native 进行了一些实验,咱们推行上如故从代码库中提真金不怕火了一些。我只是想知谈,值得咱们再试一次吗?你合计在 WebView 中使用 React Web 与尝试使用 React Native 进行更多实验之间的权衡是什么?

Sciandra:这要视情况而定。举例,你想优化什么?我在最开动说过的一件事是,通过使用 React Native,原生操作系统不错准确地知谈应用要领中发生了什么。它知谈每一个组件。要是你有一个访佛 WebView 的东西,那么原生操作系统知谈的是,现时我抛出了一个 WebView,我不知谈里面发生了什么。这是一个例子。举例,这可能会导致操作系统以不同的方式优化你的应用要领。因为它不知谈你在理会哪个页面。你是在展示三个页面,照旧在展示一个页面?在 WebView 中,你真实不知谈。这真实取决于你想优化什么。要是你只是想,我有我的 Web 应用要领,我真实不想再花任何工程时刻了,只是想让我的用户在手机上装置一些东西,天然,WebView 是特殊想的。

与会者 4:根据用例,可能有一种策略不错同期作念到这两点。

Sciandra:还有 React Native WebView。也许你正在使用一个径直的 WebView。有不同的选拔。相同,WebView 在某些情况下是特殊想的。这全王人取决于你想要优化什么。

与会者 5:为什么选拔 React Native,为什么不选拔像 Native 之类的东西呢,它可能不会把你独特绑定在 React 上?

Sciandra:最初,正如我前边所说,要是咱们王人在 React 畛域责任,咱们不错创造跨公司的协同效应。这其中有一些政策原因。Native 的情况其实很特殊。样貌中的一些东谈主与咱们的团队密切互动,因为咱们围绕 React Native 用户使用的 Java 引擎开发的一些惩办决策,现时正被 Native 用来作念一些相配道理的事情。我频繁和 Jamie Birch、Nathan Walker 以及团队一齐责任,咱们频繁聊天。看着两个被一些东谈主视为竞争敌手的样貌,推行上是在彼此匡助,这很道理。

为特出志咱们的需求,我合计当咱们开动研究 React Native 时,Native 并莫得像今天这样坚强或完善。我合计现时它是一个比其他一些选拔更坚强的竞争敌手,尤其是当你想采取基于 Java 的惩办决策时。我合计,就咱们的需求、投资和指标平台而言,React Native 仍然更特殊想。这也可能是一种动态惯性。咱们如故插足了这样多,以至于咱们可能不会一下子把所有事情王人掉转标的。这两个样貌正在密切合作。

与会者 6:有莫得一种情况是你想反过来作念呢。我看到你不得不拔除 brownfield 应用,也许你想让 5% 的那一部分代码原生化,而不是缓助和使用 React Native。

Sciandra:要是我用 React Native 作念了一些事情,我想用原生的方式重建它?到现时为止,我还莫得别传过咱们有需要这样作念的任何场景,但我不错看到这样的情况,举例,假定组织发生了重组,你有了一个新的指导层,而新的指导团队如故裁汰了 Web 团队,因为他们更深信原生应用要领,而不是 Web 团队或 Web 应用要领。在这种情况下,我全王人不错设想一个原生团队必须接管一个事前存在的 brownfield 场景。在这种情况中,要是你的原生团队只使用 Swift,那么从 React Native 过渡到全王人原生是特殊想的,这基本上即是 Airbnb 一直在作念的事情。一朝最缓助这种要领的东谈主离开了,专科学问也离开了,公司里剩下的即是原生工程师,是以,天然,你想要重建,这样你就不错尽可能地使用你所领有的最佳的工程了。

作家先容

Lorenzo Sciandra是微软的高档软件工程师,他匡助指导 React Native 样貌以及与亚马逊和 Meta 等合作伙伴的合作。自 2018 年以来,他一直是 React Native 的活跃贵重者AG百家乐有什么窍门,他将我方的本领专长与对开源和心绪健康办法的刚毅承诺相连合。

发布于:北京市

友情链接:

ag平台真人百家乐 AG百家乐怎么玩才能赢 AG真人百家乐

Powered by ag百家乐九游会 RSS地图 HTML地图