Windows, Macos & the Web: Lessons From Cross-Platform Development
summary
Porting ~700k lines from Windows to macOS and then to the web yields concrete solutions: lightweight C++ abstractions for rendering, i18n, file I/O, mouse events, RPC and error reporting that enforce identical semantics across platforms; a file-lock backed shared memory approach because boost::interprocess leaves lingering POSIX objects and macOS lacks robust mutexes; compile-time translation lookup via compile-time MurmurHash lookup and template specializations; persistent asserts plus a crash reporter that emits Mach core dumps for symbolicated server-side analysis; and a TypeScript→C++ binding generator that targets Emscripten so web UIs reuse type-safe C++ — changes that measurably reduce cross-platform bugs and improve quality.
AI-written summary · about
chapters (12)
- 0:00Start
- 3:45Find the Right Level of Abstraction in Your Code
- 9:13Create a Temporary File
- 16:07Smart Pointers
- 17:59Command Line Tool
- 30:37User Interface Programming on Mac Os and Windows
- 34:25State Machine
- 36:06Text Translation
- 49:40Error Reporting
- 50:44Writing a Mini Dump
- 52:55How Do We Find Hard To Reproduce Bugs That Depend on the User's Specific Setup
- 1:05:33Code Sharing
related talks
49mWindows, macOS & the Web: Lessons from Cross-platform Development at think-cell
41mCrossplatform 2019: C ++ as an antagonist in a progressive world
32mC++ Everywhere with WebAssembly
29mWorking with C and C++ in Apple environment
57mC++ on the Web: Let's have some serious fun.
01h 03mA C++ journey from old to modern - Modernising ObjectiveFrame
01h 44mKeynote: The Tragedy of C++, Acts One & Two
44mC++, iOS, Android — Writing Cross‑Platform Applications
