反应本机和Android?

我正在考虑将React Native用于新的Web应用程序。 使用它可以发送iOS和Android应用程序吗?

我知道这是在路线图上,但是我不清楚它是一个单独的开源项目(例如React Android vs React Native),还是一个(例如React Native)。

Solutions Collecting From Web of "反应本机和Android?"

你可以瞄准大约80〜99 +%(取决于你使用多lessAndroid / iOS原生视图/模块,例如你有自定义的graphics代码或低级的TCPnetworking代码;只能用本机代码完成;作为你的JS代码的API,平台特定的JS代码的数量实际上是最小的,另外你也可以使用if (Platform.OS === 'android'){}来解决代码重用的平台检查,很不错。 Dropbox和其他公司已经完成了类似的项目:使用c ++在iOS和Android项目之间构build“共享”组件,同时在本机iOS(Objective-c或Swift)和Android(java)中实现大部分UI代码。 但是现在你正在用Java和ObjectiveC或者Swift来做C ++,掌握更多的语言,更复杂和更多的脑力下降。 它可能需要一些超级艰难的体操运动,使iOS和Android的不同本地代码工作,再加上debugging…

React Native使得使用JavaScript编写几乎所有的东西变得更容易 。 但有一个问题,只有大约80%的JS代码可以共享。 在可预见的将来,您还需要为Android和iOS版本编写“特定于平台的”JS代码。

这就是为什么FB表示他们的目标是“一次学习,随处编码”,而不是到处跑。

但是除了代码重用之外,它仍然非常好(与维护两个完全不同的版本(Android和iOS ya)相比, 80 +%的代码重用仍然是一个很大的改进)

Cmd + R刷新应用程序是一个伟大的发展速度提升。 等待一个大的项目编译,只会让你觉得你快死了

声明式用户界面,你可以免费获得,因为使用React。 这是另一个伟大的优点! 因为你不需要经常“挖掘”你的特定的UI代码。 数据改变了? 只需“刷新”它和UI只是相应地更新。 没有脑汁浪费。

只是移植了我不那么复杂的Android React Native App到iOS 。 而我花了3天 。 对应用程序的请求和iOS版本是一个相当突然和无计划的举动。 所以如果我也为iOS构buildAndroid计划,速度肯定会更快。 巨大的胜利:)

另一个很大的好处就是能够在不经过地狱般的1周app store评论过程的情况下进行热推代码 。 我们的应用程序已被批准,我们的应用程序已经批准,我们发布,哦,Shiiit,严重的错误和我们的应用程序不断崩溃(这将继续发生至less一个星期之前,你的修复是活的),而且你必须乞求苹果的速度整个过程“。 这是可能的,因为代码库的主要部分将用JS和AppHub或CodePush等工具编写 ,您几乎可以立即将代码部署到用户。 这是苹果有条件允许的。

3.3.2应用程序不得下载或安装可执行代码。 如果所有的脚本,代码和解释器都被封装在应用程序中,并且没有被下载,那么解释的代码只能在应用程序中使用。 上述唯一的例外情况是脚本和代码由Apple内置的WebKit框架下载和运行,前提是这些脚本和代码不会改变应用程序的主要用途,因为它提供的function或function与预期和广告目的不一致提交给App Store的应用程序。

最后,作为一个开源项目, 项目的长寿往往是一个问题。 React Native不是问题。 React Native由Facebook(FB广告经理)内部使用,由FB(十几个FB Engineers?)提供支持,有近500名贡献者和25k星级用户 。 眼见为实:)( https://github.com/facebook/react-native


编辑

我意识到,我显然有点偏见,只谈论有关React Native 的好东西 。 所以结帐https://productpains.com/product/react-native/和Github问题有一个完整的图片。 这绝对不是银弹 。 这就是说,它满足了我的大多数情况下,我不能看到我很快使用本机的iOS或Android。

编辑由Facebook Facebook的F8会议应用程序发布(杜..)是100%的开源,他们有一个非常好的教程,告诉你如何可以有iOS和Android的本地经验(90%,本地?),和同时实现了85%的代码重用。 检查出来 – > https://makeitopen.com

如果你想要一个真正的本地体验,那么只有一个代码库是没有意义的。 目前,我们有React Native中的NavigatorIOS,它提供了iOS风格的用户界面,用于在应用程序屏幕之间进行导航,但是如果我们刚开始在Android上使用它,则不会感觉像是一个真正的Android应用程序。

因此,当期望时,我期望看到一个NavigatorAndroid组件或类似的东西,而在平台之间performance不同的其他组件也是如此。

您将获得的一个好处是,任何应用程序逻辑(可能是商店或后端交互)都可以用JavaScript文件编写,然后包含在iOS和Android中。

因此,虽然您不会从React Native那里获得这种一次性运行的开发人员体验,但我期望看到一个在两个平台上都能提供一streamUI的解决scheme,同时鼓励尽可能多的重用。 我个人也希望看到强大的构build工具来帮助在多个平台上开发和发布。

React Native for Android刚刚发布,Android文件夹将在创build新项目时与iOS文件夹一起创build。

NavigatorIOS的另一个提示被提及。 Facebook并没有真正维护NavigatorIOS的代码。 相反,他们专注于导航。

是。 我们正在生产中使用约500万注册用户。

有些东西稍微落后于iOS,但很快赶上。 继续前进是一件好事。

React Native的devise使您可以部署到iOS和Android。 当然有一个警告。

React Native支持iOS的时间更长,最近才来到Android。 所以,在每个平台上支持什么都有一些差异。

例如,如果您将边框放置在文本上,则会显示在iOS上,而不显示在Android上。 为了克服这个问题,你需要在文本周围放置一个视图,并在其上应用边框。 幸运的是,React Native可以很容易地为每个平台集成单独的样式表(甚至是在单个样式表上的平台特定的样式)。

对Android的支持不断发展,所以Android的React Native与iOS相同只是时间问题。 不过,这不应该阻止你。 根据我的经验,这是一个快速开发这两个平台的好方法,它确实可以节省一些头痛的问题。

你不需要为android&ios维护单独的代码库。 其实你可以使用相同的代码库构buildandroid&ios。 在使用代码中的任何内置组件之前,我build议阅读react-native 文档 (根据您使用的react-native版本)。 例如: – TextInput组件onKeyPress函数仅支持ios。

如果你正在使用外部库检查这些lib支持iOS和Android。 无论如何,你必须分别configuration外部库(安装)Android和IOS。

希望这会有所帮助。