我想从响应本机应用程序开发开始,需要帮助来决定我应该走哪条路 .
主要问题是:我应该选择本机还是创建反应本机应用程序?
根据我的理解,CRNA真的是使用expo客户端和工具进行原生反应,使用更舒适(不需要开发帐户等)
我可以看到使用CRNA over react native的优点(不需要设置依赖项,更快的时间开始开发,不需要iPhone开发帐户或xcode android combi等)
但是,由于并非所有本地库都包含在内,我认为自己需要在以后导出我的应用程序,并继续像以前一样使用xcode和android studio .
因此,如果CRNA只是开始使用所有内容的一种很好的方式,那么我会立即选择vanilla反应原生,因为我认为暂时解决方案没有任何意义 .
此外,也许你可以纠正我,我不喜欢在我的应用程序之上只有另一个包装器的想法,除非有一些我错过的更重要的优点 .
那么请你就此分享你的意见吗?如果您已经开发了过去使用本地反应的应用程序,那么您将走哪条道路,将来会走哪条道路?反应原生,CRNA或反应原生和世博环境?
提前致谢 .
4 回答
嗨,我也将分享我在这个主题上的一些经验 .
由于我有前端背景并且不熟悉XCode或Android Studio,因此我决定从CRNA开始我的原生应用程序开发 .
事实上,只需一个文本编辑器,纯粹使用javascript并利用内置的expo SDK组件,我很快就能够实现并发布到Play Store a fairly simple app . 我发现真的很棒:)
然而,在发布应用程序后,我意识到有一些陷阱无法与类似的竞争对手Java应用程序竞争:
最大的IMO是使用
exp
service生成的apk的大小 . 对于只有3个屏幕而不是很多业务逻辑的应用程序,安装后25 MB和大约60mb非常多 . According to expo devs更复杂的应用程序将大致相同或略大,因为大小的大部分是本机依赖项,而不是实际的javascript端 . 但这仍然是一个大问题,我可能无论如何都要用eject
应用程序来优化构建大小因此,一般来说,CRNA是一种非常快速的方式,可以启动并有一些工作,但在将应用程序发布给用户之前,您将无法避免设置自定义构建和所有依赖项,如Android Studio
我想分享我的应用程序开发经验 . 由于我是新手,我开始使用CRNA并且顺利进行 . 世博会确实提供了许多功能,如推送通知,动画(Airbnb推荐的Lottie)以及您可以随时随地使用应用程序使用本机库时弹出应用程序的安心 . 最好的部分是你不必重写任何代码,所有的世博独家功能也将起作用 . 因此,CRNA(尽可能多地使用)弹出(当你需要本地库时)=最佳点 .
我认为create-react-native-app是一个很好的开始方式,因此你可以专注于本机的反应部分,特别是如果你不熟悉React . 当你准备用本机做事时你可以简单地弹出
npm run eject
当我去年年底开始使用react本地的新项目时,没有create-react-native-app,我首先评估了expo . 我不喜欢它,因为没有简单的原生集成,除非你知道我确定需要原生集成时弹出 . 因此,我和香草一起反应原生 . 此外,我已经在网络和iOS和Android原生开发方面有过React的经验 .
TLDR
if you create project by
create_react_native_app myproject
然后它包含
expo
设置(不推荐)if you create project by
react-native myproject
然后它的简单反应原生(推荐用于小型,中型,大型项目)
Note :在终端use this link中使用
react-native
命令