iCloud版の「iWork v10.0」では図形などの一部の機能がC++やObjective-CなどのネイティブコードをWebAssemblyを利用して実装されているそうです。詳細は以下から。
Appleは現地時間2020年03月31日、同社のオフィススイートであるドキュメント作成アプリ「Pages」および表計算アプリ「Numbers」、プレゼンテーション用アプリ「Keynote」のMacおよびiOS/iPadOS版とiCloud(Web)版をバージョン10.0へアップデートしiCloud Driveフォルダ共有からの共同作業機能などをサポートしましたが、
iCalやiLife、RubyMotion(MacRuby)開発に携わり、現在はAppleのシニア・エンジニアをされているLaurent Sansonettiさんによると、アップデートされたiWork v10.0 for iCloudの機能の一部はLLVMのWebAssemblyバックエンドを利用して、C++やObjective-Cのネイティブコードで書かれたものを実行しているそうです。
What have I been working on lately? 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!
— Laurent Sansonetti (@lrz) April 15, 2020
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!)
Twitterより
Sansonettiさんによると、WebAsseblyを利用してネイティブコードから実装された機能はいくつかあるようですが、以下のような2つ以上の図形を結合や切り抜きし、新しい図形を作成する機能などが、この手法で実装されており、コンパイラやリンカー、Objective-Cのランタイム、いくつかのレイヤー、TypeScriptブリッジなどのツールチェーンで開発されているそうです。
おまけ
ちなみに、2020年03月にiWork v10.0 for iCloudアップデートでは、サポートブラウザから「Internet Explorer 11」が外され、Windows環境ではGoogle ChromeかMicrosoft Edgeを利用するように指定されています。
- Keynote for iCloud で図形を結合して新しい図形を作成する – Apple Support
コメント