Hi, I’m trying to create an application with the following requirements:
• Multi module application
• The core module loads some data and decides what kind of feature modules should be shown to the user
• The core module is able to load a view (Component) from the feature module and show it as some kind of in-app widget in the core module
• In-app widget has its own logic which is hidden from core module and needs to be defined in the feature module
• Feature modules should be able to be launched as a standalone application
• Feature modules should be developed independently so they should have their own 3rd party library initialization, it’s own DI mechanism, it’s own architecture etc.
• The core module, featured modules and standalone feature app module should be able to use some shared logic (login, notifications, network, computations … )
I’m thinking about the following architecture. I can’t decide if I should use dynamic modules or library modules for core module <-> feature module communication. I’ve created a dummy project with both approaches:
• The library module works fine (but this will prohibit me from using dynamic modules feature in the future)
• The dynamic module loads in-app widgets via reflection (it works so far but I’m stuck on the issues with DI in in-app widgets (
link))
Which approach do you think is better for such project? Do you see any other possible issues that could arise from the following architecture?