2017-07-15 69 views
13

我要开始做出反应的本机应用的发展和需要帮助,我应该去哪个路径决定。阵营VS本土反应创建本地应用

的主要问题是:我应该去与反应天然或反应过来创建本机应用程序?

据我了解,CRNA还真是反应原生利用世博会的客户端和工具,提供更舒适的使用(无须开发账号等)

我能看到的优点,使用CRNA在反应母语(不需要设置依赖关系,从开始开发的更快时间,不需要iPhone dev帐户或xcode + android组合等等)

但是,由于并非所有的本地库都包含在内,无论如何需要在以后导出我的应用程序,并继续像以前一样使用xcode和android studio。

所以,如果CRNA仅仅是一个很好的方式,开始使用一切,那么我会,因为我在一个临时的解决方案看不出有任何点都去香草反应原生的时候了。

另外,也许你可以纠正我在这,我不喜欢这个主意,刚才我的应用程序的顶部的另一个包装,除非有我错过了一些更关键的优势。

所以,请你分享你的看法?如果您过去开发的应用程序具有原生的应用程序,那么您将走哪条路,以及将来要走哪条路?回应本地,CRNA或反应原生和世博环境?

在此先感谢。

回答

9

您好我也会分享一些我的话题经验。

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

事实上,只需一个文本编辑器,纯粹使用JavaScript并利用内置的expo SDK组件,我很快就能够实现并发布到Play Store a fairly simple app。 ,我觉得真正了不起的:)

但是发布的应用程序后,我意识到有一些缺陷是无法使其与同类竞争对手的Java应用程序竞争:

IMO跌幅最大的是APK与exp产生的大小 服务。 对于只有3个屏幕而不是很多商业逻辑的应用程序,安装后的25 MB和大约60 MB真的很多。 According to expo devs更复杂的应用程序将大致相同的大小或仅略大一些,因为大小的大部分是本机依赖项,​​而不是实际的JavaScript端。 但是,这仍然是一个大问题,我可能要反正eject的应用,进而优化了建筑面积

所以一般CRNA是一个伟大的和快速的方式来启动和发布应用之前,有一些工作,但仍您不会避免使用您的自定义内部版本和所有依赖关系,如Android Studio

5

我认为create-react-native-app是一个很好的启动方式,因此您可以专注于原生反应的React部分,特别是如果您不熟悉React。当你准备好用本机做事情时,你可以简单地弹出npm run eject

当我在去年年底开始一个新项目时,反应本土应用程序并没有创建反应本机应用程序,我首先评估了世博会。我不喜欢它,因为没有简单的本地整合,除非你知道我们确实需要本地整合,否则会弹出。因此,我与香草反应本土。此外,我在网络和iOS和Android本机开发方面已经有了React的经验。

+0

如何在您的应用程序中添加webpack + typescript +单元测试+测试覆盖率? –

+0

无论使用React本机默认打包器,我们都不使用webpack。虽然您可以使用React Native结账https://github.com/callstack-io/haul以使用webpack。我没有使用打字稿,但我们正在为项目添加流程。我们使用jest进行测试,这已经与istanbul集成,可以提供很好的测试覆盖率输出。 – hyb175

+0

嗨,我是React Native的新手。我使用create-react-native-app创建了我的应用程序,然后使用expo构建了我的apk,但是apk的大小很大,25mb +我的问题是create-react-native-app自动包含expo模块? –