Shipping a ruby/tk desktop app

If I want to develop a ruby/tk app on linux and then ship it to windows and
mac users, what's the best way to go about it?

I'm also open to suggestions of alternative gui toolkits as long as they
are desktop rather than web based, and let me develop purely on linux. e.g.
if someone has had a good experience shipping jruby apps that might be
worth exploring. I can find surprisingly little on the topic - I guess
people are just not writing desktop apps much these days.

martin

Cool question. I look forward to reading some answers.

I think, largely from reading the book, Dreaming in Code, that it’s just easier to create and maintain browser based apps than it is to create, get people using and maintain cross-platform desktop apps. Not to mention that so many people are using mobile devices now.

It would be really fun to create a desktop app, but it seems like a daunting prospect.

At any rate, looking forward to hearing from some pros.

···

On Sep 30, 2015, at 9:40 PM, Martin DeMello <martindemello@gmail.com> wrote:

If I want to develop a ruby/tk app on linux and then ship it to windows and mac users, what's the best way to go about it?

I'm also open to suggestions of alternative gui toolkits as long as they are desktop rather than web based, and let me develop purely on linux. e.g. if someone has had a good experience shipping jruby apps that might be worth exploring. I can find surprisingly little on the topic - I guess people are just not writing desktop apps much these days.

martin

For Windows deployment, look at Ocra at GitHub - larsch/ocra: One-Click Ruby Application Builder; for Mac deployment, look at ruby2app at https://github.com/codebykevin/ruby2app\.

--Kevin

···

On 9/30/15 10:40 PM, Martin DeMello wrote:

If I want to develop a ruby/tk app on linux and then ship it to windows and mac users, what's the best way to go about it?

--
Kevin Walzer
Code by Kevin/Mobile Code by Kevin
http://www.codebykevin.com
http://www.wtmobilesoftware.com

Hi!

We have been building desktop apps for 7 years now using Eclipse SWT or Eclipse RCP. For Eclipse RCP there are packaging tools for all the platforms Eclipse supports.

We do include the Ruby (JRuby 1.7.x/9.0.x.x) interpreter in the packages. We also include the Java runtime for easier distribution.

We have a small number of users (around 50), and we have SSH access to their machines, so we actually distribute using SSH.

When accessing Eclipse SWT/JFace/RCP we use plain Ruby, and build utility classes as needed for common features. In some cases, some Java glue classes need to be implemented, less than 1% of the code base.

This solution allows distribution to all common platforms, and we are very happy with it.

···

On 01 Oct 2015, at 04:40, Martin DeMello <martindemello@gmail.com> wrote:

If I want to develop a ruby/tk app on linux and then ship it to windows and mac users, what's the best way to go about it?

I'm also open to suggestions of alternative gui toolkits as long as they are desktop rather than web based, and let me develop purely on linux. e.g. if someone has had a good experience shipping jruby apps that might be worth exploring. I can find surprisingly little on the topic - I guess people are just not writing desktop apps much these days.

martin

--
Uwe Kubosch
uwe@kubosch.no

You can build a web app that running locally, like slack.

···

On 1 окт. 2015 г., at 12:40, Martin DeMello <martindemello@gmail.com> wrote:

If I want to develop a ruby/tk app on linux and then ship it to windows and mac users, what's the best way to go about it?

I'm also open to suggestions of alternative gui toolkits as long as they are desktop rather than web based, and let me develop purely on linux. e.g. if someone has had a good experience shipping jruby apps that might be worth exploring. I can find surprisingly little on the topic - I guess people are just not writing desktop apps much these days.

martin

Yeah, it's surprisingly easy to create a desktop app these days, as long as
you only care about it running on your own platform. There are tons of good
toolkits and language bindings around that make writing the app pretty
easy, but distributing it cross platform is a bit of a nightmare :frowning:

martin

···

On Wed, Sep 30, 2015 at 8:03 PM, Mike Kilmer <mike@mzoo.org> wrote:

Cool question. I look forward to reading some answers.

I think, largely from reading the book, Dreaming in Code, that it’s just
easier to create and maintain browser based apps than it is to create, get
people using and maintain cross-platform desktop apps. Not to mention that
so many people are using mobile devices now.

It would be really fun to create a desktop app, but it seems like a
daunting prospect.

At any rate, looking forward to hearing from some pros.

