【问题标题】:What Ruby based mobile cross-platform solution to use? [closed]使用什么基于 Ruby 的移动跨平台解决方案? [关闭]
【发布时间】: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,它是一个支持大量不同平台的框架。有一个 ruby​​gem,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


【解决方案1】:

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

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 请注意,现在 ruby​​motion 支持 android(和 OS X,但不支持 windows)
    【解决方案3】:

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

    【讨论】:

    • Rhodes 实际上与 Web 应用程序有很大关系,因为整个架构都是按照 Rails 建模的,并且兼容 RESTful Web 应用程序接口。原生应用程序的概念只是部分准确,因为存在可能导致性能问题的非原生组件。另外,您对成熟度的看法不正确;代码库存在严重缺陷,支持和文档非常糟糕。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多