16

我正在寻找使用 Ruby 进行移动跨平台开发的方法。我们至少需要对 Android 和 iOS 的支持,以及对 Windows Phone 和 Blackberry 的支持。这将是一款最终会出现在面向公众的应用商店中的应用,因此它不仅仅是企业内部的事情。到目前为止,我发现:

  • Rhodes,涵盖了所有提到的平台和开源平台。我们现在不需要 RhoMobile 的额外(付费)功能
  • 红宝石运动;仅限 iOS,售价 199 美元,遗憾的是没有可用的试用版
  • Ruboto,仅限 Android 和开源
  • MobiRuby,iOS 仅计划支持 Android,开源,但在撰写本文时看起来还不够成熟,无法满足我们的需求

我们还有一个必备用例,我们需要同时访问相机和加速度计,并从屏幕上的加速度计中提取数据。因为这是非常具体的,所以我看过的任何跨平台框架(包括 Phonegap、Titanium 等其他框架)都不支持它,看起来我需要为每个平台编写本机代码才能让它工作。

到目前为止,我倾向于选择罗德。这是一个经过验证的框架,似乎能够做我需要的一切,包括上述用例的“原生化”。另一种选择是同时使用 RubyMotion 和 Ruboto,它们都是编写 Ruby 而不是 Objective-C 或 Java 的解决方案。从理论上讲,我应该能够跨平台共享通用代码(如连接和存储),尽管我找不到任何成功使用这两个代码编写适用于 Android 和 iOS 的应用程序的示例。

我想知道是否有人可以证实我的想法或者我忽略了一些东西。当然,欢迎任何其他见解。

4

3 回答 3

4

如果您选择 Ruboto,您可以按原样使用与 UI 无关的 Ruby 代码。无论如何,UI 代码很可能是平台相关的。

Ruboto 还很年轻,但有更多的项目开始使用它。一个例子是

https://play.google.com/store/apps/details?id=com.jonsoft.globalchat

它跨平台共享通信 Ruby 代码。

作为 Ruboto 项目的开发人员之一,我可以向您保证良好的支持和完整的 Ruby 体验。

对于 iOS RubyMotion 看起来不错,但我没有使用它。您应该能够为公共逻辑使用共享代码库,但为 UI 和访问传感器使用单独的代码库。

于 2013-01-08T09:17:38.143 回答
2

我会继续为 Android 使用原生 Java,为 iOS 使用 RubyMotion,并拥有两个代码库。RubyMotion 是您提到的最稳定的,并且值得用于 iOS 开发,但在 Android 平台上没有很好的选择。

于 2013-01-08T00:54:06.570 回答
0

Rhodes has nothing do with web apps. Rhodes allows you to build native apps with Ruby and is many years more mature than those alternatives. It also supports every major smartphone OS

于 2013-01-09T00:15:18.840 回答