Friday, April 17, 2020

iWork 10 in WebAssembly

Laurent Sansonetti (via Peter Steinberger):

Just a few days ago, iWork 10.0 shipped with iCloud apps that now include features extracted from the native codebase (C++/ObjC), using WebAssembly!

I wrote a dedicated toolchain for the team, based on LLVM and its WebAssembly backend. It includes a custom compiler/linker, ObjC runtime, some Foundation layer, and a TypeScript bridge.

If you’re curious, this feature is written in WebAssembly (article mentions Keynote but it works on Pages and Numbers too!)

Here’s what some of the code looks like.

Previously:

1 Comment RSS · Twitter

I’m guessing this is inspired by Figma's use of WebAssembly (https://www.figma.com/blog/webassembly-cut-figmas-load-time-by-3x/). I'm expecting this to be the norm going forward, Figma is an unprecedented success as a web-based graphic-design app. Now that it’s proven that it can be done, every app that has a graphic-design component, and that benefits from web-based collaboration (which is almost everything), now has to copy this model (or be replaced by something that does).

Leave a Comment