【问题标题】:Ruby GUI support on OSX Mavericks (Not Shoes or Ruby Motion) plus OSX app package supportOSX Mavericks(不是鞋子或 Ruby Motion)上的 Ruby GUI 支持以及 OSX 应用程序包支持
【发布时间】:2014-04-22 01:51:56
【问题描述】:

这个问题已经被问过很多次了。有些答案现在已经很老了。我到处找了两件事。这是我放弃之前的最后手段。正在寻找:

  • 绑定将允许使用 Mavericks 使用 Ruby(不是 Shoes)进行 GUI 编程。我发现了很多绑定,但在过去的 3 或 4 年中没有任何活动,除了 RubyMotion 似乎非常昂贵,同时没有利用 Xcode 功能/没有 IDE。

  • 为用户打包应用程序作为常规 OSX 应用程序的方式,这样用户就不必在 OSX 上手动安装任何东西(如果多平台也更好地针对 Windows)

我已经爱上了 Ruby,但是如果没有解决上述问题的方法,用户将很难部署,而我对 Rails 不感兴趣。 感觉 Rails 的受欢迎程度实际上已经扼杀了 Ruby,因为它本来可以更多。

关于这两条战线的任何新消息或一切都被遗弃/死亡? 我应该继续使用 Python / Objective-C 吗? (我都喜欢,但更喜欢 Ruby)

【问题讨论】:

    标签: ruby user-interface osx-mavericks


    【解决方案1】:

    我成功地将带有 tk、green shoes 和 gosu 的脚本编译为带有 ocra 的可执行文件的 GUI,但只有在 Windows 上这样做的经验。如果您想要一个实际的跨平台 GUI,请尝试使用 jruby 的 java swing 框架,这里是一个示例。 如果您部署 JAR 或可执行文件,则需要进一步安装。 我想你现在用的是 MRI ruby​​,jruby 的步骤并不难。

    require 'java'
    
    # With the 'require' above, we can now refer to things that are part of the
    # standard Java platform via their full paths.
    frame = javax.swing.JFrame.new("Window") # Creating a Java JFrame
    label = javax.swing.JLabel.new("Hello")
    
    # We can transparently call Java methods on Java objects, just as if they were defined in Ruby.
    frame.getContentPane.add(label)  # Invoking the Java method 'getContentPane'.
    frame.setDefaultCloseOperation(javax.swing.JFrame::EXIT_ON_CLOSE)
    frame.pack
    frame.setVisible(true)
    

    【讨论】:

    • 谢谢。探索了jruby,但还不够深入。对 java swing 框架不是很了解,但会尝试一些小例子。有趣,因为它可以解决这两个问题。图形用户界面 + JAR。会试一试的。
    • 我使用 warble 来压缩我的 jruby 脚本
    【解决方案2】:

    RubyMotion 是最好的选择。但是如果不想花钱的话应该可以用macruby。

    这里有一些资源

    http://blog.phusion.nl/2010/03/12/creating-our-very-first-mac-application-with-ruby-how-exciting/

    我必须说,将 macruby 用于大型项目可能不是一个好主意。你应该期待一些东西打破和很少的支持。截至 2015 年,[GitHub 上的 MacRuby 页面][3] 表示,由于 Apple 对 MacRuby 所依赖的 Objective C 垃圾收集支持所做的更改,该项目处于无限期中断。他们建议使用 RubyMotion。

    RubyMotion 似乎非常适合您想要的东西,但对于开发而言,缺少 IDE 确实是一个巨大的缺点。另外,根据我的经验,只有当您已经非常了解可可框架时,rubymotion 才会派上用场。

    因此,如果可以,我建议您测试 ruby​​motion。如果您只想尝试一下,他们会在前 30 天内退还您的钱。所以如果你有钱可以试试看。

    如果您是 osx 开发的新手并且只想为 osx 开发,我认为您应该使用 Objective-c。该语言还不错,您将免费获得最好的开发环境。

    【讨论】:

    • 感谢您的回复。我知道 Cocoa 框架并且目前使用 Objective-C 进行开发,所以在这方面没有问题。将用一个小测试项目检查 macruby。只是检查以确保我可能错过的管道中没有任何新内容。正如您所说,Ruby Motion 的问题在于没有 IDE,而今天我免费享受非常好的一个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多