我想从本机应用开发做出反应,并需要帮助来决定我应该走哪条路。
主要问题是:我应该选择本机还是创建反应原生应用程序?
根据我的理解,CRNA真的是使用expo客户端和工具进行原生反应,使用更舒适(不需要开发帐户等)
我可以看到使用CRNA over react native的优点(不需要设置依赖项,更快的时间开始开发,不需要iPhone开发帐户或xcode + android combi等)。
然而,由于并非所有本地库都包含在内,我认为自己需要稍后导出我的应用程序,并继续像以前一样使用xcode和android studio。
所以,如果CRNA只是开始使用所有内容的好方法,那么我会立即选择vanilla react本身,因为我认为暂时解决方案没有任何意义。
另外,也许你可以纠正我这个问题,我不喜欢在我的应用程序之上只有另一个包装器的想法,除非我错过了一些更重要的优点。
那么请你就此分享你的意见吗?如果您已经开发了过去使用本地反应的应用程序,那么您将走哪条道路,将来会走哪条道路? React native,CRNA还是反应原生和世博环境?
提前致谢。
答案 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(在需要本地库时)=最佳位置。