views:

136

answers:

4

Hi,

I need to build a fairly simple app but it needs to work on both PC and Mac.

It also needs to be redistributable on a disc or usb drive as a standalone desktop app.

Initially I thought AIR would be perfect for this (it ticks all the API requirements), but the difficulty is making it distributable, as the app would require the AIR runtime to be installed to run.

I came across Shu Player as an option as it seems to be able to package the AIR runtime with the app and do a (silent?) install.
However this seems to break the T&C from Adobe (as outlined here) so I'm not sure about the legality.

Another option could be Zinc but I haven't tested it so I'm not sure how well it'll fit the bill.

What would you recommend or suggest I check out?

Any suggestion much appreciated

EDIT: There's a few more discussions on mono usage (though no real conclusion): Here and Here

EDIT2: Titanium could also fit the bill maybe, will check it out.

Any more comments from anyone?

Ben

A: 

Consider JavaFX It would run everywhere with a modern JRE ..!

ring bearer
Thanks. As with @Michael E's answer. Java is too much of a dependency
Ben
+1  A: 

Java is probably your best bet, although not all Windows PCs will necessarily have Java (most should). JavaFX is new enough you can't count on it - you'll probably find a lot of machines running Java 1.5 or (shudder) 1.4. I believe recent Mac OS still ships with 1.5 (latest version may have changed to 1.6).

Michael E
Thanks for the tip. PCs don't come with Java pre-installed afaik (I've always had to install it). That's too much of a dependency, I might as well go with Air. And I'd personally prefer to stay away from java if possible
Ben
+4  A: 

Tcl/Tk has one of the best packaging solutions out there. You can easily wrap a cross-platform application (implemented in a fully working virtual filesystem) with a platform-specific binary to get a single file executable for just about any modern desktop system. Search google for the terms starkit, starpack and tclkit. Such wrapped binaries are tiny in comparison to many executables these days.

Many deride Tk as being "old" or "immature" but it's one of the oldest, most stable toolkits out there. It uses native widgets when such widgets exist.

One significant drawback of Tcl/Tk, however, is that it lacks any sort of printing support. If your application needs to print you'll have to be a bit creative. There are platform-specific solutions, and the ability to generate postscript documents, and libraries to create pdfs, but it takes a little extra effort.

Bryan Oakley
Wouldn't that require tcl/tk to be installed first?
Ben
@Ben: No. You wrap the whole tcl/tk runtime into a single file. It's less than 4 megabytes total. That's the beauty of it. You end up with a single file that you just drag to a folder and it's installed. No extra runtime or anything (unless you elect to keep the runtime and the application separate)
Bryan Oakley
@ Bryan: Thanks for your suggestion (and your enthusiasm!). It would fit the bill. My only concern is that i've never done tcl/tk so I would have that learning curve on top of some crazy deadline..
Ben
For an introduction that might give you an idea of how easy or hard it will be to get started, take a look at http://tcl.tk/about/language.html for Tcl and http://www.tkdocs.com/tutorial/index.html for Tk
Colin Macleod
I didn't realize Tcl/Tk was so good at this. Cool stuff!
fenomas
A: 

AIR could be an option, but only if you don't mind distributing two different files (the offline runtime installer and your app), and expecting the user to run one and then the other. You do have to submit an online form at Adobe's site saying you agree to distribute the offline installer as-is, rather than digging out individual DLLs or whatever, before they give you the installer.

Unfortunately there's currently no way to get both an AIR app and the runtime to install from one file though. I'm not sure what the deal with Shu is, or whether it's doing anything that isn't kosher.

fenomas
Thanks for the tip. As mentioned in my question, AIR alone won't do. I did look at shu but it requires the air distribution from adobe.We applied to adobe for the air license but never heard anything from them. Fine if you don't care adobe.
Ben
Went we xulrunner, it's a bit difficult at first but it's pretty awesome once you get your head around it.
Ben