On Sep 30, 2015, at 9:40 PM, Martin DeMello <martindemello@gmail.com> > wrote:

> If I want to develop a ruby/tk app on linux and then ship it to windows
and mac users, what's the best way to go about it?
>
> I'm also open to suggestions of alternative gui toolkits as long as they
are desktop rather than web based, and let me develop purely on linux. e.g.
if someone has had a good experience shipping jruby apps that might be
worth exploring. I can find surprisingly little on the topic - I guess
people are just not writing desktop apps much these days.
>
> martin

I’ve researched this a number of times over the years. Here are my findings:

1. Ruby doesn’t have strong enough tooling to “ship” software to desktops. Building an EXE for Windows or APP for Mac OS X is flakey, only supports old versions of Ruby or just doesn’t work at all.

2. If you want to ship a Ruby interpreter with your app, that’s not exactly straightforward either.

3. Tk looks butt ugly in my opinion.

4. Ruby’s syntax is at odds with many toolkit integrations that look decent on cross-platforms.

The closest thing to Ruby that solves these issues looks to be Python & Kivy (http://kivy.org <http://kivy.org/&gt;\) I haven’t actually tried to code anything with it yet, but from the research I did, it does look to come close to a workable solution.

My previous attempt at this was to use Java & SWT but that will also fail points #1 and #2 unfortunately.

Dan

Dan Harper
dan@kingdomsolutions.com.au
Mobile: +61 414 344 233

···

On 1 Oct 2015, at 1:15 pm, Martin DeMello <martindemello@gmail.com> wrote:

Yeah, it's surprisingly easy to create a desktop app these days, as long as you only care about it running on your own platform. There are tons of good toolkits and language bindings around that make writing the app pretty easy, but distributing it cross platform is a bit of a nightmare :frowning:

martin

On Wed, Sep 30, 2015 at 8:03 PM, Mike Kilmer <mike@mzoo.org <mailto:mike@mzoo.org>> wrote:
Cool question. I look forward to reading some answers.

I think, largely from reading the book, Dreaming in Code, that it’s just easier to create and maintain browser based apps than it is to create, get people using and maintain cross-platform desktop apps. Not to mention that so many people are using mobile devices now.

It would be really fun to create a desktop app, but it seems like a daunting prospect.

At any rate, looking forward to hearing from some pros.

On Sep 30, 2015, at 9:40 PM, Martin DeMello <martindemello@gmail.com <mailto:martindemello@gmail.com>> wrote:

> If I want to develop a ruby/tk app on linux and then ship it to windows and mac users, what's the best way to go about it?
>
> I'm also open to suggestions of alternative gui toolkits as long as they are desktop rather than web based, and let me develop purely on linux. e.g. if someone has had a good experience shipping jruby apps that might be worth exploring. I can find surprisingly little on the topic - I guess people are just not writing desktop apps much these days.
>
> martin

Kivy looks really nice! Wish it were for ruby instead of python. I don't
really care so much about looking native, since my app (a crossword editor)
is mostly a custom canvas-based widget and a few listboxes.

Racket gives you a really pleasant gui dev experience too, incidentally,
and I started off by using it, but the GUI framework takes up 100MB of RAM
just to run, which was a dealbreaker for a small app :frowning:

martin

···

On Wed, Sep 30, 2015 at 10:25 PM, Dan Harper <dan@kingdomsolutions.com.au> wrote:

I’ve researched this a number of times over the years. Here are my
findings:

1. Ruby doesn’t have strong enough tooling to “ship” software to
desktops. Building an EXE for Windows or APP for Mac OS X is flakey, only
supports old versions of Ruby or just doesn’t work at all.

2. If you want to ship a Ruby interpreter with your app, that’s not
exactly straightforward either.

3. Tk looks butt ugly in my opinion.

4. Ruby’s syntax is at odds with many toolkit integrations that look
decent on cross-platforms.

The closest thing to Ruby that solves these issues looks to be Python &
Kivy (http://kivy.org) I haven’t actually tried to code anything with it
yet, but from the research I did, it does look to come close to a workable
solution.

My previous attempt at this was to use Java & SWT but that will also fail
points #1 and #2 unfortunately.

Dan

Dan Harper
dan@kingdomsolutions.com.au
Mobile: +61 414 344 233

On 1 Oct 2015, at 1:15 pm, Martin DeMello <martindemello@gmail.com> wrote:

Yeah, it's surprisingly easy to create a desktop app these days, as long
as you only care about it running on your own platform. There are tons of
good toolkits and language bindings around that make writing the app pretty
easy, but distributing it cross platform is a bit of a nightmare :frowning:

martin

On Wed, Sep 30, 2015 at 8:03 PM, Mike Kilmer <mike@mzoo.org> wrote:

Cool question. I look forward to reading some answers.

I think, largely from reading the book, Dreaming in Code, that it’s just
easier to create and maintain browser based apps than it is to create, get
people using and maintain cross-platform desktop apps. Not to mention that
so many people are using mobile devices now.

It would be really fun to create a desktop app, but it seems like a
daunting prospect.

At any rate, looking forward to hearing from some pros.

On Sep 30, 2015, at 9:40 PM, Martin DeMello <martindemello@gmail.com> >> wrote:

> If I want to develop a ruby/tk app on linux and then ship it to windows
and mac users, what's the best way to go about it?
>
> I'm also open to suggestions of alternative gui toolkits as long as
they are desktop rather than web based, and let me develop purely on linux.
e.g. if someone has had a good experience shipping jruby apps that might be
worth exploring. I can find surprisingly little on the topic - I guess
people are just not writing desktop apps much these days.
>
> martin

I've looked into developing my application using JRuby, then creating
a jar file using warbler[1] which is then packaged to be a self
contained java application using javapackager[2]. Alternatively you
can take a look at traveling-ruby[3], but it seems to be harder to do
for windows. The JRuby way works pretty well for me so far, but I am
still experimenting myself.

[1] https://github.com/jruby/warbler
[2] https://docs.oracle.com/javase/8/docs/technotes/tools/unix/javapackager.html
[3] http://phusion.github.io/traveling-ruby/

···

On Thu, Oct 1, 2015 at 7:25 AM, Dan Harper <dan@kingdomsolutions.com.au> wrote:

I’ve researched this a number of times over the years. Here are my findings:

1. Ruby doesn’t have strong enough tooling to “ship” software to desktops.
Building an EXE for Windows or APP for Mac OS X is flakey, only supports old
versions of Ruby or just doesn’t work at all.

2. If you want to ship a Ruby interpreter with your app, that’s not exactly
straightforward either.

3. Tk looks butt ugly in my opinion.

4. Ruby’s syntax is at odds with many toolkit integrations that look decent
on cross-platforms.

The closest thing to Ruby that solves these issues looks to be Python & Kivy
(http://kivy.org) I haven’t actually tried to code anything with it yet, but
from the research I did, it does look to come close to a workable solution.

My previous attempt at this was to use Java & SWT but that will also fail
points #1 and #2 unfortunately.

Dan

Dan Harper
dan@kingdomsolutions.com.au
Mobile: +61 414 344 233

On 1 Oct 2015, at 1:15 pm, Martin DeMello <martindemello@gmail.com> wrote:

Yeah, it's surprisingly easy to create a desktop app these days, as long as
you only care about it running on your own platform. There are tons of good
toolkits and language bindings around that make writing the app pretty easy,
but distributing it cross platform is a bit of a nightmare :frowning:

martin

On Wed, Sep 30, 2015 at 8:03 PM, Mike Kilmer <mike@mzoo.org> wrote:

Cool question. I look forward to reading some answers.

I think, largely from reading the book, Dreaming in Code, that it’s just
easier to create and maintain browser based apps than it is to create, get
people using and maintain cross-platform desktop apps. Not to mention that
so many people are using mobile devices now.

It would be really fun to create a desktop app, but it seems like a
daunting prospect.

At any rate, looking forward to hearing from some pros.

On Sep 30, 2015, at 9:40 PM, Martin DeMello <martindemello@gmail.com> >> wrote:

> If I want to develop a ruby/tk app on linux and then ship it to windows
> and mac users, what's the best way to go about it?
>
> I'm also open to suggestions of alternative gui toolkits as long as they
> are desktop rather than web based, and let me develop purely on linux. e.g.
> if someone has had a good experience shipping jruby apps that might be worth
> exploring. I can find surprisingly little on the topic - I guess people are
> just not writing desktop apps much these days.
>
> martin