为ios和android构建应用程序的代码是相同还是不同?我知道有两个单独的文件,一个是.ios,一个是.android,但是关于我的知识结束的地方。这是原生的反应。谢谢!
答案 0 :(得分:5)
使用Android和iOS构建的基本设置是相同的,但是一旦开始进入应用程序的开发,就会有一些差异。根据我的经验,我们可以打赌使用大约80%的代码跨平台。我听说其他人使用高达90%,我通常听说这个数字大约是85%。
要使用代码交叉平台,您只需从.ios.js或.android.js文件中复制代码,然后将其复制到另一个文件中。只要没有特定于平台的组件,它就应该有效。
此外:
有一些专门为iOS构建的模块,还有一些是专门为Android构建的,其中一些是跨平台的。例如,ActivityIndicatorIOS(https://facebook.github.io/react-native/docs/activityindicatorios.html#content)是一个iOS风格的元素,但如果你查看组件本身,你会看到ActivityIndicatorIOS.android.js和ActivityIndicatorIOS.ios.js,所以它至少应该跨平台工作,但UI可能不会是你在Android中寻找的东西。
如果您安装了任何需要访问任何本机功能的插件,例如使用自定义字体,您需要单独进行一些工作(在每个平台上)以使它们适用于每个平台并且它不会跨平台工作。
Bridging对于每个平台都是完全不同的,但这可能不是你甚至不必担心的事情,除非你需要做一些React Native不支持开箱即用的东西。 / p>
要在IOS中构建,您需要Mac和Xcode。要在Android中构建,您将需要android SDK和某种类型的模拟器(我使用Genymotion)。但请记住,截至目前,您不能在Windows机器上开发iOS,除非您使用ExponentJS之类的东西,但如果您有Mac,则可以开发跨平台。
< / LI> 醇>答案 1 :(得分:0)
自从我开始构建iOS以来,背景处理是我最初没有意识到的一件大事。我使用Redux-Observable并连接到定期向我发送消息的BLE设备。如果我的应用程序在后台运行,iOS将继续运行并获取消息并触发其他史诗。在Android上,当应用程序处于后台时情况并非如此。我从本地ble模块收到消息,然后什么都没有发生,直到应用程序返回到前台:(找到这个之后,我的体系结构发生了巨大变化。