当前位置: 首页>移动开发>正文

react native ios回退 react native desktop

兜兜转转,不少开发者还是发现 React Native 的真相定律。

日前,国外知名聊天软件 Discord 于官方博客上发布了一则《Android 版本 Discord 激动人心的更新》公告。在公告中,Discord 指出,其将在未来几周内改进 Android 版本的应用程序,具体包括通过跨 Android、iOS 和桌面端的集中式简化应用开发流程,实现跨平台的功能一致性。

react native ios回退 react native desktop,react native ios回退 react native desktop_android,第1张

图源:Discord 官网

iOS、桌面端、Android 步调不一,苦不堪言的跨平台开发

一直以来,我们在使用软件时经常会发现不同平台上,相同的应用程序更新步伐都不太一致,往往都是 iOS 端和桌面端先行发布之后,Android 平台上的应用程序才姗姗来迟。这种现象也同样出现在了 Discord 上。

如今,Discord 决定改变这种现状,其表示正在使用 React Native 来进行 Android 应用开发,这意味着在 Discord 的每个平台上都能以更快速度改进体验,同时仍然在 UI 中保留 Android 和 iOS 特定的模式。

Discord Android 版使用 React Native 开发

作为一款跨平台框架,React Native 是由 Facebook (现更名为 Meta)软件工程师 Jordan Walke 在 2013 年发起了的一个黑客马拉松项目,彼时他发现了一种为 iOS 应用程序生成 UI 组件的方法。因此,React 开源框架最初是为 iOS 构建的,并于 2015 年 3 月作为开源项目在 GitHub(https://github.com/facebook/react-native)上可供公众使用。随后,Facebook 也迅速为 React Native 提供了 Android 支持。

截至目前,React Native 已经成为 GitHub 中最大的项目之一,拥有 104k Star 和 22.3k 分支。它也被广泛用于许多流行的移动应用程序,包括Instagram、Microsoft Outlook、Shopify、Tesla、Pinterest 等等。

Discord 自 2015 年以来一直在其 iOS 应用程序中使用 React Native。如今在将 Android 应用程序开发迁移到 React Native 框架下, Discord 表示,“Android 用户还将享受更快的应用程序更新发布周期的好处。React Native 允许我们简化和整合流程,有助于工程师更高效地工作,更频繁地推送更新,特别是现在团队不会花太多时间为不同的设备维护不同的代码库。”

React Native 是跨平台神器?

针对 Discord 的迁移,不少网友也发起了对 React Native 的使用的讨论。

@ramesh31:

React Native 确实是移动开发的游戏规则改变者。去年,我用它来构建一个新的 iOS 应用程序,这是自旧的 Objective-C / UI-Kit 时代以来的第一次。实际上,我在几分钟内构建了一些东西,这在当时需要花费数小时或数天的时间编写自定义 OpenGL 和网络代码。在这一点上,任何性能权衡都是值得的。

不过,由于性能、迭代速度、复杂度等维度的重重挑战,曾经也有不少公司如 Airbnb、Udacity 在使用一段时间的 React Native 之后选择了放弃,重新拥抱原生开发。对此,也有网友@Grim-444 根据自己公司的实践分享道:

“我非常确信 React Native 只带来一件真正的改变,那就是它为 PM/经理提供了一些很好的宣传材料,告诉他们如何领导团队“切换到共享的跨平台代码库”。然后,他们在使用 React Native 做迁移工作时,进而需要一直处理迁移到 RN 的长期后果。

以我们公司为例,近日,技术团队将 Android、iOS 应用程序从原生开发转为 React Native 开发。RN 发起人承诺在平台之间共享代码以及性能会和原生开发一样好,以及 UI 也会像原生开发一样获得各种各样的好处,然而最终这些都没有真正的实现。

到了最后,RN 的代码只占了 Android 应用程序的 20%。技术团队不能实现“编写一次”,在两端运行。

原来,我们有两个团队:iOS 和 Android 开发团队。现在,我们有三个团队,iOS 原生、Android 原生和 React Native 团队。进而 React Native 团队内部还被分为 iOS 和 Android 两大阵营,显得特别乱。

另外使用 RN 开发还存在一些问题,如:

  • 对于在 RN 中没有办法完成的事情,我们还得需要一个配备齐全的 Android 团队的支持。
  • 在使用 React Native 开发时,与原生开发的应用程序性能差异非常明显。
  • 现在我们组织也有问题,因为应用程序涉及多个团队/语言,应用程序的不同部分由不同的团队和管理层拥有,而不是只有一个团队来开发一款好的应用程序。
  • 我们团队的不少工程师都不想与 RN 有任何关系。
  • 我们的代码库现在依赖于第三方平台和完全不同于 Google 所说的应该构建 Android 应用程序的语言。为什么我们不按照 Android 团队所说的方式构建 Android 应用程序呢?是否真的有必要长期支持 RN/JS?”

为此,你怎么看?是否使用过 React Native?


https://www.xamrdz.com/mobile/4dd1987393.html

相关文章: