比较:React Native 与 Native App 开发

已发表: 2021-10-05

React Native RoR 框架能否与 Native 应用程序开发竞争

它实际上是我们这些天听到的很多意见的混合应用程序之一。 跨平台的开发工具有很多,但是本文我们关注的一个是React Native RoR框架。 React Native 是原生的吗? 那我们来调查一下。

正如我们现在的世界变得有多种选择一样,我们每天要做出大约 3500 个决定,而这甚至还不是最高峰。 这个多选因素也影响了原生 iOS(和 Android)开发的世界——有很多方法可以构建应用程序。 您可以在不同的平台上使用您的应用程序,它可能是 Web 或移动设备,本机或跨平台,这一切都可以根据您的需求和价值观来解决。 我们将尝试突出每个案例的优缺点。

众所周知的应用程序开发路径是原生的和跨平台的。 本机应用程序开发非常适用于移动设备,并且是用于特定目的(iOS 或 Android)、在特定 IDE( XCodeAndroid Studio )和特定语言( Android 的 Kotlin/Java、Swift/ iOS 的 Objective-C )。

开发的第二种应用程序称为混合应用程序。 跨平台(ig React Native)和原生应用开发有什么区别? 跨平台应用程序开发与原生应用程序开发有点不同,因为在大多数情况下,它包含一个混合了移动和 Web 开发概念的开源框架,并且通常是用 Java Script 编写的,尽管最终结果最终会是一个“类似本机”的应用程序文件。 这些天来,“原生应用程序与混合应用程序”的竞争已经达到了子午线。

虽然“原生”平台和语言的一切都很清楚,但混合应用程序有更广泛的分类。 最常用的跨平台JS框架如下:

  • 离子 3 框架
  • 沙马林
  • Cordova(前 PhoneGap)
  • React Native RoR 框架

今天,为什么选择混合应用程序以及构建它们的框架? 选择什么 - React Native vs Ionic? Xamarin 与 React Native? 跨平台应用程序开发最常用的框架之一是React Native ,但是是什么让人们使用它呢? 我试图调查此事。

反应更快。

基于 React Native 构建的应用
[图片来源:Facebook React Native]

我敢打赌你已经认出了这些图标中的每一个。 所有这些(过去,甚至现在)都是使用 React Native 构建的。 说起来,Facebook 公司基本上是 React Native 应用程序开发的所有者和积极推动者。 但是,该公司本身否认是“混合应用程序的工具”。 正如他们在正式登陆时所说,

“使用 React Native,您无需构建“移动网络应用程序”、“HTML5 应用程序”或“混合应用程序”。 您构建了一个真正的移动应用程序,它与使用 Objective-C 或 Java 构建的应用程序没有区别。 React Native 使用与常规 iOS 和 Android 应用程序相同的基本 UI 构建块。 你只需使用 JavaScript 和 React 将这些构建块放在一起。”

[来源:Facebook Github]

但是 React Native 真的能与原生应用开发相媲美吗? 嗯,不完全是。 首先,即使是应用程序构建过程在这里也有所不同。

如何构建 React Native 应用程序? 包起来。

适用于 Android(和 iOS)的 React Native 本身是对原生编译的封装,其中 JS 工具允许您更轻松地构建应用程序。 它甚至有一个简化的结构——组件看起来像基本的 HTML 标签。 您在 React Native 中编写的代码对于每个移动平台都是独一无二的,但是有许多通用工具可以在 iOS 或 Android 上重复使用和重新应用。 此外,你可以有几个构建目标,这让我称 React Native 开发不仅是一个跨平台的框架,也是一个跨设备的。 您可以将您的应用程序用于 iOS,与 AppleTV 和 Mac OS 相同。

在 React Native 中开发的应用程序不需要原生 IDE(XCode 或 Android Studio),尽管您可以使用它们进行开发,因为 Expo - React Native 的定制 IDE 提供的调试功能较少。 RN 框架也没有使组件的结构复杂化——它是非常简单的一种,如果你正在寻找一个更复杂的结构,你需要使用原生的 iOS 或 Android 部件,包裹在顶部的 JS 覆盖中(这是,相当,相当凌乱)。 一些组件被装扮成,它可以帮助您将各种道具放入其中。

使 React Native 成为全球跨平台应用程序开发人员可口交易的一些优势

1.它需要你的资源更少。

与每个跨平台解决方案一样,它更便宜且更适合预算; 您不需要聘请两个独立的应用程序开发团队 - 您可以拥有一个开发团队,但如果您愿意,结果将涵盖两个平台。 当然,用于构建这些应用程序的资源和成本将大大低于本机应用程序开发所需的成本。

