Author Topic: Cross platform GUI development  (Read 17524 times)

0 Members and 1 Guest are viewing this topic.

Offline kripton2035

  • Super Contributor
  • ***
  • Posts: 2587
  • Country: fr
    • kripton2035 schematics repository
Re: Cross platform GUI development
« Reply #25 on: November 28, 2014, 11:22:02 am »
I use Xojo (formerly realstudio)
you can try it for free www.xojo.com, you pay only when you compile without debug
it's the easiest way to do a GUI in my opinion.
it works for windows, macos, linux, and soon next month or so for iOs
you wan make an that makes a web server and so connect from any navigator on any platform.
there is native serial support
for usb, it will work natively if you have serial over usb, if you want full usb support it's via paid plugins
it's modern, object (natively) programming, and a lot of examples, and an active forum.
just give it a try.

ps: it's not usable to make a brand new usb printer interface... there are other tools for that !
 

Offline Wilksey

  • Super Contributor
  • ***
  • Posts: 1329
Re: Cross platform GUI development
« Reply #26 on: November 28, 2014, 12:26:40 pm »
Qt is nice, I went back to WXWidgets though for a while, if you use QT I would use V4 as V5 has this god awful dependency on some crappy language support DLL which is 20 odd MB, which you don't need on V4.

The worst thing that I came across which is easier on V5 is compiling for MySQL, SQLLite seems to be default, compiling the framework to change an option or two takes ages!

I think you can get rid of the language dependency on V5 commercial, but I haven't found a way to get rid of it on the free version.

Plus, you have to practically distribute the whole framework for V5 as there are dependencies galore!
 

Offline Jeroen3

  • Super Contributor
  • ***
  • Posts: 4078
  • Country: nl
  • Embedded Engineer
    • jeroen3.nl
Re: Cross platform GUI development
« Reply #27 on: November 28, 2014, 06:29:56 pm »
Plus, you have to practically distribute the whole framework for V5 as there are dependencies galore!
You'd need about 60 MB of dll's for a Windows release. (With network and serial)
I'm not sure if these dll's rely on .NET. Which should be about a few hundred MB if not already installed.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26907
  • Country: nl
    • NCT Developments
Re: Cross platform GUI development
« Reply #28 on: November 28, 2014, 06:59:29 pm »
Having to distribute & install a framework sucks in the long run. People are likely to have more than one version installed which is probably incompatible. My latest Wxwidgets program has a Windows installer of 1.1MB and the executable itself is a single self contained .exe file.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline _Sin

  • Regular Contributor
  • *
  • Posts: 247
  • Country: gb
Re: Cross platform GUI development
« Reply #29 on: November 28, 2014, 07:56:37 pm »
I'd also give serious consideration to doing the GUI stuff in a browser using JS/HTML5, but it kind of depends on what kind of GUI you're trying to create.
Programmer with a soldering iron - fear me.
 

Offline Howardlong

  • Super Contributor
  • ***
  • Posts: 5319
  • Country: gb
Re: Cross platform GUI development
« Reply #30 on: November 28, 2014, 09:10:31 pm »
Regarding Qt, I found, and still find it incredibly difficult to make a working environment, it seems that a lot of things break between versions. I tried rebuilding some old cross platform code I wrote from less than four years ago and obtaining the downloads for the same environment ended up being a fruitless exercise.

How is Qt on iOS and Android? The last time I looked a year or so ago it was near enough vapourware as far as production strength went. How is its support for sound on those platforms for example?

Regarding the use of HTML5 and JS, for the DSP stuff I do it's really not an ideal option I'm afraid.

I totally agree that the mentality of having to have enormous frameworks and other prerequisites like .NET and Java around, with exactly the right versions, is a big irritation. They also have to be regularly maintained by the end user afterwards. It's an aspect that is typically forgotten about by software "architects" and developers, apparently it's not their problem. Personally, just give me a single straight .exe, not even a setup or install, and I'll be happy!
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26907
  • Country: nl
    • NCT Developments
Re: Cross platform GUI development
« Reply #31 on: November 28, 2014, 09:20:05 pm »
The problem with a browser is that you'll need a webserver quickly and browser incompatibilities are still a PITA. Interaction with hardware like a serial port is also not going to happen.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline trevwhiteTopic starter

  • Frequent Contributor
  • **
  • Posts: 930
  • Country: gb
