2013-01-07 93 views
15

我正在寻找使用Ruby进行移动跨平台开发的方法。我们至少需要Android和iOS的支持,并且Windows Phone和Blackberry支持也很好。这将是一个应用程序,最终将在大众的应用程序商店,所以它不是一个企业内部唯一的事情。到目前为止,我发现:基于Ruby的移动跨平台解决方案的使用?

  • Rhodes,涵盖了所有提到的平台和开源。我们现在不需要RhoMobile的额外(付费)功能
  • RubyMotion;只是,收费199 DOLLA的iOS,可惜没有提供试用版
  • Ruboto,仅适用于Android和开源
  • MobiRuby,仅适用于iOS与Android的支持计划,开源的,但看起来像它不是在写作的时候还不够成熟满足我们的需求

我们也有一个必须具备的使用案例,我们需要同时访问摄像头和加速度计,并在屏幕上从加速度计绘制数据。因为它非常特殊,所以在我看过的任何跨平台框架(包括Phonegap,Titanium等其他框架)中都不支持它,并且看起来我需要为每个平台编写本机代码才能实现此功能。

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

我想知道如果有人能证实我的想法或我忽略了某些东西。当然欢迎任何额外的见解。

+1

你也可以看看[QT](http://en.wikipedia。org/wiki/Qt_%28framework%29#平台),它是支持大量不同平台的框架。还有一个rubygem,[qtbindings](http://rubygems.org/gems/qtbindings),它也提供了Ruby的绑定。 –

+1

似乎Rhodes仅用于开发Web应用程序,正如我从他们的教程中了解的那样。 – Shmidt

+0

据我所知,@Flink是正确的,罗德斯只是网络应用程序。 –

回答

2

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

+0

作为说明,rubymotion最近支持android(和OS X,但不是windows) – rogerdpack

4

如果您选择Ruboto,您可以按原样使用独立于UI的Ruby代码。无论如何,UI代码很可能会依赖于平台。

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

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

这股跨平台通信Ruby代码。

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

对于iOS RubyMotion看起来不错,但我没有使用它。您应该能够使用共享代码库来实现通用逻辑,但是需要为UI和访问传感器分别设置代码库。

0

Rhodes与网络应用程序无关。 Rhodes允许您使用Ruby构建本机应用程序,并且比这些替代方法要成熟许多年。它还支持所有主要的智能手机操作系统

+0

Rhodes与Web应用程序有很多相似之处,因为整个架构都是在Rails之后建模的,并且与RESTful Web应用程序接口兼容。本机应用程序的概念只是部分启动,因为存在可能导致性能问题的非本地组件。另外,你对成熟度不正确。代码库存在严重缺陷,支持和文档非常糟糕。 –

相关问题