Ruby for cross-platform desktop applications? - ruby

Please share you experience building desktop applications with Ruby programming language. What GUI toolkits have you used? How have you packed everything into one installer? What troubles have you spotted?
I saw few articles about using Ruby for desktop, but in teory everything is always great. I would like to know about real-world applications build with ruby.

you can check this out
Non-trivial desktop apps that use Ruby?
i used redcar & its available as a Gem

Related

Is there a way to package a Shoes Ruby App into an APK?

I am aware that I can package a Shoes Ruby app into a dmg, exe, and other Linux formats, but can I do an APK? I'm hoping to run a Shoes app on my Samsung Galaxy. Is there some gem or some long process to achieve this? Any method will do.
Very likely the answer is no and even if someone somehow built a way it probably won't be something you will want to use. GUI programming between desktop and mobile is very different and you will usually have to use different tools for both. The best you will get is writing a GUI using HTML/CSS/JS and using tools to get those running on mobile and desktop.

Is it possible to create native graphical user interfaces in Ruby?

I am considering using Ruby for a project, but I'm a complete beginner, so don't know what is, or is not, possible with Ruby 2.0.
I have looked at wxRuby, but it hasn't been updated since 2009, so I take it that means it is not compatible with RUby 2.0.
Is there another option for creating native GUIs, or are these not done in the Ruby land?
Thanks.
It's certainly possible to create GUIs with Ruby, but it doesn't appear to be widely done. Off the top of my head I can think of the following projects that might help you:
rwx - project was created as a successor to wxRuby
RubyMotion for iOS, Android and OS X
Yes, it's certainly possible to create GUIs with Ruby. You can see my full list of Ruby GUI libraries here.
However, desktop Ruby GUI apps aren't widely developed because the Ruby community is heavily weighted toward web application developers, and they are much more likely to build a web application than a desktop application. Ruby is the language of hip tech startups, and conventional user interfaces don't suit their aesthetic.
Also, it's very difficult to build native-looking cross-platform GUI apps, so web applications tend to be more acceptable to end users.

Desktop Environment in Ruby

I want to create a very simple window manager for Ubuntu using Ruby. Where should I start?
I am somewhat familiar with Qt (from when I used to use C++), but I don't mind using other frameworks.
There's this great presentation, presenting several toolkit alternatives. It's in Portuguese, but it should not be hard to understand the toolkit names and screnshots :)
http://www.slideshare.net/guest2a3a90/ruby-no-desktop-marcelo-castellani

Can Ruby be used to develop simple Windows applications?

I've been developing Windows based applications for a long time and most of my present clients still desire a desktop or client/server Windows application. Is it possible to use Ruby for such applications as opposed to its primary purpose of being a Web-programming language?
Ruby is not primarily a web programming language even though Ruby on Rails is certainly suited for web development. Ruby is a general purpose scripting language.
The FXRuby and WxRuby frameworks are the most fully featured GUI frameworks for Ruby. You can write the apps in Ruby and then generate a Windows executable. The frameworks are cross-platform, so you could also run the apps written in these on other platforms, like Linux or Mac OS X.
There are also a few other less popular approaches like QtRuby and Shoes, and you can even use IronRuby (a CLR Ruby implementation) to write a .Net application.
Ruby is a general purpose object oriented scripting language. Ruby on Rails is a web application framework. Ruby predates Rails by about ten years. Don't confuse the two.
Yes, you can. Ruby is a full scripting language. You might want to start with the Ruby language homepage to see the capabilities and libraries that are available.
However, just because you can doesn't mean that you should. Before jumping in and using Ruby for a project, see if Ruby can give you things that other languages can't or if there are any disadvantages to using Ruby.
I know this thread is old, but for future reference to anyone who's looking into options for using Ruby for a GUI app, don't use QtRuby. I had developed a project for school in about a week, fully functional and pretty, only to find out that I could not release it. There was simply no way to package and distribute the application without having your users simulate your exact environment (install all the gem dependencies, build Qt development libraries etc). I tried using:
Crate: supposedly cross-platform, but I found only 1 usage example that's written in 2008 out of ~2 hours of googling, and the example basically covers a very specific subset of applications (some ssl/https authentication gem or w/e...)
Ocra: this looks like a candidate, but it's windows-only and didn't meet my requirements, as I had to target the three primary platforms
tar2rubyscript + rubyscript2exe: I had spent most of my time trying to get this to work because I've come across many who claimed that this is the way to go for distributing GUI apps built in ruby (albeit using other toolkits, Tk/GTK/wxRuby) but it didn't work either; I was endlessly faced with a cryptic error that basically breaks Qt::UiLoader functionality, in other words, you can't load .ui sheets you create with QtDesigner so...
Yes I'm angry and frustrated honestly, because I don't see the point of creating software that you just can't release for anyone to use. Now I'm left with a deadline coming up in a week, and I just hope I make it in time porting the app to C++.
So my answer is, don't use QtRuby. At least for now.
On a mac, you can use the Ruby Cocoa lib to create (what appear to be) native applications. If you want something more cross platform then you might consider a wrapper like shoes or qt.
The Qt toolkit seems the most popular way to do it. The website is http://www.darshancomputing.com/qt4-qtruby-tutorial/
I'm currently writing a little app in a wrapper called Shoes. This seems to make it as simple as pie to create windowed apps in ruby. http://shoes.heroku.com/ is the website.
At the moment Shoes looks suitable only for small personal apps. I say this because it's author recently went AWOL and it's not clear whether it will be developed further. I'm using it to write a game log parser to generate statistics from a flight sim. It's ticking along nicely.
Ruby can be used for developing GUI applications, whether Windows specific or cross-platform.
For Windows targetted you should look at the work going on with IronRuby since they have good integration with the .NET framework overall and with Silverlight, in the event you want to do apps that can bridge web and desktop. At this point IronRuby can be used to develop for Windows Presentation Foundation (WPF) or WinForms.
For cross-platform you have Ruby bindings for QT, FOX and others.
You should look at IronRuby - WPF and windows forms are both supported:

Can Ruby be used for UI based Windows apps?

I'm sorry if this question is noob-ish but I'm not having much luck with Google. Can Ruby be used for UI based Windows apps? I'm not looking for a Rails app, just Ruby.
Thanks
You have couple of options.
Use Gtk Ruby which works on Windows as well (http://ruby-gnome2.sourceforge.jp/).
You can use WxRuby or Tk.
You can use JRuby and Swing.In fact there are high level libraries which can help you there, such as (http://monkeybars.rubyforge.org/)
Yes, but the experience will vary depending on how you hook up the UI. TK or gtk, wxRuby, ruby shoes (not sure how alive that one is right now), Qt (which is cool) and fox (aka fxRuby) are some of the options. If you like to hurt yourself, you can hook directly to Win32 libraries, but I doubt you'll want to.
Additionally, if you target the nascent IronRuby, you can use WinForms or WPF.
I also prefer wxRuby. It looks great, uses native components, yet is cross-platform. On the Ruby On Windows blog there is a great write-up of how to get started. It helped me a lot.
You bet. wxRuby is what I use, but others use GTK. wxRuby also works on Linux which is where I am writing a program, but it should suit your needs. You can install it using
gem install wxruby
You could check out wxRuby..
Depends what kind of Window app are you going to implement. If this is your own pet project, then definitely you can try WxRuby or GTK. There is no risk here.
However if this is going to be serious, commercial windows app then you have to think twice. It is really worth using Ruby? It is great language. I use it on daily basis. But for a Windows app, C# integration with the whole environment is hard to beat.
check out Shoooes!

Resources