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.
Requirements to use Modular
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:
- Modules are components which display UI and are visually composed in a Story.
- Agents are components which run in the background to provide services and data to Modules and other Agents.
- Shells manage system UI and mediate user interactions.
- EntityProviders are components which provide access to data object (entities) which are shared between components running in modular.
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.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.