【发布时间】:2013-01-07 09:49:10
【问题描述】:
我正在寻找使用 Ruby 进行移动跨平台开发的方法。我们至少需要对 Android 和 iOS 的支持,以及对 Windows Phone 和 Blackberry 的支持。这将是一款最终会出现在面向公众的应用商店中的应用,因此它不仅仅是企业内部的事情。到目前为止,我发现:
- Rhodes,涵盖了所有提到的平台和开源。我们现在不需要 RhoMobile 的额外(付费)功能
- RubyMotion;仅限 iOS,售价 199 美元,遗憾的是没有可用的试用版
- Ruboto,仅限 Android 且开源
- MobiRuby,iOS 仅计划支持 Android,开源,但在撰写本文时似乎还不够成熟,无法满足我们的需求
我们还有一个必备用例,我们需要同时访问相机和加速度计,并从屏幕上的加速度计中提取数据。因为这是非常具体的,所以我看过的任何跨平台框架(包括 Phonegap、Titanium 等其他框架)都不支持它,看起来我需要为每个平台编写本机代码才能让它工作。
到目前为止,我倾向于选择罗德。这是一个经过验证的框架,似乎能够做我需要的一切,包括上述用例的“原生化”。另一种选择是同时使用 RubyMotion 和 Ruboto,它们都是编写 Ruby 而不是 Objective-C 或 Java 的解决方案。从理论上讲,我应该能够跨平台共享通用代码(如连接和存储),尽管我找不到任何成功使用这两个代码编写适用于 Android 和 iOS 的应用程序的示例。
我想知道是否有人可以证实我的想法或者我忽略了一些东西。当然,欢迎任何其他见解。
【问题讨论】:
-
你也可以看看QT,它是一个支持大量不同平台的框架。有一个 rubygem,qtbindings,它也为 Ruby 提供绑定。
-
似乎 Rhodes 仅用于开发网络应用程序,正如我从他们的教程中了解到的那样。
-
据我了解,@Flink 是正确的,Rhodes 只是网络应用程序。
-
@Flink 仅对网络应用程序意味着什么? Rhodes 在设备上运行一个小型网络服务器,用于 Ruby 代码和 HTML 视图(在类似于 Phonegap 的设备浏览器引擎中呈现),所以我可以理解它可能看起来有点像 Rails 克隆。但它适用于应用程序开发。他们的原生扩展文档可以在here btw 找到。
-
我是 Rhodes 开发人员,制作移动应用程序,在框架方面拥有丰富的经验。有一段时间,我自己对很多事情都感到迷惑不解,因为摩托罗拉根本没有很好地记录软件。 @Rafe 您实际上似乎最了解它 - 实际上它是一个 Rails 克隆,这很奇怪,因为在这种情况下,这是一个可怕的实现的好主意。无论如何,您都可以创建和测试 UI 密集型应用程序。查看我在 mydentalcompanion.com 制作的应用程序(观看视频),看看 Rhodes 能做什么。
标签: android ios ruby cross-platform