Hello,
in a nutshell, when we speak about UI, you write your code using Java, and describe/configure the “screen” using XML descriptor. (in the code you can also programmatically create them or manipulate).
When building the application, it will link to Vaadin Flow which will in turn interpret that XML and make HTML/JavaScript UI, and then handle it for you. This enables you to use your Java expertise or code, but also to integrate javascript components, as Vaadin uses Web Components standard.
Check this out
https://demo.jmix.io/ui-samples/
Jmix is used with IntelliJ IDEA, because its an IntelliJ IDEA plugin. Generated code can be in theory used and modified with tools such as Eclipse, Netbeans, VS Code … but requires technical expertise and time to properly configure. I don’t see why you would want to use that instead of IntelliJ, there is a community version, and Jmix also has a free version with some limitations.
I don’t understand what do you mean by “refactoring Jmix”? Do you want to change the Jmix code?
Non-commercial Jmix code is on the GitHub
If you have a commercial licence, you can extend or override needed classes, as in the application will use your version…
Kind regards,
Mladen