Native Web Apps: React and WebAssembly to Rewrite Native Apps
summary
A C++ game editor gets rewritten with React + WebAssembly using Emscripten to compile the core to a ~3MB .wasm module with generated glue, exposing C++ classes via Web IDL. UI uses material UI, react-virtualized for lists of thousands, react-mosaic and react-sortable-tree, and pixi.js for the WebGL level editor. Memory requires manual destroy calls, cross-world calls are costly, build iteration drops from ~1 minute to ~10 seconds, and users end up preferring the hybrid Electron/browser app.
AI-written summary · about
chapters (12)
- 0:00Introduction to GDevelop
- 1:04Legacy C++ architecture
- 2:58Migrating to web technologies
- 5:15Implementing WebAssembly
- 7:08Exposing C++ to JavaScript
- 10:21Memory management and testing
- 13:39Building complex React UI
- 17:01WebGL and performance tips
- 19:24Optimizing data interaction
- 21:02Maintaining a codebase
- 22:48Packaging and final results
- 24:31User feedback and conclusions
related talks
33mBeyond Web-Apps React, Javascript and WebAssembly to Port Legacy Native Apps
30mNative Web Apps: React, JS & WebAssembly to rewrite native apps
30mBeyond Web-Apps: React, JavaScript and WebAssembly To Port Legacy Native Apps
32mWhat WebAssembly means for React
30mImproving web app with Rust and WASM
28mThe Cyborg Future: Melding a Rust/Wasm Core with a ReasonReact UI
36mWhy you should consider Web Assembly in your next frontend project
59mOne Codebase to Rule Them All - Using React Native Everywhere
