Cross-Platform GUI Development

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
jshriver
Posts: 1342
Joined: Wed Mar 08, 2006 9:41 pm
Location: Morgantown, WV, USA

Cross-Platform GUI Development

Post by jshriver »

I'm working on a program I hope to release as open source (non-engine). What do you all recommend as a cross-platform SDK?

My main goal is that I want to work as little as possible doing #ifdef for linux vs win vs os x.

I've used Qt years ago on Linux and enjoyed it, but wasn't entirely sure of the licensing or ease of use migrating a source tree to recompile in Windows.

Tempted to learn Java and just use Swing. The app isn't very demanding graphically.

Thanks in advance!
-Josh
User avatar
JuLieN
Posts: 2949
Joined: Mon May 05, 2008 12:16 pm
Location: Bordeaux (France)
Full name: Julien Marcel

Re: Cross-Platform GUI Development

Post by JuLieN »

jshriver wrote:I'm working on a program I hope to release as open source (non-engine). What do you all recommend as a cross-platform SDK?

My main goal is that I want to work as little as possible doing #ifdef for linux vs win vs os x.

I've used Qt years ago on Linux and enjoyed it, but wasn't entirely sure of the licensing or ease of use migrating a source tree to recompile in Windows.

Tempted to learn Java and just use Swing. The app isn't very demanding graphically.

Thanks in advance!
-Josh
Nothing is simpler than QT Creator. You write once and compile for Windows/OSX/Linux. But you have to distribute QT's runtime, which is quite big.
"The only good bug is a dead bug." (Don Dailey)
[Blog: http://tinyurl.com/predateur ] [Facebook: http://tinyurl.com/fbpredateur ] [MacEngines: http://tinyurl.com/macengines ]
User avatar
JuLieN
Posts: 2949
Joined: Mon May 05, 2008 12:16 pm
Location: Bordeaux (France)
Full name: Julien Marcel

Re: Cross-Platform GUI Development

Post by JuLieN »

jshriver wrote:I'm working on a program I hope to release as open source (non-engine). What do you all recommend as a cross-platform SDK?

My main goal is that I want to work as little as possible doing #ifdef for linux vs win vs os x.

I've used Qt years ago on Linux and enjoyed it, but wasn't entirely sure of the licensing or ease of use migrating a source tree to recompile in Windows.

Tempted to learn Java and just use Swing. The app isn't very demanding graphically.

Thanks in advance!
-Josh
Actually, something is simplerand more cross-platforms than QT Creator : Lazarus. If you know some pascal.
Website: http://www.lazarus.freepascal.org/
I didn't think about mentioning it first, because I assumed you wanted to stick to C/C++. But if you're considering Java then you should definitely consider Lazarus. Arena, for instance, is written in Object Pascal with Lazarus.
"The only good bug is a dead bug." (Don Dailey)
[Blog: http://tinyurl.com/predateur ] [Facebook: http://tinyurl.com/fbpredateur ] [MacEngines: http://tinyurl.com/macengines ]
User avatar
Steve Maughan
Posts: 1221
Joined: Wed Mar 08, 2006 8:28 pm
Location: Florida, USA

Re: Cross-Platform GUI Development

Post by Steve Maughan »

And FireMonkey, which is also Delphi / Pascal based. This would enable you to create a GUI for Win32 / Win64 / OSx / iOS and soon Android, all from the same code base

Steve
http://www.chessprogramming.net - Maverick Chess Engine
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Cross-Platform GUI Development

Post by Daniel Shawul »

Use Java. It is just so easy to avoid all platform dependent code. It makes a lot of things so easy that I did a lot of things with it in one month. My cross-platform GUI developed with Java is so awesome I don't really know why no one uses it.
You can broadcast games with it like TLCV, it can act like a server like FICS, you can use it as a fast-tester like cutechess-cli (dos mode), or GUI mode like Winboard, it can be integrated into a webpage directly, can be used as a client to view gazillion games at the same time like BabasChess, you can play games between two chess engines, two checkers engines, three chess engines, two chess engines and a human, two aliens... Maybe it is just too much for some here, but Java is flexible like a rubber :)
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Cross-Platform GUI Development

Post by jdart »

Java is certainly portable and you can a reasonable UI with it. I think Swing is not very popular these days. It was never that easy to use (in particular, layout of controls/dialogs is a real pain). In addition to Swing, there is the SWT toolkit used by the Eclipse project.

IMO Qt is also a reasonable option. I don't think there is a licensing issue. If you are building an open source app you can use the GPL licensed version (if you are ok with GPL).

Adobe AIR is another option. It is a proprietary environment but as far as I can tell the runtime is freely distributable.

--Jon
User avatar
velmarin
Posts: 1600
Joined: Mon Feb 21, 2011 9:48 am

Re: Cross-Platform GUI Development

Post by velmarin »

JuLieN wrote: Nothing is simpler than QT Creator. You write once and compile for Windows/OSX/Linux. But you have to distribute QT's runtime, which is quite big.
And Android, QT now also for Android.
:wink:
Daniel Shawul wrote:Use Java. It is just so easy to avoid all platform dependent code.
e4ct,ect.
I but Java is flexible like a rubber :)
FIDE Arena is Java,
Impressive how it works. :D
User avatar
smrf
Posts: 484
Joined: Mon Mar 13, 2006 11:08 am
Location: Klein-Gerau, Germany

Re: Cross-Platform GUI Development

Post by smrf »

Embarcadero's Firemonkey also could be used with C++ Builder.

And there are other multi platform development systems based
on the language BASIC: Xojo http://www.xojo.com/index.php
and PureBasic http://www.purebasic.fr/english/, which
moreover uses embedded 32 Bit / 64 Bit Assembler if need be.