Modular manages user experiences by composing UI, data, and users from a diverse set of components into logical and visual containers called Stories.
The framework defines classes of components to extend user experiences and provides software primitives for component composition, communication, task delegation, state management and data sharing.
Requirements to use Modular
Modular supports software written in any language (for example, Flutter and C++) for any Fuchsia supported runtime, as long as it is a Fuchsia Component.
The Modular Framework communicates with components it launches via FIDL, the standard IPC mechanism for Fuchsia.
The framework defines several different classes of components that can be implemented by developers to extend the behavior of user experiences:
- Modules are components that display UI and are visually composed in a Story.
- Agents are components that run in the background to provide services and data to Modules and other Agents.
After Fuchsia device startup,
sessionmgr are processes that
provide session management, component lifecycle management and state management.
basemgris responsible for user authentication and authorization. It leverages the Base Shell to present UI.
sessionmgris responsible for the lifecycle of Stories, Modules and Agents, as well as service and state coordination between them. It leverages Session and Story Shells to manage the visual composition of these components.