After having worked on Web design and Android, I finally started work on a desktop software, until I hit a major delay in my development cycle when I actually started UI Design for Desktop. The experience so far is a pain. I decided to use Java to code the program, because then I could use cross-platform APIs for sockets and wireless interfaces (which my program relies heavily on, and works successfully).
Web and Android UI design:
HTML/CSS/Javascript ; XML/Android API --> Offers high flexibility, customization, quick UI development cycle.
Java desktop UI design
AWT/Swing/Swing FX -->
Almost no customization possible, as seen from issues here and here. When customization is possible, implementing it highly increases development time as seen here. It also increases code-complexity and in most cases, the solution is native, and not applicable cross-platform (at least Linux,Windows,Mac). The native, default look is really not most UI designers want.
Drag-and-drop options are good , improve development time eg. Window Builder. But options like adding an ImageView is missing. And, if customization mentioned in point 2,is required, the auto-generated code has to be modified heavily, totally negating the use of Drag-n-drop.
Can anyone suggest me a really good or close-to-good UI tool , or say UI Engine (if one exists) , that has the following features:
1. Quick development time. Drag-n-drop, HTML/CSS/XML like methods to design.
2. Everything is cross-platform, including customization solutions.
3. High degree of customization. Developer designs what looks good to him/her,
without increasing time-to-develop much.
4. Also cross-language. That is, has wrappers for all major programming languages,
like C++,Java,Python etc.
The best approach or tools, in my opinion:
Qt Framework . Very good for UI, but it'd really be good if it has wrappers for Java and other languages. It will not reduce development time, and will require hand coding, but the interface can be made to look really good and
usable.WxPython . Another good tool, would be cool if it has wrappers for other languages.
Some tool, that lets design desktop UI with HTML/CSS/XML-like syntax and ease-of-use.
Stop thinking of UI tools and either
a. Just stop complaining and use the defaults and existing tools and native looks.
b. Hand code everything, and customize individually for each platform.
c. Take a graphic canvas in Java and program UI, like you'd program a scene in a game.
Please suggest if you think otherwise, or if there are better,easier options available.
Thanks.