React Native或Native应用程序(Android和iOS)用于移动应用程序开发

时间:2018-07-11 15:43:22

标签: android ios react-native mobile-application

用于移动应用程序开发的平台-对本机或本机平台(Android或iOS)做出反应。

应用程序的关键要求:

#1设备访问(预期):

  • 拍照和录像
  • 大概位置(基于网络)
  • 精确位置(基于GPS和网络)
  • 完全网络访问 从互联网接收数据
  • 拨打电话号码
  • 阅读短信(sms)
  • 控制振动
  • 阅读您的联系人
  • 阅读通话记录
  • 麦克风
  • 日历
  • 语音识别
  • 照片

#2调用Graphql API

我正在探索两个平台的优缺点,但尚未决定。任何建议将不胜感激。

2 个答案:

答案 0 :(得分:0)

我想分享我的经验,并建议您选择本机应用程序开发。原生应用的外观和感觉很棒,并且运行良好,从而带来更好的用户体验,客户满意度和保留率。

移动应用程序是任何企业的另一种交流渠道。这意味着提供高质量的产品很重要。应用不是书籍-客户会根据封面判断。因此,本机应用程序开发是最好的方法。

原生移动应用开发的主要优点:

  • 工作流畅,运行速度快,性能完美。本机vs混合应用程序是为特定操作系统而构建的,并充分利用了设备的处理速度。
  • 出色的设计和用户体验可能性。例如,复杂的UX / UI设计和动画的实现
  • 本机应用程序UI使用户可以更快地了解应用程序中的导航
  • 与设备硬件(例如相机,GPS,电话,触摸屏)的良好集成
  • 易于在App Store中启动。当涉及原生与混合应用或移动Web应用时,原生应用完全遵循OS(Android或iOS)准则
  • 更高的安全性和可靠性(由App Store检查和批准的本地开发的应用)
  • 易于在本地应用程序与混合应用程序中实现市场需求(AI,VR,AR,IoT等)的新的复杂功能
  • 能够离线操作。如果本地应用程序开发需要相应的功能,则需要Internet连接
  • 适用于开发人员的
  • SDK。它提供了半准备就绪,定期更新的解决方案和库,它们可以与给定的操作系统正确交互。

建议选择本机应用程序开发

  • 需要高性能的应用程序时
  • 为了在相似的应用创意或市场中与竞争对手保持同步
  • 当应用程序市场的空白位不被占用时,请从独特的第一个产品版本(MVP)开始。
  • 时间紧迫,可以提前计划所有事情,然后等6个月再发布本机应用程序
  • 如果您打算不断扩展和更新应用程序

React Native是Facebook在2013年发明的混合应用程序框架,旨在简化其应用程序的开发和部署。此外,该工具在越来越多的社区的支持下获得了普及。

从技术上讲,React Native使用JavaScript代码并将其转换为可在两个操作系统上使用的本机应用程序。该框架使用通过JavaScript和React连接在一起的本机UI开发模块。

很明显,React Native节省了开发时间,工作量和成本,因为可以重用代码,添加必要的功能以及访问各种不同的库。 此外,使用React Native框架也很容易,尤其是对于JavaScript开发人员而言。

以下是用于混合应用程序开发的React Native可能存在的陷阱。最好提前通知您潜在的风险。

  • 将React Native升级到最新版本可能带来的麻烦

当该框架向公众开放时,与本地应用程序开发相比,它提供了一个较弱的解决方案。当然,情况随着时间而改变。但是,仍然没有很多开源库支持React Native。这意味着,为了实现特定功能,应该对代码进行实验。尤其是要在所有平台上保持相同的功能,都是如此。

  • 更难修正错误,并花费更多时间进行质量检查

任何应用程序或程序都有错误,而质量保证则试图将它们限制在最低限度。如果某些内容在React Native程序中无法按预期工作,则需要深入代码库以找出原因。而且,即使您发现了一个错误,在某些情况下,您仍需要派生一个现有的React Native部件,修复该错误,然后再次建立构建系统,因为它应该使用您的派生而不是正式的React Native。之后,您必须花更多时间将新功能从新的React Native移植到您的fork。

  • 取决于Facebook对React Native问题和更新的解决方案 很难保证您的应用程序可以在下一个iOS和Android版本上运行。在某些情况下,有必要暂停项目,直到Facebook解决React Native中的问题为止。例如,即使Xcode 10是在6个月前发布的Beta版中,在撰写本文时仍不支持Xcode 10和新的构建系统。

要添加到此,您永远不会知道等待这些更新需要多少时间,以及估算在应用程序中执行所有这些更新所需的时间。

我建议您看看这篇https://mlsdev.com/blog/native-app-development-vs-web-and-hybrid-app-development,以了解有关本机与混合应用程序独特方面的比较的更多信息。

答案 1 :(得分:-2)

对于许多人来说,这将是一个非常个人的问题,但我会尽力而为。

我使用本机。为什么?

在回答这个问题之前,让我这样说,如果您看一下第三方图书馆,其中的一些图书馆就会消失。让我们看一下Parse。 Facebook拥有Parse,然后关闭其服务器。解析...现在是Parse-Server使用Node和MongoDB,因此它仍然是一个不错的选择(我使用Parse-Server)。

在Github中,第三方库有很多选择,其中有些永远存在,但是当开发人员停止支持框架时会发生什么?现在,由您决定学习他们的代码,对其进行编辑,或者找到一个新的框架来使用。

此外,使用本机代码,您还可以访问设备提供的所有内容。因此,列表中的所有项目都可以与本机代码一起使用。您可能(也可能无法)对React Native进行同样的操作。完成更多研究以查看React Native是否能够胜任以上所有工作就是您的工作。如果我猜到了,那不是。

那么,为什么要编写两个单独的应用程序?因为Android不能停止支持适合其生态系统的代码(Java / Kotlin)。苹果公司,不仅会停止在代码库(Swift或Objective C)上冷火鸡。

Facebook可以轻松地说,嗯,我们还是不想支持React Native,然后将其杀死。我会很快看到这种情况吗?没有为什么?因为有很多大公司在使用React Native。但是,就像我说的,它是第三方选项,我们都知道第三方选项会发生什么。

这是我的2美分。