Goodnotes everywhere (bringing an iPad app to the Web with WASM)
February 12, 2024
Why use Wasm and the web?
Even though Wasm is not officially supported by Apple, the following reasons are why the Goodnotes engineering team felt this approach was the best decision:
- The reuse of more than 100 thousand lines of code.
- The ability to continue development on the core product while also contributing to the cross-platform apps.
- The power of getting to every platform as soon as possible using an iterative development process.
- Having control to render the same document without duplicating all the business logic, and introducing differences in our implementations.
- Benefitting from all the performance improvements done on every platform at the same time (and all the bug fixes implemented on every platform).
The reuse of more than 100 thousand lines of code, and of the business logic implementing our rendering pipeline was fundamental. At the same time, making the Swift code compatible with other toolchains lets them reuse this code in different platforms in the future if needed.
Source: Goodnotes everywhere | web.dev
Goodnotes brought their complex 2022 iPad app of the year to the Web as a Progressive Web App using Web Assembly. Here are some lessons they learned along the way.