Ruby Programming/GUI Toolkit Modules

From Wikibooks, open books for an open world
Jump to: navigation, search

Ruby GUI toolkits are typically 3rd party GUI platforms that are driven (wrapped) by a Ruby driver.

Ruby bindings are available for several widget toolkits, among them Tk, Gtk, Fox, and Qt.

QtRuby[edit]

  • QtRuby gives you Ruby bindings to the Qt toolkit (the one used in the KDE desktop system).

Advantages:

  • Has a book.
  • Has Qt designer for help designing.

Disadvantages:

  • While a gem is available for the Windows installation, only source code is available for other platforms.

FXRuby[edit]

FXRuby is a Ruby binding for the Fox GUI toolkit written in C++. It is available for installation using RubyGems.

Advantages:

  • Has a gem.

Disadvantages:

  • Non-native look and feel. It looks like Windows XP even on a Mac or in Windows 7.
  • Binary gems are available for Windows, OS X, and Ubuntu Linux but for other platforms, installing the gem requires you to compile native code.
  • Even with binary gems it has non-Ruby dependencies that cannot be packaged with the code thus requiring end users to manually download, compile, and install dependencies.

Shoes[edit]

Shoes was originally written by _why, and is now maintained by others. Its aim is to make ruby GUI development actually fun.

Advantages:

  • Simple.
  • Cool graphics, control at a lower level, simple interface, can be used to distribute redistributables easily, used to have examples available.

Disadvantages:

  • No gem (current gem, 3.0.1, is a place holder that does nothing), still a bit rough around the edges since it attempts to support so many platforms.
  • Lacks many of the more robust widgets common in other toolkits.
  • Not suitable for production use.

Tk[edit]

Advantages:

  • Bindings are built-in to some Ruby distros.

Disadvantages:

  • Since Tk 8.5 it has had native look-and-feel for Windows, *nix and Mac.
  • Has Ruby-DSL for interface declaration.
  • When you install Ruby from source code, you need to be sure you also have the Tk dependencies and make sure the compilation settings include Tk.

Example project: arcadia More information: Tk

GNOME ruby[edit]

Advantages:

  • Native look.

Disadvantages:

  • Bad windows support
  • Doesn't support multi threaded testing well.

RubyCocoa[edit]

Advantages:

  • well integrated with MacRuby, good balance between power and ease of coding. Good support for testing.

Disadvantages:

  • OS X only

JRuby toolkits[edit]

  • Note that you can use the Rawr tool to cross-platform package any JRuby application so that it includes all the code plus JRuby. The only real external dependency when using JRuby + Rawr is Java. Also working with JRuby might integrate well with editing using NetBeans editor.

Swing wrappers[edit]

Advantages:

  • Swing is built in to the JRI.
  • You can also create the UI using a traditional java visual developer, like NetBeans, then use it in Ruby.

Disadvantages:

  • Some wrappers libraries are a little rough.

Simple GUI creator[edit]

This simplifies common tasks like asking for user input, dropdown forms, etc, and even has its own "Text based" layout engine, see here

SWT[edit]

This is the eclipse widget library, a competitor to Swing, in the Java world, and can be transparently used from JRuby. A project using it that is pretty complete. Also see: book

Advantages:

  • Mature (used by Eclipse and supported), uses native widgets for the most part (like wxWidgets), cross platform.
  • Extensive Java documentation around the toolkit.

Disadvantages:

  • JARs must be bundled for cross platform deployment.