3

所以我目前正在将 Xamarin 用于多平台移动应用程序。我真的很喜欢这种工作方式,我想改善我的流程。我的开发人员说过,在本地编程时他们会更快(即 XCode 中的 Swift for iOS)。

我一直在寻找一种解决方案,我可以在其中创建一个共享项目并在本机应用程序中使用它,但我只找到了涉及在所有平台上使用一种语言进行编程的方法。

有没有办法创建一个共享项目,它可以导入到本机应用程序中(或者更好的是,可以一起运行,就像 Xamarin 中的共享项目一样)?

共享代码的语言并不重要,只要它不慢。

4

3 回答 3

4

我的开发人员说他们在本地编程时会快得多(即 XCode 中的 Swift for iOS)

Swift 可以原生地用于 iOS 应用程序。RemObjects 的 Silver应该让 Swift 为 Android 和 .NET 做好准备。我从来没有测试过它。试试看,它是免费的。

RoboVM可用于用 Java 编写 iOS 应用程序。我也没试过。

与 Xamarin 混合的语言

如果您想使用 Xamarin 将 Swift 代码与 C# 代码混合,那么您可以绑定 Objective-C 兼容的 Swift 代码并仅在 iOS 项目中使用它。您无法在 Android 或 Windows Phone 上执行 Swift 代码!在 Swift 中编写独立于平台的业务逻辑并在 Xamarin 的共享库或 PCL 中使用它是不可能的。

对于 Android 上的 Java 代码,您面临同样的限制:您可以绑定 JAR 并在 Xamarin.Android 项目中使用它们,但不能在 iOS 或 Windows Phone 上使用它们。

您也无法在 iOS 上基于 Swift 的应用程序或 Android 上基于 Java 的应用程序中执行 C# 代码。

于 2015-10-14T16:09:04.560 回答
1

如果目标是使用真正的原生工具,在其标准语言(不是 Xamarin)中,并且仍然在 iOS 和 Android 之间共享代码,这可以通过用 C++ 编写非 UI 代码来实现。

这是一篇关于 Dropbox 如何做到这一点的非常有趣的文章。

iOS 原生支持 C++,使用 Objective-C++ 在 Objective-C 和 C++ 之间进行交互非常容易。

在 Android 上,调用 C++ 可以通过 NDK 完成,据说使用起来并不愉快。Dropbox 发现 Google 的元构建系统 gyp 运行良好。此外,Java 原生接口是您必须接受的痛苦。但这些问题都不是障碍,史蒂文表示希望谷歌或社区随着时间的推移建立更好的工具支持。

这是另一个 StackOverflow 帖子中如何做到这一点的简单示例

于 2015-10-18T14:17:43.580 回答
1

您可以通过Binding Libraries在 Xamarin 应用程序中使用本机代码。您不能在本机应用程序中使用 Xamarin 库。

于 2015-10-14T14:57:50.470 回答