Android react native cli和Expo with Bare workflow之间有什么区别?

Android react native cli和Expo with Bare workflow之间有什么区别?,android,ios,react-native,expo,Android,Ios,React Native,Expo,我将构建一个具有多种复杂功能的大型应用程序。但我被困在下面几点上- react native cli和Expo with Bare workflow之间有什么区别 我应该在我的项目中包括什么?为什么 世博会是由facebook创建的吗 Expo是在react native之上编写的,旨在克服开发人员在开发过程中面临的问题和挑战,当它提供一些功能时,它也有一些限制 react native CLI和Expo with Bare workflow之间有什么区别? 这两者之间的关键区别在于管理不同的r

我将构建一个具有多种复杂功能的大型应用程序。但我被困在下面几点上-

  • react native cli和Expo with Bare workflow之间有什么区别
  • 我应该在我的项目中包括什么?为什么
  • 世博会是由facebook创建的吗

  • Expo
    是在react native之上编写的,旨在克服开发人员在开发过程中面临的问题和挑战,当它提供一些功能时,它也有一些限制

    react native CLI和Expo with Bare workflow之间有什么区别? 这两者之间的关键区别在于管理不同的react本机包。 Expo拥有几乎(不是全部)react native拥有的所有功能,因此它提供了Expo内的所有功能,而不是单独安装和管理模块,所以你们不需要像expo和expo那个样关注单独的本机模块,但expo有一个限制,即若在react native中发布了新的东西,直到expo将其添加到expo中,你们才能使用它。 另一个限制是您不能使用需要链接的库,因为expo为您管理此功能,并且您有使用expo支持的库的边界(托管工作流)。 Expo为您管理构建系统,因此您不必使用Android studio或Xcode进行构建。 它有一个大小限制,所以你的应用程序不能低于(安卓2MB,IOS 25MB),即使是单屏应用程序

    管理工作流的限制

  • 并非所有的iOS和Android API都可用

  • SDK不支持所有类型的后台代码执行 如果您需要保持应用程序的大小非常精简,那么托管工作流可能不是最佳选择

  • SDK中通常不包括与专有服务集成的本机库

  • 唯一受支持的推送通知服务是世博会通知服务

  • 支持的最低操作系统版本为Android 5+和iOS 10+

  • 免费构建有时可以排队

  • 裸工作流 Bare workflow使您能够更好地控制链接本机库和管理生成

    另一方面,使用
    react native CLI
    您可以自由安装任何东西,大小也取决于您的应用程序

    在裸工作流中,我们可以完全访问底层本机项目和任何本机代码。这是一个“裸”本机项目,安装了React-native和Expo SDK中的一个或多个软件包。在本机项目中可以执行的任何操作都可以在此处执行

    在裸工作流中,开发人员拥有完全的控制权,以及随之而来的复杂性。您可以在Expo SDK中使用大多数API,但尚不支持使用app.json的构建服务和轻松配置。您可以参考面向本机iOS和Android应用程序的教程和指南,并对本机应用程序做出反应以寻求替代方案

    裸工作流的限制

  • 生成服务仅在托管工作流中工作

  • 必须在每个本机项目上进行配置,而不是使用app.json进行一次配置

  • 这里是这些之间的比较

    我应该在我的项目中包括什么?为什么? 这要看情况而定,你必须弄清楚你想在应用程序中使用的所有东西都在expo上得到了支持,如果所有东西(每个本机模块)都可用,那么使用expo是可以的,否则如果你不得不在开发之间退出,这是一个痛苦的过程

    世博会是由Facebook创建的吗? 官方没有,但它得到了react native的一些核心开发人员的支持

    这里有一个链接,可以比较这两种方法


    react native cli和Expo with Bare workflow有什么区别?

    Expo with Bare workflow基本上是一个react本机cli应用程序,已预配置以支持大多数Expo软件包(以下是Bare workflow中支持的API:)。使用一个简单的应用程序,您可以在expo托管和react本机cli之间折衷。启动裸应用程序时已经进行的主要配置是设置Expo团队提供的react native unimodules包()

    在裸机应用程序中,您需要Xcode和Android studio,就像普通本地cli应用程序一样

    在bare应用程序中,您可以安装大多数Expo软件包,但必须遵循bare工作流的特定安装说明(例如:使用npm安装、链接、pod安装等)

    Expo裸机应用程序必须使用react native命令启动,它们在创建后不使用Expo cli

    世博会管理应用程序的大多数便捷功能在简单的工作流程中缺失,但世博会正致力于随着时间的推移集成其中的大部分功能

    我应该在我的项目中包括什么以及为什么?

    你应该包括什么取决于你的需要。通过对项目最终目标的深入分析,您可以在一侧的托管工作流和另一侧的裸工作流/react native cli之间做出选择

    bare workflow和react native cli之间的选择比较简单,因为它们基本相同,但bare workflow已经进行了一些额外的配置

    世博会是由Facebook创建的吗?


    没有,但世博会被他们认为是一个非常有用的发展工具。(这就是为什么世博会是根据官方react原生文档创建应用程序的一种方式)。

    我在使用世博会裸机工作流3个月后写下了这个答案

    由于以下区域的原因,我将建议在工作流上使用react native cli

  • Expo bare工作流不是由facebook团队开发的,因此当RN Cli中有新的更新时,Expo需要1-2个月才能添加到其