Add a browser/PWA version
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
- Issue-Typ
- Feature
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- javascript, wasm
- Bereich
- desktop-dev, web-dev
Rechercherichtung
Beginne mit dem Vergleich der beiden vorgeschlagenen Ansätze, Broadway und Greenfield, und lies das Material zum Greenfield SDK sowie dessen Eintrag in example-applications.json. Bestimme den Umfang und die Hosting-Anforderungen für einen browserbasierten Workbench-Playground; als erledigt gilt die Aufgabe, wenn ein abgestimmter Implementierungspfad feststeht und nicht nur ein serverseitiges Experiment vorliegt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Many other prototyping tools for UI frameworks have the option to run in the browser to make it easier to share examples or work without setting up a local development environment, even if the target primarily native platforms:
It would be great if it were possible to create a similar web-based playground for Workbench, whether for docs or examples, or just for experimental. There are two ways of achieving this with different complexities:
- Using Broadway. This way, an instance of Workbench can run on a server somewhere, and be exposed via the HTML/Canvas GTK renderer. This works well for simple examples, but more advanced usecases (OpenGL, embedding, Webviews, Videos etc.) don't work.
- Using Greenfield. This is a full Wayland compositor that runs in your browser, and can already run the Flatpak version of Workbench out of the box. It can either run apps with Wayland clients attaching natively on the browser site (through WebAssembly), or on the server side (with the raw Flatpak version). From my testing, this works extremely well; even the GTK inspector, video playback, webviews, and OpenGL all work. Also runs in Chrome, Firefox and Safari/GNOME Web without problems.
Here is Workbench, rendering a WebKit webview, running in the browser with the second method:
Which was as simple as setting up a new app in Greenfield's example-applications.json:
"/workbench": {
"name": "Workbench",
"executable": "flatpak",
"args": ["run", "re.sonny.Workbench"],
"env": {}
},
Ofc, this would require a server (not just a CDN) to actually host the app similarly to how Broadway would require a server. A better way would be to compile Workbench using the Greenfield SDK, which would mean that it could run natively in the browser using Wasm, but I'm fairly certain that this would require some porting work. The Greenfield talk from FOSDEM 2024 contains a lot of interesting info on how this works internally.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 846
- Forks
- 91
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus workbenchdev/Workbench
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
workbenchdev/Workbench#1028 · 11 Kommentare ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
workbenchdev/Workbench#1019 ·
-
editor needs settingsOffen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
workbenchdev/Workbench#1014 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
workbenchdev/Workbench#1007 · 1 Kommentar ·
-
How could I work with multiple user interfaces (e.g. multiple .ui files, or multiple blueprints)?Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
workbenchdev/Workbench#1006 · 1 Kommentar · 1 Reaktion ·
Alle Issues in workbenchdev/Workbench
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
naver/egjs-flicking#971 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
RADAR-base/radar-self-enrolment-ui#118 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Renderer treats a sub-pixel width difference as a resize, which cancels the `motion()` entranceOffen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
Maintainer antworten meist innerhalb von 1 Tag
-
triage-needed
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
MicrosoftDocs/edge-developer#3970 ·
Maintainer antworten meist innerhalb von 1 Tag
-
agent/scanner hive/hosted-available-lke648397-260827-5n31 quality testing
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag