我知道这是在路线图上,但是我不清楚这将是一个单独的开源项目(例如,React Android vs React Native),还是只有一个(例如React Native)。
React Native只是使JavaScript中的几乎所有内容更容易编写。但是有一个catch,只有大约80%的JS代码可以被共享。在可预见的将来,您仍然需要为Android和iOS版本编写“特定于平台的”JS代码。
这就是为什么FB说他们的目的是“学习一次,代码在任何地方”,而不是“跑”到处。
但除了代码重用(除了维护2个完全不同的版本:Android和iOS ya之外,80%的代码重用性仍然是一个很大的改进),它还是非常好的
Cmd R刷新应用程序是发展速度极大的提升。等待一个大项目编译只是让你觉得你正在死亡..
声明性的UI你可以免费获得,因为使用React。这是另一个很好的加分!因为您不需要“挖掘”到您的特定UI代码中。数据变化了只需“刷新”它,UI就会相应更新。没有脑汁浪费了。
我刚刚把我的Android React Native应用程序移植到了iOS版本。而我花了3天的时间。应用程序的请求和iOS版本是一个相当突然和无计划的动作。如果我用iOS的方案构建Android,那么肯定会更快。巨大的胜利:)
另一个很大的好处是可以做热代码推送,而不会经历地狱1周的应用商店审查过程。所以没有更多的,“YAY,我们的应用程序被批准,让我们释放哦,Shiiit。严重的错误和我们的应用程序不断崩溃(这将在你的修复之前至少一个星期发生),你必须乞求苹果速度过程“。这是可能的,因为代码库的主要部分将以JS编写,并使用像AppHub或CodePush这样的工具,几乎可以立即将代码部署到用户。这是有条件的允许苹果。
3.3.2 An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts,code and interpreters are packaged in the Application and not downloaded. The only exception to the foregoing is scripts and code downloaded and run by Apple’s built-in WebKit framework,provided that such scripts and code do not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store.
最后,作为一个开源项目,项目长寿往往是一个问题。 React Native不是问题。由FB(广告经理)内部使用,由FB(十几个FB工程师?)由Facebook支持,近500个贡献者和25k星,React Native充满活力。看到相信:)(https://github.com/facebook/react-native)
编辑
我意识到我显然有点偏见,只谈到关于React Native的好东西。所以,checkout https://productpains.com/product/react-native/和Github的问题要全面了解。这绝对不是子弹。话虽如此,它满足了大部分我的用例,我很快就看不到我使用原生的iOS或Android。
编辑
Facebook(?)的Facebook F8会议应用程序是100%的开源,他们有一个非常好的教程,向您展示如何拥有iOS和Android本机体验(90%与本机相同),以及同时,实现了85%的代码重用。检查出来 – > https://makeitopen.com