Re: Cross platform GUI development
« Reply #32 on: November 28, 2014, 11:16:14 pm »
node.js has really caught my eye. Anyone recommend some good books on how to learn this?

Trev
 

Offline kripton2035

  • Super Contributor
  • ***
  • Posts: 2587
  • Country: fr
    • kripton2035 schematics repository
Re: Cross platform GUI development
« Reply #33 on: November 29, 2014, 08:23:15 am »
I totally agree that the mentality of having to have enormous frameworks and other prerequisites like .NET and Java around, with exactly the right versions, is a big irritation. They also have to be regularly maintained by the end user afterwards. It's an aspect that is typically forgotten about by software "architects" and developers, apparently it's not their problem. Personally, just give me a single straight .exe, not even a setup or install, and I'll be happy!
try xojo ... you will be surprised !
 

Offline zapta

  • Super Contributor
  • ***
  • Posts: 6190
  • Country: us
Re: Cross platform GUI development
« Reply #34 on: November 29, 2014, 08:37:44 am »
[Pascal has been developed as a structured language to LEARN programming in an organised and structured way and not for real world programming. The real world isn't structured (changing requirements) so if you are creating a big project in Pascal you'll find yourself spending a lot of time fighting the rigidity of Pascal instead of working on your software.

I done large projects in Pascal and later in Modula 2 and they were just great.  Structure and modularity are good things in programming and most main stream languages provide them in one way or another (classes and packages in Java, classes and namespaces in C++, etc).
 

Offline jancumps

  • Supporter
  • ****
  • Posts: 1272
  • Country: be
  • New Low
Re: Cross platform GUI development
« Reply #35 on: November 29, 2014, 08:42:36 am »
... Personally, just give me a single straight .exe, not even a setup or install, and I'll be happy!
That's not going to be easy if you are looking for cross platform GUI development, as is requested by OP.
 

Offline kripton2035

  • Super Contributor
  • ***
  • Posts: 2587
  • Country: fr
    • kripton2035 schematics repository
Re: Cross platform GUI development
« Reply #36 on: November 29, 2014, 09:44:05 am »
[Pascal has been developed as a structured language to LEARN programming in an organised and structured way and not for real world programming. The real world isn't structured (changing requirements) so if you are creating a big project in Pascal you'll find yourself spending a lot of time fighting the rigidity of Pascal instead of working on your software.

I done large projects in Pascal and later in Modula 2 and they were just great.  Structure and modularity are good things in programming and most main stream languages provide them in one way or another (classes and packages in Java, classes and namespaces in C++, etc).

+1
pascal is not rigid at all, but you may have difficulties to find an implementation on every platform you may need
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26907
  • Country: nl
    • NCT Developments
Re: Cross platform GUI development
« Reply #37 on: November 29, 2014, 03:30:13 pm »
... Personally, just give me a single straight .exe, not even a setup or install, and I'll be happy!
That's not going to be easy if you are looking for cross platform GUI development, as is requested by OP.
Why should that be a problem? If everything is linked statically into one executable you don't need to install or depend on a bunch of external libraries.
« Last Edit: November 29, 2014, 04:29:04 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline jancumps

  • Supporter
  • ****
  • Posts: 1272
  • Country: be
  • New Low
Re: Cross platform GUI development
« Reply #38 on: November 29, 2014, 04:48:30 pm »
Do we know a statically link-able library that is cross platform for all the platforms that the OP has in mind?
 

Offline nuno

  • Frequent Contributor
  • **
  • Posts: 606
  • Country: pt
Re: Cross platform GUI development
« Reply #39 on: November 29, 2014, 04:51:11 pm »
I've been using TCL/Tk for at least a decade, which means at least a decade of fast development and free of dependency-hassle :) . I don't know of any really good UI builder, I settled at Visual TCL but while it looks promising (for years) it has some issues (which I don't mind because I now know it very well, but maybe a little hard to recommend to a beginer). A TCL/Tk application can be packed (and encripted) in a single executable by a tool named freewrap; they support at least linux as well.

With Tk it takes some work to make a beatiful UI, but the library is quite capable and there are bindings for several languages and platforms, including python if you want a more modern and appropriate language to tackle big software projects.

Anyways, my recomendation is that you try Tk, with an interpreted language of your choice, maybe python. I know there are UI builders for python, but never tried one and can't recommend any.
« Last Edit: November 29, 2014, 04:53:17 pm by nuno »
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26907
  • Country: nl
    • NCT Developments
Re: Cross platform GUI development
« Reply #40 on: November 29, 2014, 04:54:42 pm »
Do we know a statically link-able library that is cross platform for all the platforms that the OP has in mind?
:palm: There is no such thing as cross platform binaries; this also goes for libraries. If you compile for a certain platform you can link the libraries compiled for that platform together with your own compiled code into one executable. You can have source code which can be compiled into a binary for several platforms. That is the goal of cross platform development: have one piece of source code and compile that for several platforms.
« Last Edit: November 29, 2014, 04:56:21 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline jancumps

  • Supporter
  • ****
  • Posts: 1272
  • Country: be
  • New Low
Re: Cross platform GUI development
« Reply #41 on: November 29, 2014, 05:12:14 pm »
I know. When I said library I did not mean binary library, but GUI library (i.e. a library that can be used to create a graphical interface on all platforms and that can be compiled to link in statically).
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26907
  • Country: nl
    • NCT Developments
Re: Cross platform GUI development
« Reply #42 on: November 29, 2014, 05:57:56 pm »
I know. When I said library I did not mean binary library, but GUI library (i.e. a library that can be used to create a graphical interface on all platforms and that can be compiled to link in statically).
Wxwidgets just does that but you have to compile it into a binary library for the target platform (or get precompiled static linkable binaries).
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline Jeroen3

  • Super Contributor
  • ***
  • Posts: 4078
  • Country: nl
  • Embedded Engineer
    • jeroen3.nl
Re: Cross platform GUI development
« Reply #43 on: November 30, 2014, 01:04:25 pm »
Do we know a statically link-able library that is cross platform for all the platforms that the OP has in mind?
Your browser.
 

Offline jancumps

  • Supporter
  • ****
  • Posts: 1272
  • Country: be
  • New Low
Re: Cross platform GUI development
« Reply #44 on: November 30, 2014, 03:52:51 pm »
Yes, but that runs in a sandbox that doesn't have quality access to peripherals.

Quote
I need to use it to communicate with serial ports and usb ports
 

Offline Jeroen3

  • Super Contributor
  • ***
  • Posts: 4078
  • Country: nl
  • Embedded Engineer
    • jeroen3.nl
Re: Cross platform GUI development
« Reply #45 on: November 30, 2014, 05:49:29 pm »
Not if you use embedded webkit inside your application.
 

Offline briselec

  • Regular Contributor
  • *
  • Posts: 94
  • Country: au
Re: Cross platform GUI development
« Reply #46 on: November 30, 2014, 09:24:38 pm »
gtk+ looks nice, despite evolving from the GUI for GIMP, generally regarded to be the single worst GUI ever made by man or God. 

I like gtk but the direction it's main developers have taken with it is of concern. Cross platform support has suffered. A number of large projects have migrated to Qt.

 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26907
  • Country: nl
    • NCT Developments
Re: Cross platform GUI development
« Reply #47 on: December 01, 2014, 01:13:44 am »
IMHO gtk+ applications look funny and don't work very well on Windows. Call me a purist but IMHO an application should follow the native look & feel the way the user has configured it. That way you never run into trouble with people who have poor eye sight or suffer from color blindness.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline tonyarkles

  • Regular Contributor
  • *
  • Posts: 118
Re: Cross platform GUI development
« Reply #48 on: December 01, 2014, 02:53:17 am »
I realize that I'm not answering the question specifically, but am offering an alternative.

Don't look for a cross-platform GUI library. Instead, write the foundational parts of your application as a cross-platform compatible library (which is quite a bit easier when you're not doing any GUI things in it), and make a separate native GUI for each platform. If you design the library well, it shouldn't be a whole lot of work to integrate it into applications that you make for different platforms.

In the past I've had great success doing this; my library compiled to a DLL in windows, a dylib in OSX, and statically linked for both iOS and Android (compiled using NDK, accessed via JNI). This gave me a lot of flexibility to make the apps differently based on the native "look and feel" of each platform, while still giving me a single place to make most changes.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26907
  • Country: nl
    • NCT Developments
Re: Cross platform GUI development
« Reply #49 on: December 02, 2014, 05:42:06 pm »
That is exactly what most cross platform frameworks do: create a library which deals with the OS specific stuff.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf