React native vs create响应原生应用

时间:2017-07-15 23:16:46

标签: react-native create-react-app

我想从本机应用开发做出反应,并需要帮助来决定我应该走哪条路。

主要问题是:我应该选择本机还是创建反应原生应用程序?

根据我的理解,CRNA真的是使用expo客户端和工具进行原生反应,使用更舒适(不需要开发帐户等)

我可以看到使用CRNA over react native的优点(不需要设置依赖项,更快的时间开始开发,不需要iPhone开发帐户或xcode + android combi等)。

然而,由于并非所有本地库都包含在内,我认为自己需要稍后导出我的应用程序,并继续像以前一样使用xcode和android studio。

所以,如果CRNA只是开始使用所有内容的好方法,那么我会立即选择vanilla react本身,因为我认为暂时解决方案没有任何意义。

另外,也许你可以纠正我这个问题,我不喜欢在我的应用程序之上只有另一个包装器的想法,除非我错过了一些更重要的优点。

那么请你就此分享你的意见吗?如果您已经开发了过去使用本地反应的应用程序,那么您将走哪条道路,将来会走哪条道路? React native,CRNA还是反应原生和世博环境?

提前致谢。

4 个答案:

答案 0 :(得分:22)

您好我也将分享我在这个主题上的一些经验。

由于我有前端背景并且不熟悉XCode或Android Studio,因此我决定从CRNA开始我的本机应用程序开发。

确实只有一个文本编辑器,纯粹使用javascript并利用内置的expo SDK组件,我很快就能够实现并发布到Play Store a fairly simple app。 我发现真的很神奇:)

然而,在发布应用程序后,我发现有一些陷阱无法与类似的竞争对手Java应用程序竞争:

最大的IMO是使用exp生成的apk的大小 服务。 对于只有3个屏幕而不是很多业务逻辑的应用程序,安装后25 mb和大约60mb非常多。 According to expo devs更复杂的应用程序将大致相同或略大,因为大部分是本机依赖项,​​而不是实际的javascript端。 但这仍然是一个大问题,我可能无论如何都要eject该应用程序来优化构建大小

因此,一般情况下,CRNA是一种很好的快速启动方式,但在将应用程序发布给用户之前,您仍然无法避免设置自定义构建和所有依赖项(如Android Studio)

答案 1 :(得分:9)

我认为create-react-native-app是一个很好的开始方式,因此你可以专注于本地反应的React部分,特别是如果你不熟悉React。当您准备好使用本机执行操作时,只需弹出npm run eject

即可

当我去年年底开始使用react native的新项目时,没有create-react-native-app,我首先评估了expo。我不喜欢它,因为没有简单的原生集成,除非你知道我们确定需要原生集成时弹出。因此,我和香草一起反应原生。此外,我已经在网络和iOS和Android原生开发方面有过React的经验。

答案 2 :(得分:0)

<强> TLDR

如果您通过 create_react_native_app myproject

创建项目

然后它包含expo设置(不推荐)

如果您通过 react-native myproject

创建项目

然后它的简单反应原生(推荐用于小型,中型,大型项目)

注意:在终端use this link中使用react-native命令

答案 3 :(得分:0)

我想分享我的应用程序开发经验。当我刚接触React时,我开始使用CRNA,它运行顺利。世博会确实提供了许多功能,例如推送通知,动画(Airbnb推荐使用Lottie)和省心的功能,您可以随时在要与app一起使用本机库时弹出应用程序。最好的部分是,您不必重写任何代码,并且所有expo专有功能也都可以使用。 因此,CRNA(尽可能多地使用)+ eject(在需要本地库时)=最佳位置。