Skip to content
This repository

a tiny graphical app kit for ruby

branch: develop

Merge pull request #251 from zzak/develop

static/manual-en.txt: change 'Recent Builds' to 'Wiki' link
latest commit 429fee8df8
Steve Klabnik steveklabnik authored
Octocat-spinner-32 bin Allow --ruby command line argument when compiled in WIN32, add ssl dl… April 03, 2009
Octocat-spinner-32 features Fix failing cukes March 26, 2012
Octocat-spinner-32 fonts * lib/shoes.rb: new splash window, opening with the modal file dialo… December 04, 2008
Octocat-spinner-32 gemlib Setting up infrastructure for Shoes gem. February 27, 2011
Octocat-spinner-32 lib Fix failing cukes March 26, 2012
Octocat-spinner-32 make Merge pull request #188 from wasnotrice/build March 27, 2012
Octocat-spinner-32 manual-snapshots Added simple-video.png as a snapshot for html manual. August 15, 2010
Octocat-spinner-32 platform fixing compilation on linux and RbConfig March 09, 2012
Octocat-spinner-32 req Fix build for ruby 2.0 December 02, 2012
Octocat-spinner-32 samples Sample game of life on shoes August 28, 2013
Octocat-spinner-32 shoes Fix :resizable=>false behavior on Linux. Closes #110 April 24, 2012
Octocat-spinner-32 spec Use Syck engine for YAML. Fixes #187 March 13, 2012
Octocat-spinner-32 static static/manual-en.txt: change 'Recent Builds' to 'Wiki' link September 23, 2013
Octocat-spinner-32 tasks Make sure gem specifications get copied over March 22, 2012
Octocat-spinner-32 .gitignore Ignore DS_Store files March 13, 2012
Octocat-spinner-32 .rvmrc Bump to 1.9.3p125 March 07, 2012
Octocat-spinner-32 .travis.yml Let's ping the ML when the build breaks March 26, 2012
Octocat-spinner-32 CHANGELOG Updating CHANGELOG for Policeman. August 18, 2010
Octocat-spinner-32 COPYING * lib/shoes.rb: new splash window, opening with the modal file dialo… December 04, 2008
Octocat-spinner-32 Gemfile Shoes-cucumber depends on shoes-mocks, at least it should September 25, 2011
Octocat-spinner-32 Gemfile.lock Change RUBY_PLATFORM to SHOES_RUBY_ARCH October 26, 2011
Octocat-spinner-32 README.md Added information about status that we moved on to shoes4 September 09, 2013
Octocat-spinner-32 Rakefile changed the version string to a better format September 26, 2012
Octocat-spinner-32 Rakefile.bk Restore rake/make files and some source files using in Shoes 3 for Wi… February 26, 2012
Octocat-spinner-32 Rakefile_for_windows Edited a little bit to build shoes.exe on Windows. March 25, 2012
Octocat-spinner-32 app.yaml Restore rake/make files and some source files using in Shoes 3 for Wi… February 26, 2012
Octocat-spinner-32 rakefile_darwin.rb Starting rakefile refactor. September 07, 2011
Octocat-spinner-32 rakefile_linux.rb Starting rakefile refactor. September 07, 2011
Octocat-spinner-32 rakefile_mingw.rb Restore rake/make files and some source files using in Shoes 3 for Wi… February 26, 2012
Octocat-spinner-32 rakefile_mingw.rb.bk Restore rake/make files and some source files using in Shoes 3 for Wi… February 26, 2012
Octocat-spinner-32 shoes.gemspec Setting up infrastructure for Shoes gem. February 27, 2011
README.md
    ((( |||_| ///\ [[[_ (((
     ))) || |  \\/  [[_  )))
  an artsy any-platform app kit
      http://shoesrb.com

About Shoes

Shoes is the best little DSL for cross-platform GUI programming there is. It feels like real Ruby, rather than just another C++ library wrapper. If Gtk or wxWidgets is Rails, Shoes is Sinatra.

Let me tell you a story about Shoes

Way way back in the day, there was a guy named _why. He created a project known as Hackety Hack to teach programming to everyone. In order to reach all corners of the earth, _why decided to make Hackety Hack work on Windows, Mac OS X, and Linux. This was a lot of work, and so _why decided to share his toolkit with the world. Thus, Shoes was born.

Everybody loved Shoes and many apps were made. But, one day, _why left. In his memory, Team Shoes assembled, and carried on making Shoes. They released Shoes 3 in late summer 2010.

Attention: Development moved to shoes4

Due to various issues (including compilation/release, stability) with this shoes implementation development moved on to shoes4. Shoes4 is a complete all Ruby rewrite of shoes. It's goal is to be as close to 100% backwards compatible as it can get e.g. it implements the same DSL.

So what does that mean? Well we accept pull requests but are not actively developing/releasing this shoes version. Our development efforts are now concentrated on shoes4, which is shaping up to become the new default implementation. It is already quite far and a lot of things already work.

So what do these Shoes look like?

Here's a little Shoes app. It's a stopwatch!

Shoes.app height: 150, width: 250 do
  background rgb(240, 250, 208)
  stack margin: 10 do
    button "Start" do
      @time = Time.now
      @label.replace "Stop watch started at #@time"
    end
    button "Stop" do
      @label.replace "Stopped, ", strong("#{Time.now - @time}"), " seconds elapsed."
    end
    @label = para "Press ", strong("start"), " to begin timing."
  end
end

Here's what it looks like:

shoes timer

Pretty simple! For more samples, the manual, and a free book, check out the Shoes website.

Using Shoes

If you'd like to use Shoes to develop some apps... awesome! It's super easy: Just go to the downloads page on the Shoes website and download a copy of Shoes for your platform. Mac OSX, Windows, and Linux supported!

After you install Shoes, run it! You'll get a window like this:

shoes main window

You can then open any .rb file with Shoes code inside by choosing "Open an App." It'll open it up and run it, right away.

Once you're happy with your app, you can choose "Package an App" to wrap up your app as a .exe, .app, or a .run. Then you can share it with someone without a pair of Shoes to call their own.

Making your own Shoes

You can make your own pair of Shoes with a little bit of elbow grease. Since there are different instructions on each platform, we've got a page up on the Shoes development wiki about it. It's right here.

Shoes Around the Web

If you want to keep up to date with what's going on with Shoes, you can find us in various places:

Helping out with Shoes

So you'd like to lend a helping hand, eh? Great! We'd love to have you. To submit a patch to Shoes, just fork us, and send a pull request.

If you don't have any ideas yourself, take a look at the Issue tracker and see if anything strikes your fancy. If you need help working on something, don't be afraid to post to the mailing list about it!

Be sure to peer into the Shoes Wiki for instructions on how to get the source code to build, and to learn more knowledge that will come in handy if you want to help out!

If you're not a programmer, you can help Shoes by talking about it! Blog posts, tweets, tell your neighbors, call your grandma, whatever! Share Shoes with everyone!

Something went wrong with that request. Please try again.