Need suggestion to develop cross platform desktop application for traders
-
Hi all,
We are analyzing the technologies to choose for a desktop application for professional traders on Windows/Linux/Mac OS. currently, we are thinking for qt gui with c++ core logic for all os. This application primarily needs rich gui, consume rest apis, and consume push notifications from websockets.
My basic queries are:
- Are qt gui and c++ backend are right technologies to develop such application? if not, suggest any.
- afaik, qt apis are wrappers around native os apis. will it impact performance?
- is there any alternative for c++ for this requirement.
Thanks in advance.
Prasad -
Hi all,
We are analyzing the technologies to choose for a desktop application for professional traders on Windows/Linux/Mac OS. currently, we are thinking for qt gui with c++ core logic for all os. This application primarily needs rich gui, consume rest apis, and consume push notifications from websockets.
My basic queries are:
- Are qt gui and c++ backend are right technologies to develop such application? if not, suggest any.
- afaik, qt apis are wrappers around native os apis. will it impact performance?
- is there any alternative for c++ for this requirement.
Thanks in advance.
Prasad@prasad2023 said in Need suggestion to develop cross platform desktop application for traders:
Are qt gui and c++ backend are right technologies to develop such application? if not, suggest any.
If you need a more fancy GUI and maybe also planning to go for a mobile app, have a look at QML / QtQuick.
afaik, qt apis are wrappers around native os apis. will it impact performance?
Depends on what you use and how, I would say.
is there any alternative for c++ for this requirement.
The two major languages for QtWidgets are C++ and Python (via PySide or PyQt)
-
@prasad2023 said in Need suggestion to develop cross platform desktop application for traders:
Are qt gui and c++ backend are right technologies to develop such application? if not, suggest any.
If you need a more fancy GUI and maybe also planning to go for a mobile app, have a look at QML / QtQuick.
afaik, qt apis are wrappers around native os apis. will it impact performance?
Depends on what you use and how, I would say.
is there any alternative for c++ for this requirement.
The two major languages for QtWidgets are C++ and Python (via PySide or PyQt)
only for desktop application.
Which version of QML/QtQuick supports for all three major os and active versions of each?
what qt version recommended for cross compatible desktop application development?
Are any trading desktop applications developed in Qt? for reference.
Thanks,
Prasad -
only for desktop application.
Which version of QML/QtQuick supports for all three major os and active versions of each?
what qt version recommended for cross compatible desktop application development?
Are any trading desktop applications developed in Qt? for reference.
Thanks,
Prasad@prasad2023 said in Need suggestion to develop cross platform desktop application for traders:
what qt version recommended for cross compatible desktop application development?
If you are not limited to some version and start new, I would go for 6.5 (latest LTS) or 6.6
Are any trading desktop applications developed in Qt?
A quick google search revealed Volven (https://volven.io/), a crypto trading platform uses Qt for their mobile as well as their desktop app.
(https://www.qt.io/volven-built-with-qt) -
@prasad2023 said in Need suggestion to develop cross platform desktop application for traders:
what qt version recommended for cross compatible desktop application development?
If you are not limited to some version and start new, I would go for 6.5 (latest LTS) or 6.6
Are any trading desktop applications developed in Qt?
A quick google search revealed Volven (https://volven.io/), a crypto trading platform uses Qt for their mobile as well as their desktop app.
(https://www.qt.io/volven-built-with-qt)I need to know the limitations/cons/disadvantages with qt {6.6/any} for desktop applications. can you please share the official document from qt if you have.
Need one confirmation. we can compile single qt/c++ codebase on all three Windows/Linux/Mac operating systems without changing any settings. is my understanding correct.
-
I need to know the limitations/cons/disadvantages with qt {6.6/any} for desktop applications. can you please share the official document from qt if you have.
Need one confirmation. we can compile single qt/c++ codebase on all three Windows/Linux/Mac operating systems without changing any settings. is my understanding correct.
@prasad2023 said in Need suggestion to develop cross platform desktop application for traders:
Need one confirmation. we can compile single qt/c++ codebase on all three Windows/Linux/Mac operating systems without changing any settings
Qt itself is platform-independent, but there is some platform-dependent stuff (features which work different on different platforms)... it's all about the modules you use.
For more information, read the documention.I need to know the limitations/cons/disadvantages with qt {6.6/any} for desktop applications
You know best, what you want to do and what could cause problems
-
I need to know the limitations/cons/disadvantages with qt {6.6/any} for desktop applications. can you please share the official document from qt if you have.
Need one confirmation. we can compile single qt/c++ codebase on all three Windows/Linux/Mac operating systems without changing any settings. is my understanding correct.
@prasad2023 said in Need suggestion to develop cross platform desktop application for traders:
Need one confirmation. we can compile single qt/c++ codebase on all three Windows/Linux/Mac operating systems without changing any settings. is my understanding correct.
Let's phrase this differently: The same code compiles for all platforms. And CMake as the preferred method for handling your project is also available on all platforms. Qt has some very specific extensions for Windows and for macOS. As long as you don't use these (and they are not absolutely necessary) the same code will do the same on all three platforms. Sometimes you might need some additional compiler flags specific to a platform. CMake files can be written to have platform specific flags. However, these are rare cases and once added they don't need to be touched again.
@prasad2023 said in Need suggestion to develop cross platform desktop application for traders:
afaik, qt apis are wrappers around native os apis. will it impact performance?
On Windows Qt might actually be faster than traditional Windows programming. The most straight forward approach is to register every single button, label, etc. with the OS. Qt will call the the OS functions for drawing these, but does not register them with the OS which is a huge speed up (only when converting a widget to a window are you back to real OS native windows). In general, humans are a lot slower than computers concerning the GUI. With this in consideration Qt is plenty fast. However, in many cases trading needs ridiculously high performance. I am not sure how much this translates to you GUI in these cases. If this is a concern, you need to fully separate the front- and backend. Run the backend in a separate thread and don't use Qt there if you need the highest performance. But, I would still suggest to not start with this kind of design if you are not sure you need it. Just start out with the plain old simple Qt way.
If Qt is not fast enough, the only thing really faster would be akin to game development. You would need something like OpenGL or Vulkan. OpenGL is deprecated by macOS and Vulkan is only supported through moltenVK on macOS. You will not get something that is truly portable (especially performance-wise). Still, Qt could give you the proper framework to set up either OpenGL or Vulkan. If you want to go down the "game development" route you should have a look at Dear Imgui (https://github.com/ocornut/imgui) for a fast GUI (but not with as many features as Qt).
-
@prasad2023 said in Need suggestion to develop cross platform desktop application for traders:
Need one confirmation. we can compile single qt/c++ codebase on all three Windows/Linux/Mac operating systems without changing any settings. is my understanding correct.
Let's phrase this differently: The same code compiles for all platforms. And CMake as the preferred method for handling your project is also available on all platforms. Qt has some very specific extensions for Windows and for macOS. As long as you don't use these (and they are not absolutely necessary) the same code will do the same on all three platforms. Sometimes you might need some additional compiler flags specific to a platform. CMake files can be written to have platform specific flags. However, these are rare cases and once added they don't need to be touched again.
@prasad2023 said in Need suggestion to develop cross platform desktop application for traders:
afaik, qt apis are wrappers around native os apis. will it impact performance?
On Windows Qt might actually be faster than traditional Windows programming. The most straight forward approach is to register every single button, label, etc. with the OS. Qt will call the the OS functions for drawing these, but does not register them with the OS which is a huge speed up (only when converting a widget to a window are you back to real OS native windows). In general, humans are a lot slower than computers concerning the GUI. With this in consideration Qt is plenty fast. However, in many cases trading needs ridiculously high performance. I am not sure how much this translates to you GUI in these cases. If this is a concern, you need to fully separate the front- and backend. Run the backend in a separate thread and don't use Qt there if you need the highest performance. But, I would still suggest to not start with this kind of design if you are not sure you need it. Just start out with the plain old simple Qt way.
If Qt is not fast enough, the only thing really faster would be akin to game development. You would need something like OpenGL or Vulkan. OpenGL is deprecated by macOS and Vulkan is only supported through moltenVK on macOS. You will not get something that is truly portable (especially performance-wise). Still, Qt could give you the proper framework to set up either OpenGL or Vulkan. If you want to go down the "game development" route you should have a look at Dear Imgui (https://github.com/ocornut/imgui) for a fast GUI (but not with as many features as Qt).
@SimonSchroeder Maybe RUST is a good option for trading underneath and Qt for display.