Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cross-platform WebApps #479

Open
siusin opened this issue Sep 2, 2024 · 4 comments
Open

Cross-platform WebApps #479

siusin opened this issue Sep 2, 2024 · 4 comments
Assignees
Labels

Comments

@siusin
Copy link

siusin commented Sep 2, 2024

We all hope that the web can provide standards that enable developers to create better applications, which:

  • function seamlessly across major platforms such as Android, iOS, HarmonyOS, etc.
  • are compatible with web technologies, maximizing the ecosystem, and simplifying the development
  • deliver high performance and an excellent user experience

While browser engineers are working on these goals through various W3C groups, we also want to explore a few other possibilities:

  • can we develop an engine that supports only a core set of web features?
  • can we learn from other projects like React Native, Flutter, and MiniApps, particularly in layout, DOM, and rendering?
  • How can we ensure that we are building a cohesive and integrated platform?
@marcoscaceres
Copy link
Member

can we develop an engine that supports only a core set of web features?

This has been tried before and failed badly (e.g., "mobile web" profiles back in the day). Also, if there's any dependency on living standards, then this won't work because you need to constantly ship an update to an engine. Web Engines are not static things with "core features"; they are evolving pieces of software that need to be constantly updated to support either security updates, or new features added by the living standards.

can we learn from other projects like React Native, Flutter, and MiniApps, particularly in layout, DOM, and rendering?

All you can learn, IMO, is that we've built a good platform that already does what folks need... and whatever is missing should be standardized.

How can we ensure that we are building a cohesive and integrated platform?

Keep taking feedback from developers, create complete test suites, do things like Interop 2025, and we keep doing what we are currently doing... and make sure stuff keeps getting implemented.

@dennis-dingwei
Copy link

dennis-dingwei commented Oct 15, 2024

can we develop an engine that supports only a core set of web features?

This has been tried before and failed badly (e.g., "mobile web" profiles back in the day). Also, if there's any dependency on living standards, then this won't work because you need to constantly ship an update to an engine. Web Engines are not static things with "core features"; they are evolving pieces of software that need to be constantly updated to support either security updates, or new features added by the living standards.

can we learn from other projects like React Native, Flutter, and MiniApps, particularly in layout, DOM, and rendering?

All you can learn, IMO, is that we've built a good platform that already does what folks need... and whatever is missing should be standardized.

Agree it should go standardized way. But how about a work to prioritize web features, if not all are equal?

How can we ensure that we are building a cohesive and integrated platform?

Keep taking feedback from developers, create complete test suites, do things like Interop 2025, and we keep doing what we are currently doing... and make sure stuff keeps getting implemented.

@nigelmegitt
Copy link

This has been tried before and failed badly

There are also examples where it has been done and deployed very successfully, e.g. in the hybrid broadcast/broadband TV platform HbbTV, whose specifications are essentially requirements based on references into other specifications, some of which end up in HTML and other web standards. It doesn't stop implementers from doing more than is required, but it does set a baseline minimal set of features that app developers can rely on.

A case in point within HbbTV is WASM, which is not required in currently deployed versions, but is an obvious candidate for future versions.

@marcoscaceres
Copy link
Member

marcoscaceres commented Oct 22, 2024

Right, when it's a handful of very specific features, this can certainly work (though I would still discourage it). The problem is trying to set a baseline with the Web because the platform is huge (in terms for features and API surface), so it's hard to actually nail down what the baseline would be.

Consider what it means just to support <video>... there's a ton of machinery that comes with that, that's constantly being added to... now scale that to all there other tags. And then scale that to things outside of HTML (e.g., service workers, geolocation API, etc. etc.) and so on.

It quickly becomes unmanageable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Development

No branches or pull requests

5 participants