This post is co-authored by Yongqing Dong, Anqi Li, Tengyuan Zhang, Yongjing Zhang and Dan Zhou.
Traditional HTML5 applications are easy to develop, but the performance and user experience are not perfect, so there have been many attempts to develop applications having user experiences similar to native applications using Web technologies, including Cordova, Electron, NativeScript, Progressive Web Apps, W3C Widgets, and many others.
Currently, there are many variants of MiniApps developed by different vendors with different APIs. To enhance the interoperability between MiniApp platforms, mainstream MiniApp vendors including Alibaba, Baidu, Huawei, and Xiaomi have been working together in the W3C Chinese Web Interest Group since May 2019 and published a MiniApp Standardization White Paper in September 2019 as the initial standardization exploration for MiniApp technologies. As more global companies get interested in joining the MiniApp related discussion, the MiniApps Ecosystem Community Group launched during TPAC 2019 so that the global Web community can join the discussion.
After a year of incubation, the MiniApps Ecosystem Community Group has developed a few technical proposals and a requirements document. In order to enable MiniApp standardization to promote interoperability and maximize integration with the Web, the W3C Team and the MiniApps CG coordinated and organized a global MiniApp workshop. W3C Technical Architecture Group (TAG) participants and more than 20 global organizations participated in the meeting to discuss the future standardization direction of MiniApps.
Many thanks for contributions to the work to MiniApps Ecosystem CG Chairs, Yinli Chen (Xiaomi), Keith Gu (Google), Anqi Li (Alibaba) and Ming Zu (Baidu), editors and all the participants. The CG will continue to incubate new ideas for MiniApps standardization.
Based on extensive standardization requirements, W3C today announced the formal establishment of the MiniApps Working Group, dedicated to in-depth exploration and coordination of the diverse MiniApp ecosystem with W3C members and the public, and enhancing the interoperability of different MiniApp platforms, thereby maximizing the integration of MiniApps and the Web, reducing technical fragmentation and the learning cost of developers.
Anqi Li (Alibaba), Yongjing Zhang (Huawei), and Ming Zu (Baidu) co-chair the MiniApps Working Group. The working group (see charter) will deliver the following specifications:
- MiniApp Manifest: This specification defines a JSON-based manifest document that enables developers to set up descriptive information, window styling, page routing, permissions, and other information of a MiniApp. The MiniApp Manifest specification inherits the basic members of the Web App Manifest (like name and lang), and extends it based on the difference of the environments, adding members like version management, page routing, window configuration, etc. (like versionName).
- MiniApp Packaging: This specification defines the standardized MiniApp package structure and its construction method, and improves the interoperability of identifying, loading, caching, and updating MiniApp packages in different runtime environments. A MiniApp package contains the resource files required by the application, including document templates, UI components, style sheets, scripts, localized configuration files, security signatures, manifest files, etc.
- MiniApp Lifecycle: This specification defines the MiniApp lifecycle events and the process that enables developers to manage the lifecycle events of both the application lifecycle and each page’s lifecycle. It will provide the basis for the cross-platform interoperability of MiniApp. Based on this specification, different MiniApp platforms can achieve consistent lifecycle management, and then achieve a consistent presentation of MiniApp pages.
- MiniApp Addressing defines how MiniApps can be accessed, standardizes the syntax of MiniApp package information, page path, parameter information, and the semantics of these syntax components in a MiniApp URL. The specification also defines the hosting platform’s dereference algorithm, and documents security considerations in the addressing process.
- MiniApp Widget Requirements: MiniApp Widget is a special form of MiniApp page. Unlike a page, a widget can occupy a certain area instead of the entire screen. It is used to display key information and respond to simple user operations, such as displaying the user’s itinerary, order delivery, and other services with simple interactions in a smart assistant. The MiniApp Widget Requirements document describes the scenarios and requirements that need to be considered when formulating the MiniApp Widget specification. It includes the modifications to the MiniApp Manifest, Packaging, Lifecycle, and other specifications in the widget scenario, as well as widget-specific requirements, such as the communication between the widget and the hosting platform.
For all specifications, the MiniApps Working Group will seek horizontal review for accessibility, internationalization, performance, privacy, and security with the relevant Working and Interest Groups, and with the TAG to ensure technical continuity.
Join us to promote extensive exchanges and industry interconnection about MiniApp standardization through W3C, a vendor-neutral organization, and align with the vision of One Web, enabling the MiniApp technologies to serve a wider audience.