Cross Platform Framework Vergleich
Cross Platform Framework Vergleich
Gesetzt
- Wir brauchen ein Framework für Cross Platform weil native Entwicklung für die einzelnen Plattformen ist zu aufwendig.
- Wir brauchen HTML+CSS, weil hier die Erfahrung liegt.
- Wir brauchen Linux+Windows (mac, Android, ios?) Apps.
Überblick
| Electron | Tauri | Wails | Electrobun | Flutter | Neutralino | Kommentar | |
|---|---|---|---|---|---|---|---|
| Allgemeiner Kommentar | am längsten beständiges Framework, bündelt Chromium direkt mit der App, Vscode, Discord z.B. nutzen es | bündelt keinen Browser in der App sondern nutzt den Standardbrowser des Systems | ähnlich zu Tauri aber mit Go anstatt Rust als Backend | Nutzt Bun anstatt Node für die JS Laufzeitumgebung und Zig für native Bindings (also Kommunikation mit dem OS, glaube ich) | kein HTML, CSS, deswegen aus der Bewertung | soll mit jeder Backendsprache funktionieren, also auch C#, bündelt Chrome nicht | |
| Backend language | Node.js / JS | Rust | Go | JS + Zig bindings (die Sprache der Bindings ist glaube ich recht egal für uns) | egal | ||
| Matrix SDK | matrix-js-sdk stable | matrix-rust-sdk stable | mautrix-go stable | matrix-js-sdkstable | möglich: Kotlin, Python, …, C# ist beta und seit 2 Jahren nicht geupdated | Hier sollten wir wirklich auspassen was wir nehmen, weil das uns direkt einschränkt bei dem was wir umsetzen können oder wir andernfalls die SDK selbst erweitern müssen, Rust ist der aktuell beste Standard , danach JS | |
| Bundle size | ~100 MB+ (KI) | ~5–10 MB (KI) | klein | klein | klein | klein | Ich verstehe hier die Aufregung vieler nicht. Ja, 10 MB anstatt 100 MB ist schön aber total egal wenn man sich die aktuellen Speicherplätze auf PC oder Mobile ansieht. |
| RAM usage (idle) | 200–300 MB | 30–40 MB | Hier kann ich die Diskussion deutlich eher nachvollziehen als bei der Bundlegröße. | ||||
| Startup time | 1–2 sec | <0.5 sec | |||||
| Rendering consistency | ✅ Always Chromium | ⚠️ OS-dependent | ⚠️ OS-dependent | ⚠️ OS-dependent | ⚠️ OS-dependent | ⚠️ OS-dependent | Die Debatte hier drum ist super angespannt. Wir sollten auf jeden Fall testen wie stark die Unterschiede sind. Davon abgesehen, scheint die Zukunft (bzw. Aktuelle Entwicklungen) eher in Richtung OS-dependent zu gehen, aber ob jetzt die richtige Zeit ist darauf zu setzen ist schwer zu sagen. |
| Ecosystem maturity | Very mature (121k stars Github) | Growing fast (105k stars Github) | 33.6k | 11k | 8.4k |
Test
Ich teste meine Favoriten Electron und Tauri in dem ich PeerDrop portiere (HTML+CSS, aber ohne Funktionalität). Ich möchte vor allem gucken, wie gut die Unterstützung für modernere CSS Features ist, wie sehr die sichtbaren Unterschiede zwischen den Plattformen im Vergleich ist (gibt es Unterschiede in der Darstellung oder in der Benutzung) und wie viel RAM verbraucht wird.
Getestet wird mit:
- meinem Lenovo Laptop (32 GB)
- meiner NixOS Config, Commit xxx
- PeerDrop Version 1.2.1