2. React Native 的强大之处在于它的组件。

就像已经说过的那样,React Native 可接受的组件列表是巨大的。 反过来,这些组件当然可以在其他项目中重用,如果它们有一些共同的相似之处。

3. 它有一个庞大的社区。

React Native 社区

你猜 Facebook 官方 React Native 社区有多少人? 在这篇文章发表的时候,这个数字已经超过了 23000。作为一个大社区的一份子,最大的好处是一定的包容感+从中提取新组件的能力。 您为自定义目的创建的组件可以轻松地在组内分发 - 因此您可以在需要时找到现成的解决方案,而无需从头开始重新编写。

4. 推广...

脸书公司

Facebook 公司作为一个整体已经可以被命名为“品牌品牌”,所以整个 Facebook 背后的它为 React Native 框架提供了巨大的优势(如果我们甚至拿 Ionic 与 React Native 进行比较的话)。 用户相信这个社交网络足够耐用,可以代表它所宣传和声称依赖的产品。

一种尺寸并不适合所有人。

在环的另一个角落,本地应用程序开发人员所在的地方,当您为“走向本地”付费时,也可以购买到一些价值和好处。

1. 原生 = 响应更快。

界面的响应能力是 UX 设计师渴望并付出了很多努力的东西。 当它是原生应用程序时,每个单独的设计屏幕都是单独设计的,并根据商店的指南进行调整以适应风格 - 无论是平面还是材料

2. 母语=由苹果和谷歌商店官方开发。

Native App Store 和 Google Play 接受基于平台开发和支持的语言构建的应用程序。 如果您遵循指导方针 - 您通往商店的梯子已经准备就绪。 对于跨平台应用程序,您仍然有机会接受,但很有可能,您只是因为有点“webbish”界面或导航而被拒绝。

3.“极品飞车”。

可用性工程的主要原则之一代表快速交互——“1.0 秒是用户思想流保持不间断的极限”。 虽然本机应用程序的反应和执行速度足够快,可以让用户保持在系统的节奏之内,但混合产品在某种程度上往往会变得更慢。

4. 原生 = 更复杂。

本机应用程序=复杂的应用程序

当您希望创建具有“普通”类别之外的功能的已经存在的东西时,跨平台解决方案会摇摆不定。 当谈到复杂的事情时(所有那些流行的物联网、AR/VR、大数据挖掘算法都在这个列表中),混合应用程序缺乏实现你想要的技术能力。 另一方面,原生 IDE 和语言有无穷无尽的技术视角——可以在它们上面编写大量的东西。

谨慎选择。

如果你正在寻找一个简单的应用程序来构建(列表和没有比这更复杂的),那么 React Native 是一个爆炸。 如果需要进一步的应用程序性能,则会出现更复杂的开发过程——您已经需要切换到 Swift 或 Kotlin,然后将其全部包裹在闪闪发光的 Java Script 封面中; 这听起来并不容易。 因此,对于视频或音频流、路由、实时聊天、照片编辑等,您最好从一开始就进行本机开发,避免这些缺点。

此外,React Native 是一个完整的 JavaScript 框架,整个代码甚至可以在 TextMate 或 Notepad++ 等文本编辑器中编写。 尽管在构建项目时,您非常需要一个特定的 IDE,或者至少需要一个模拟器。

有几个不错的基于 RN 的应用程序示例:

  • Facebook 应用程序,显然
  • Airbnb 移动应用程序(混合 iOS 和 Android)
  • 沃尔玛移动应用程序(因为它有许多嵌入式 Web 视图,但其实施低于预期)

你可以在他们的官方网站上查看基于 RN 的产品的完整列表,在这里 RN 再次赢得 React Native 与 Xamarin 框架竞赛。

为了透视。

根据 Flurry 的统计数据,“如今美国消费者平均每天在智能手机和平板电脑上花费 2 小时 38 分钟。其中 80% 的时间(2 小时 7 分钟)都花在了应用内”。 您的产品必须以某种方式适应每天 2 小时的时间。 考虑到所有要点,React Native RoR 框架对于小型短期项目来说将是一个方便的解决方案; 评论证明它是快速,激烈和新的,或者当你想“测试概念”时。 尽管如此,从长远来看,或者在计划启动技术创新时,您不能依赖现成的选项。 您需要从头开始构建它,需要对其进行自定义 - 因此您需要将其作为本机应用程序开发。

由 Artem Chervichnik 和 Elina Bessarabova 撰写