Cross-Platform GUI Development

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

Moderators: Harvey Williamson, Dann Corbit, hgm

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
User avatar
jshriver
Posts: 1109
Joined: Wed Mar 08, 2006 8:41 pm
Location: Morgantown, WV, USA
Contact:

Cross-Platform GUI Development

Post by jshriver » Tue Aug 13, 2013 3:22 am

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: 2948
Joined: Mon May 05, 2008 10:16 am
Location: Nantes (France)
Contact:

Re: Cross-Platform GUI Development

Post by JuLieN » Tue Aug 13, 2013 8:38 am

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)
Image [Blog: http://tinyurl.com/predateur ] [Facebook: http://tinyurl.com/fbpredateur ] [MacEngines: http://tinyurl.com/macengines ]

User avatar
JuLieN
Posts: 2948
Joined: Mon May 05, 2008 10:16 am
Location: Nantes (France)
Contact:

Re: Cross-Platform GUI Development

Post by JuLieN » Tue Aug 13, 2013 11:01 am

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)
Image [Blog: http://tinyurl.com/predateur ] [Facebook: http://tinyurl.com/fbpredateur ] [MacEngines: http://tinyurl.com/macengines ]

User avatar
Steve Maughan
Posts: 1077
Joined: Wed Mar 08, 2006 7:28 pm
Location: Florida, USA
Contact:

Re: Cross-Platform GUI Development

Post by Steve Maughan » Tue Aug 13, 2013 12:24 pm

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: 4065
Joined: Tue Mar 14, 2006 10:34 am
Location: Ethiopia
Contact:

Re: Cross-Platform GUI Development

Post by Daniel Shawul » Tue Aug 13, 2013 1:18 pm

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: 4035
Joined: Fri Mar 10, 2006 4:23 am
Location: http://www.arasanchess.org

Re: Cross-Platform GUI Development

Post by jdart » Tue Aug 13, 2013 1:53 pm

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 8:48 am

Re: Cross-Platform GUI Development

Post by velmarin » Tue Aug 13, 2013 2:25 pm

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 10:08 am
Location: Klein-Gerau, Germany
Contact:

Re: Cross-Platform GUI Development

Post by smrf » Tue Aug 13, 2013 2:42 pm

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.

Post Reply