OSX Mavericks(Not Shoes或Ruby Motion)上的Ruby GUI支持以及OSX应用程序包支持

时间:2014-03-16 23:28:38

标签: ruby user-interface osx-mavericks

这已被多次询问过。现在有些答案很老了。我到处都看了两件事。这是我放弃之前的最后一招。寻找:

  • 使用Mavericks使用Ruby(不是Shoes)进行GUI编程的绑定。我找到了很多绑定但过去3或4年没有活动,除了RubyMotion这似乎非常昂贵,而没有利用Xcode功能/没有IDE。

  • 将用户打包应用程序作为常规OSX应用程序的方法,这样用户就不必在OSX上手动安装任何东西(如果更好的目标也可以更好地定位Windows)

我已经爱上了Ruby但是如果没有解决上述问题的手段将难以为用户部署,而我对Rails不感兴趣。 像Rails流行的感觉实际上已经杀死了Ruby,因为它可能会更多地将它放入一个利基市场。

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

2 个答案:

答案 0 :(得分:2)

我用tk,green shoes和gosu成功编译脚本作为ocra的可执行文件的GUI,但只有在Windows上有这样的经验。如果你想要一个实际的跨平台GUI,试试jruby的java swing框架,这里有一个例子。 如果部署JAR或可执行文件,则需要进一步安装。 我想你现在使用的是MRI红宝石,走向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)

答案 1 :(得分: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只会派上用场。

所以我的建议是你可以测试rubymotion。如果你只想尝试一下,他们会在前30天给你钱。所以如果你有钱可以尝试一下。

如果您是osx开发的新手并且只想为osx开发,我认为您应该使用objective-c。语言并不是那么糟糕,你将获得免费的最佳开发环境。