Core module
The core module is really the brain of our application. It is where the application's heavy lifting is done and the real magic happens.
The core module is responsible for implementing application-level business logic as well as providing bridges among components when there is a need for components to communicate with each other. Of course, while still preserving the loose coupling nature of the application.
The core module also leverages the functionality provided by the third party libraries, which are loaded by the base module, to create a cohesive functional application.
If you are familiar with the architectural design pattern known as Module-View-Controller (MVC), the core module is the controller piece of this design pattern in our application.
We can summarize the role of core module as the following:
Acting as the controller for the application
Providing communication bridges among modularized components
Initializing and destroying components
Implementing plug-and-play capability...