Skip ⬇︎

MiniApp Standardization

Presenter: Xiaoqian Wu
Duration: 6 min

All talks

Skip ⬇︎

Slides & video

MiniApp Standardization

Xiaoqian Wu, W3C

Hello, this is Xiaoqian, Manager of the W3C Beihang site.

Today, I would like to share with you a couple of milestones we made on MiniApp standardization in W3C since our last TPAC in September 2019.

Let's move to the next page.

What is MiniApp?

miniapp white paper

In TPAC 2019, we introduced the MiniApp Standardization White Paper, to identify the requirements, use cases and a few ideas to work with the WebPlatform.

To explore the way forward:

  1. where shall we continue the discussion?
  2. what do the group want to specify?
  3. any suggesions from the TAG/WebPlatform?
  4. what is next?

MiniApp is a new format of applications which is extremely popular in China.

If you remember in one of the breakout sessions last year, we introduced to you a document named the “MiniApp Standardization White Paper”.

In which the editors try to identify the use cases, requirements, and a few ideas to specify a unified MiniApp framework that would work across most of the platforms.

Thanks to the suggestions and encouragement in the session we decided to continue exploring these ideas in the next few months.

Next page.

MiniApps Ecosystem CG

miniapp community group

In December 2019, we launched the MiniApps Ecosystem Community Group, which provides a forum for

  • the global community to discuss and incubate MiniApp related standard ideas
  • TeleConfs on the first Thursday every month
  • FAQ around MiniApp and the WebPlatform

So two months later, we launched our Community Group for MiniApp where people can incubate their ideas for their vision of MiniApp architecture.

And discuss with a broader community in GitHub and attend conferences every month.

Of course, we receive a lot of questions around the differences and similarities between MiniApp and the Web platform.

So the group maintains a FAQ document in GitHub.

Let's move to page four.

Proposals of the Basic Architecture

miniapp proposals
MiniApp URI Scheme
MiniApp URI scheme syntax and process to dereference the MiniApp URI scheme
MiniApp Lifecycle
lifecycle events and how to manage lifecycle
MiniApp Manifest
a JSON-based manifest file to set up basic information, window style, page route and other information
MiniApp Packaging
MiniApp package structure
MiniApp Widget
a special form of MiniApp pages

We had a lot of discussions about what can be and should be specified.

Members in the CG agree on that vendors, developers, and users will benefit if we are able to reach interoperabilities across the different MiniApp platforms and the convergence of MiniApp and Web platform.

So the group came up with a few proposals around that basic architecture of MiniApp.

Including a URI scheme proposal, which defines a URI scheme syntax for MiniApp.

And a MiniApp lifecycle document, which specify the lifecycle events and how to manage these events.

We also have a MiniApp manifest standard to specify a JSON-based manifest file which helps to initialize a MiniApp.

And there's a MiniApp packaging proposal to define the packages' structure.

The group also have some conversation about MiniApp widgets.

Which is a tiny page which helps to transport messages across different platforms.

The editors provide explainers for each of these proposals.

You can find more detail for these ideas if you click the link to the GitHub repo.

Let's go to page five.

TAG Review and the MiniApp Virtual Meeting

tag review on miniapp

The TAG emphasized the Goal of One Web in their review on the MiniApp Specs. In the MiniApp Virtual Meeting, the CG and the TAG came up with a few ideas to make MiniApp align with existing web technologies where possible.

MiniApp URI
look into Deep Link and Web Intents, to work on a solution to reuse the existing HTTP protocol
MiniApp Manifest
extend existing manifest files with the Web App Manifest as reference
MiniApp Runtime
study the Differences of MiniApp Runtime and Web App Runtime (unofficial)

First to the efforts of the editors.

After a few months, these proposals were stable enough to call for review.

So we made several TAG review requests.

The TAG published their review comments in July, where they emphasized the importance to keep the goal of One Web and asked the group to try their best to align with the existing web technologies where possible.

So we organized a MiniApp virtual meeting to identify the gap and find out possible solutions.

We received lots of very productive feedback from the browser vendors on URI and decided to look into the current Deep Link technologies and work on a new solution to use HTTP protocol instead of creating a new one for MiniApp.

Our MiniApp Manifests, following the suggestion from the TAG, we have a joint meeting with the Web App Manifests editors and agree on extending the existing manifest file in W3C Web App Manifest spec for the MiniApp features and to have frequent conversations with the Web App Working Group editors.

Most of the questions we received are actually about the fundamental differences between the two types of run time.

But we don't yet have good answers for those questions.

My colleague Fuqiao is working on an un-official document to compare the MiniApp runtime and the Web App runtime.

Moving to page six.

Next step?

miniapp sec model
  • work closely with the other W3C groups, including the WebApps WG, the WebPerf WG, the PING, the WICG...
  • a MiniApps Working Group Charter is being discussed, early feedback is welcome
  • the MiniApp CG will continue to be the group to incubate new ideas
  • join us in our monthly teleconfs if you have any suggestions or questions

So what is the next step for Mini App Standardization?

There are a few things we think are worth doing at the moment.

First of all, we want to work closely with the other W3C Working Groups.

Especially the Web Apps, the Web Performance, the PING and the WICG.

And of course the other horizontal groups.

Because we think it is important to support the goal of One Web and the vision of Web For All.

We are also discussing a charter to create a MiniApp Working Group.

Please tell us what you think by filing an issue in our GitHub repo.

But we also plan to keep the current MiniApp Community Group as is and make sure your ideas can be incubated there.

We are still having regular meetings every month, feel free to join us and we look forward to your suggestions and questions.

Thank you!

Questions?

Thank you.

Skip ⬇︎

All talks