Beyond Web-Apps React, Javascript and WebAssembly to Port Legacy Native Apps
summary
A C++ game editor is ported by compiling the existing core with Emscripten → WebAssembly and exposing classes through Web IDL bindings so the original engine is reused rather than rewritten; the UI is rebuilt with React + Electron UI using Material‑UI, react-virtualized, react-mosaic and pixi for heavy rendering. Manual memory management and cross‑boundary call overhead require careful design; build artifacts grow a few megabytes but iteration time collapses from months to hours and the new app works.
AI-written summary · about
chapters (19)
- 0:00SEPTEMBER 29-30, 2018
- 3:44The editor is getting old
- 7:06Using Emscripten
- 8:00Expose existing classes
- 8:59Use Emscripten classes
- 10:40Things to know
- 13:05Finding a component library
- 16:21Moveable editors
- 17:19Keyboard handling
- 18:30Large trees (with drag'n'drop)
- 18:57Virtualization again!
- 19:39Levels rendering or visualizations
- 22:42Double check rendering of your components
- 24:43Inspect calls to Emscripten objects
- 26:58Ultra fast iteration and testing
- 27:20Modular development of UI components
- 28:02Auto-updates and packaging... and code signing and upload, and creating installers for Windows DMG for macos.
- 30:28It's (still) JavaScript!
- 31:59What are users saying?
related talks
27mNative Web Apps: React and WebAssembly to Rewrite Native Apps
30mBeyond Web-Apps: React, JavaScript and WebAssembly To Port Legacy Native Apps
30mNative Web Apps: React, JS & WebAssembly to rewrite native apps
28mThe Cyborg Future: Melding a Rust/Wasm Core with a ReasonReact UI
20mWhen Old meets New: Codebases
59mOne Codebase to Rule Them All - Using React Native Everywhere
42mBuilding Desktop applications with Electron and React
28mCross-Platform React
