Open altavir opened 5 years ago
This is planned implemented with Java 11 modules. We will probably start with the REST module, because it is the most obvious and really the only one that has external dependencies, so it's a good first candidate.
Good to know. I believe that the whole Workspace thing currently is too incorporated into the Component framework to remove it harmlessly, but for common application it is usually not needed.
Injection is lighweight and useful in some cases, but is probably also not needed in the core. The problem is that some people like to use DI frameworks of their choice and two DI mechanisms in one application are too much (I personally prefer to work without DI wherever it is possible).
We’re talking about very little code, adding no considerable weight to the binary and the functionality is there if you need it, or you can choose not to use it. The built in inject() is an integral part of the framework and will not be optional (though you can choose not to use it if you really want to).
There is no need to add modules just because not every piece of functionality will not be used in every app :)
Hey, are there any updates on this? I would like to use my own DI library (Koin) in a tornadofx view but Components have inject function so they conflict with each other. It would be nice to have modules seperation like:
I agree we do need to separate things out a bit more. The core tornadofx should be strictly the UI framework. I dont see how DI could be removed. Rest seems like a good candidate for being pulled out.
TornadoFX is currently de-facto standard for kotlin UI development (and not only for JVM), but it has rather broad set of features combined into a single monolith bundle. For most tasks we need only basic App/Component framework and type-safe builders and everything else is a hindrance, so in future releases (probably starting with v2), it would be good to have core functionality in a single compact module and other things like dependency injection, workspaces, REST configuration in one or several separate modules.