Modular is the application framework for Fuchsia. It 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.
Modular supports software written in any language (e.g. Flutter, 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 which can be implemented by developers to extend the behavior of user experiences:
basemgr
and sessionmgr
After Fuchsia device startup, basemgr
and sessionmgr
are processes that provide session management, component lifecycle management and state management.
basemgr
is responsible for user authentication and authorization. It leverages the Base Shell to present UI.
sessionmgr
is 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.