Native Web Apps: React, JS & WebAssembly to rewrite native apps
summary
GDevelop gets ported from a C++ desktop app into a React + JavaScript UI with a C++ core compiled to WebAssembly, claiming better-than-native UX. Build uses Emscripten + WebIDL bindings expose C++ core to JS, UI relies on Material‑UI, react‑virtualized and react‑sortable‑hoc for large lists, rendering/canvas uses Pixi.js; heavy use of Electron packaging. Notes: wasm ~3 MB, packaged app ~300 MB, manual memory frees required, bridge call overhead observable, initial feature gaps but final result runs faster with more contributors.
AI-written summary · about
chapters (15)
- 0:00Intro
- 2:49The editor is getting old
- 5:55Writing WebAssembly
- 6:34Using Emscripten
- 7:13Expose existing classes
- 8:22Use Emscripten classes
- 11:09Things to know (3)
- 13:08Find a component library
- 15:57Use a tiling window library
- 16:36Virtualization again!
- 19:05Profile the rendering
- 21:40Stick to your components
- 22:45but create visual stories
- 25:00Consider your packaging options
- 27:48What are users saying?
related talks
30mBeyond Web-Apps: React, JavaScript and WebAssembly To Port Legacy Native Apps
27mNative Web Apps: React and WebAssembly to Rewrite Native Apps
33mBeyond Web-Apps React, Javascript and WebAssembly to Port Legacy Native Apps
34mModern Web Game Development
42mBuilding Desktop applications with Electron and React
27mBridging React Native Back to its Roots
36mWhy you should consider Web Assembly in your next frontend project
05mLightning Talk: The Present and Future of Cross-Platform GUI in C++
