Giter Club home page Giter Club logo

furoshiki's Introduction

THIS REPO IS NO LONGER ACTIVE!

Looking for continuing Shoes 3 support (CRuby-based)? Try https://github.com/shoes/shoes3

Looking for new development with Shoes 4 (JRuby)? Try https://github.com/shoes/shoes4

    ((( |||_| ///\ [[[_ (((
     ))) || |  \\/  [[_  )))
  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.

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!

furoshiki's People

Contributors

jasonrclark avatar ndrluis avatar pragtob avatar steveklabnik avatar tlemburg avatar wasnotrice avatar xorwell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

furoshiki's Issues

Release 0.3.1

Getting Shoes 4.0.0.pre4 out the door (shoes/shoes4#1116), we need a new gem release of furoshiki (0.3.1)

Any objections to me making that release?
#16 is out there, but I haven't been able to duplicate it, and we can always rev furoshiki independently of shoes since we've got a ~> on it in shoes-package.

If I don't hear anything to the contrary, likely to cut the gem on Friday evening.

Take a look at jbundler

It might be worth to take a look at jbundler for packaging up and bundling applicatios with jbundler.

Something that particularly caught my interest from the release notes was this:

  • jbundle executable -b bootstrap.rb will pack all gems and jars along with jruby itself and creates an executable jar. use the jruby '1.7.4' declaration inside the Jarfile to determine the jruby version to use for packing - defaults to the jruby used to execute jbundle

what do you think? Can this help us? @wasnotrice

Deprecations warning from RSpec

When running the specs I get this:

WARNING: let declaration `output_dir` accessed in a `before(:all)` hook at:
  /home/tobi/github/furoshiki/spec/shoes/swt_jar_spec.rb:17:in `(root)'

This is deprecated behavior that will not be supported in RSpec 3.

`let` and `subject` declarations are not intended to be called
in a `before(:all)` hook, as they exist to define state that
is reset between each example, while `before(:all)` exists to
define state that is shared across examples in an example group.

(using rspec 2.13.0 and rspec-core 2.13.1).
This might also have introduced the bug once back when this was in the shoes4 repository. I dunno what the best thing to handle this is, I'd guess an instance variable but what do you think?

(same thing happens in the swt_app_spec)

Upgrade rubyzip

Right now we are still using a rubyzip version smaller than 1.0 due to API breaking changes (which are actually not too bug).

Meanwhile rubyzip is already at 1.1.0 - so we should get to the upgrade soon-ish.

JavaAppLauncher for OSX app does not start correctly

During the development of a Shoes app I packaged it to run on OSX (10.9.5) with

$ shoes -p swt:app app/app.yaml

The resulting package could not be started via open ./path-to/Shoes.app, it crashes with an OSX report dialog. The following environment is used:

  • JRuby 1.7.18 (via rvm)
  • shoes gem, version 4.0.0.pre3
  • Java Version "1.8.0_31", Java(TM) SE Runtime Environment (build 1.8.0_31-b13)

From what I understand the packaging mechanism of Shoes uses version 0.3.0 of the furoshiki gem. It downloads a template zip file, containing a jar app and injects all Shoes related stuff into it before finalising it. The jar app template contains folders and files, for example Info.plist in the root and the Plugins/1.7.0.jdk folder contains a bundled Java runtime.
Unfortunately the bundled Java runtime inside the template seems to cause trouble on my system. After a bit of research I found the following StackOverflow answer to solve my problem. After removing the lines from the Info.plist file:

<key>JVMRuntime</key>
<string>1.7.0.jdk</string>

the application could be opened via open ./path-to/Shoes.app successfully. Deleting the 1.7.0.jdk folder along with it was fine too and reduces the size of the app quite considerably.

Shoes gems not bundled in jar after the big gem bust-out

See shoes/shoes4#969.

The jar only contains these gems. Notably missing: shoes, shoes-core, shoes-swt

specifications/
specifications/after_do-0.3.1.gemspec
specifications/bundler-1.7.7.gemspec
specifications/furoshiki-0.2.0.gemspec
specifications/jruby-jars-1.7.16.1.gemspec
specifications/jruby-rack-1.1.16.gemspec
specifications/nokogiri-1.6.4.1-java.gemspec
specifications/plist-3.1.0.gemspec
specifications/rake-10.4.2.gemspec
specifications/rubyzip-1.1.6.gemspec
specifications/shoes-highlighter-1.0.0.gemspec
specifications/shoes-manual-4.0.0.gemspec
specifications/swt-4.4.gemspec
specifications/warbler-1.4.4.gemspec

Windows app package only works in directory

Apparently I missed testing outside of the directory, so if you do something like this:

C:\Users\IEUser\Desktop> .\package_me-windows\package_me.bat

Where the app is in package_me-windows on the Desktop, you get this error:

Error: Unable to access jarfile app.jar

The jar location lookup should take into account where it's actually executing. There's an example how to look up the currently executing location at in Shoes itself

Packaged apps are really big

As reported on the shoes4 repo (shoes/shoes4#473) currently packaged standalone apps are way too big (> 200 MB) while we believe ~35MB /should/ be ok.

Suggestions are just using the JRE instead of the JDK (for instance)

This needs to be investigated and fixed.

Keep the shoes-app-template as part of furoshiki/separate gem?

Right now when packaging a shoes-swt-app furoshiki makes a request to get shoes-app-template-0.0.1.zip from shoesrb.com.

Maybe it would be better to have that gem straight in the shoes gem, the furoshiki gem or somewhere else we can reliably depend upon not the website? Or are there advantages of this I don't see yet?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.