| # Modules |
| |
| > DEPRECATION WARNING: The Modular framework is being deprecated in favor of |
| > the [Session Framework](/docs/concepts/session/introduction.md). |
| |
| A `Module` is a component which displays UI in a Modular session. Modules are |
| added to a story (a container for Modules). Multiple modules can be added to a |
| single story. |
| |
| ## Environment |
| |
| A module is given access to two services provided by the modular framework in |
| its incoming namespace: |
| |
| * `fuchsia.modular.ComponentContext` which gives the agent access to |
| functionality which is shared across components run under the modular |
| framework (e.g. modules, shells, agents). |
| * `fuchsia.modular.ModuleContext` which gives modules access to module |
| specific functionality. |
| |
| A module is expected to provide three services to the modular framework in its |
| outgoing namespace: |
| |
| * `fuchsia.ui.app.ViewProvider` which is used to display the module's UI. |
| * `fuchsia.modular.Lifecycle` which allows the framework to signal the module |
| to terminate gracefully. |
| |
| ## Lifecycle |
| |
| A module's lifecycle is bound to the lifecycle of the story it is part of. In |
| addition, a given module can have multiple running instances in a single story. |
| |
| ## Communication Mechanisms |
| |
| Modules can acquire services from agents by connecting to those services |
| from the module's incoming directory. |