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.


1 Comment RSS · Twitter

I’m guessing this is inspired by Figma's use of WebAssembly ( 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